Issue while calling new PostgreSQL command from a Java Application
От | Ashoke |
---|---|
Тема | Issue while calling new PostgreSQL command from a Java Application |
Дата | |
Msg-id | CALpszJPXFBb+0w-thEk=6vNP-ZRgqn1i+PX8xonp=cZ_DqNJRA@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: Issue while calling new PostgreSQL command from a Java
Application
(Abhijit Menon-Sen <ams@2ndQuadrant.com>)
Re: Issue while calling new PostgreSQL command from a Java Application (Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>) |
Список | pgsql-hackers |
<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);height:1px;margin-bottom:20px;font-family:Arial,'Liberation Sans','DejaVuSans',sans-serif;font-size:14px;line-height:17.804800033569336px" /><pre class="" 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"><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(43,145,175)">MyStmt</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">:</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> my_keywordqualified_name name_list my_inp_str </span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">{</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> </span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(43,145,175)">VacuumStmt</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> </span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">*</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">n </span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">=</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> makeNode</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">(</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(43,145,175)">VacuumStmt</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">);</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> n</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-></span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">options </span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">=</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> VACOPT_ANALYZE</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">;</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> n</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-></span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">freeze_min_age </span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">=</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"></span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(128,0,0)">1</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">;</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> n</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-></span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">freeze_table_age </span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">=</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"></span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(128,0,0)">1</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">;</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> n</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-></span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">relation </span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">=</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">$2</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">;</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> n</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-></span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">va_cols </span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">=</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">$3</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">;</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> n</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-></span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">inp_str </span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">=</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">$4</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">;</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> fprintf </span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">(</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">stderr</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">,</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> </span><span class="" 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 class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">,</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">n</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">-></span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">inp_str</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">);</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> $$ </span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">=</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"></span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">(</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(43,145,175)">Node</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> </span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">*)</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">n</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">;</span><span class=""style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> </span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">}</span><spanclass="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> </span><span class="" 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!-- <br />Regards,<br />Ashoke<br/><br /><br /></div>
В списке pgsql-hackers по дате отправления:
Следующее
От: Dilip kumarДата:
Сообщение: Re: TODO : Allow parallel cores to be used by vacuumdb [ WIP ]