Re: Issue while calling new PostgreSQL command from a Java Application - Mailing list pgsql-hackers

From Ashutosh Bapat
Subject Re: Issue while calling new PostgreSQL command from a Java Application
Date
Msg-id CAFjFpRep9g=FjT36pEJKUThZPyVoZb=XiODVrJzuv1en-NB0AQ@mail.gmail.com
Whole thread Raw
In response to Issue while calling new PostgreSQL command from a Java Application  (Ashoke <s.ashoke@gmail.com>)
Responses Re: Issue while calling new PostgreSQL command from a Java Application  (Ashoke <s.ashoke@gmail.com>)
List pgsql-hackers
<div dir="ltr">You may have to add code to copy inp_str to _copyVacuumStmt(). See how a character array being copied
fromother _copy* functions.<br /></div><div class="gmail_extra"><br /><br /><div class="gmail_quote">On Fri, Jul 4,
2014at 10:43 AM, Ashoke <span dir="ltr"><<a href="mailto:s.ashoke@gmail.com"
target="_blank">s.ashoke@gmail.com</a>></span>wrote:<br /><blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px#ccc solid;padding-left:1ex"><div dir="ltr"><p style="margin:0px 0px
1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation
Sans','DejaVuSans',sans-serif;line-height:17.804800033569336px"> Hi,<p style="margin:0px 0px
1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation
Sans','DejaVuSans',sans-serif;line-height:17.804800033569336px"> ------------------------------<p style="margin:0px 0px
1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation
Sans','DejaVuSans',sans-serif;line-height:17.804800033569336px"> I have defined a new command <code
style="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">my_command</code> inPostgreSQL. This command takes the path of <code
style="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">ANALYZE</code> andinside <code style="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">analyze.c</code>,I have a function to do some operations if its <code
style="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">my_command</code>.Thiscommand takes the input arguments: table name, column
nameand an input string.<p style="margin:0px 0px
1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation
Sans','DejaVuSans',sans-serif;line-height:17.804800033569336px"><span style="font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap;background-color:rgb(238,238,238)">my_commandnation (n_nationkey) 'input
string';</span><br/><p style="margin:0px 0px
1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation
Sans','DejaVuSans',sans-serif;line-height:17.804800033569336px"> When I run this command from command line <code
style="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">psql</code>,it works as expected. But when I call the same command from a
javaapplication, the variable that stores the input string is NULL.<p style="margin:0px 0px
1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation
Sans','DejaVuSans',sans-serif;line-height:17.804800033569336px"> I printed the value of the input string in gram.y file
whereI have defined <code style="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">my_command</code>.<br/><code style="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">fprintf(stderr, "I am inside gram.y %s\n",n->inp_str);</code> and the
inputstring is printed correctly.<p style="margin:0px 0px
1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation
Sans','DejaVuSans',sans-serif;line-height:17.804800033569336px"> But when I print <code style="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">stmt->inp_str</code> inthe function <code style="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">standard_ProcessUtility()</code> of <codestyle="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">utility.c</code> forthe case <code style="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">T_VacuumStmt</code>,I get the value as NULL. This is as far as I could trace
backfrom <code style="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">analyze.c</code>.<pstyle="margin:0px 0px
1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation
Sans','DejaVuSans',sans-serif;line-height:17.804800033569336px"> I am not sure how executing the same command from an
applicationcan make a difference.<p style="margin:0px 0px
1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation
Sans','DejaVuSans',sans-serif;line-height:17.804800033569336px"> gram.y content gist:<hr
style="border:0px;color:rgb(221,221,221);background-color:rgb(221,221,221);min-height:1px;margin-bottom:20px;font-family:Arial,'Liberation
Sans','DejaVuSans',sans-serif;font-size:14px;line-height:17.804800033569336px" /><pre
style="margin-top:0px;margin-bottom:10px;padding:5px;border:0px;font-size:14px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;overflow:auto;width:auto;max-height:600px;word-wrap:normal;color:rgb(0,0,0);line-height:17.804800033569336px">
<code style="margin:0px;padding:0px;border:0px;vertical-align:baseline;font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:inherit"><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(43,145,175)">MyStmt</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">:</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">      my_keyword
qualified_namename_list my_inp_str           </span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">{</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">
</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(43,145,175)">VacuumStmt</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"></span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">*</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">n</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">=</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">makeNode</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">(</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(43,145,175)">VacuumStmt</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">);</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">
n</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-></span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">options</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">=</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">
VACOPT_ANALYZE</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">;</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">
n</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-></span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">freeze_min_age
</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">=</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"></span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(128,0,0)">1</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">;</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">
n</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-></span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">freeze_table_age
</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">=</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"></span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(128,0,0)">1</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">;</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">
n</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-></span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">relation</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">=</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">$2</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">;</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">
n</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-></span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">va_cols</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">=</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">$3</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">;</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">
n</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-></span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">inp_str</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">=</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">$4</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">;</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">              fprintf
</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">(</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">stderr</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">,</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"></span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(128,0,0)">"Iam
insidegram.y %s\n"</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">,</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">n</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-></span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">inp_str</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">);</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">
               $$ </span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">=</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"></span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">(</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(43,145,175)">Node</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"></span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">*)</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">n</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">;</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">          </span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">}</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">
</span><span
style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">;</span></code></pre><p
style="margin:0px0px
1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation
Sans','DejaVuSans',sans-serif;line-height:17.804800033569336px"><code style="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">char*inp_str</code> is added to the <code style="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">structVacuumStmt</code> in <code style="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">parsenodes.h</code><pstyle="margin:0px 0px
1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation
Sans','DejaVuSans',sans-serif;line-height:17.804800033569336px"> ---------------------------<p style="margin:0px 0px
1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation
Sans','DejaVuSans',sans-serif;line-height:17.804800033569336px"> Only the newly added <code
style="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">char*inp_str</code>(that is different from <code
style="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">ANALYZE</code>)value is NULL. I was able to retrieve the column name
from <codestyle="margin:0px;padding:1px
5px;border:0px;vertical-align:baseline;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,'Lucida
Console','LiberationMono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier
New',monospace,serif;white-space:pre-wrap">va_cols.</code><pstyle="margin:0px 0px
1em;padding:0px;border:0px;font-size:14px;vertical-align:baseline;clear:both;color:rgb(0,0,0);font-family:Arial,'Liberation
Sans','DejaVuSans',sans-serif;line-height:17.804800033569336px"> Any help is appreciated. Thanks!<span
class="HOEnZb"><fontcolor="#888888">-- <br />Regards,<br />Ashoke<br /><br /><br
/></font></span></div></blockquote></div><br/><br clear="all" /><br />-- <br /><div dir="ltr">Best Wishes,<br
/>AshutoshBapat<br />EnterpriseDB Corporation<br />The Postgres Database Company<br /></div></div> 

pgsql-hackers by date:

Previous
From: Abhijit Menon-Sen
Date:
Subject: Re: Issue while calling new PostgreSQL command from a Java Application
Next
From: Michael Paquier
Date:
Subject: Re: WAL replay bugs