Thank you Ashutosh*.* That was the issue. But, could you please explain why it worked from command line?
On Fri, Jul 4, 2014 at 11:49 AM, Ashutosh Bapat < ashutosh.ba...@enterprisedb.com> wrote: > You may have to add code to copy inp_str to _copyVacuumStmt(). See how a > character array being copied from other _copy* functions. > > > On Fri, Jul 4, 2014 at 10:43 AM, Ashoke <s.ash...@gmail.com> wrote: > >> Hi, >> >> ------------------------------ >> >> I have defined a new command my_command in PostgreSQL. This command >> takes the path of ANALYZE and inside analyze.c, I have a function to do >> some operations if its my_command.This command takes the input >> arguments: table name, column name and an input string. >> >> my_command nation (n_nationkey) 'input string'; >> >> When I run this command from command line psql, it works as expected. >> But when I call the same command from a java application, the variable that >> stores the input string is NULL. >> >> I printed the value of the input string in gram.y file where I have >> defined my_command. >> fprintf (stderr, "I am inside gram.y %s\n",n->inp_str); and the input >> string is printed correctly. >> >> But when I print stmt->inp_str in the function standard_ProcessUtility() >> of utility.c for the case T_VacuumStmt, I get the value as NULL. This >> is as far as I could trace back from analyze.c. >> >> I am not sure how executing the same command from an application can make >> a difference. >> >> gram.y content gist: >> ------------------------------ >> >> MyStmt: >> my_keyword qualified_name name_list my_inp_str >> { >> VacuumStmt *n = makeNode(VacuumStmt); >> n->options = VACOPT_ANALYZE; >> n->freeze_min_age = -1; >> n->freeze_table_age = -1; >> n->relation = $2; >> n->va_cols = $3; >> n->inp_str = $4; >> fprintf (stderr, "I am inside gram.y %s\n",n->inp_str); >> >> $$ = (Node *)n; >> }; >> >> char *inp_str is added to the struct VacuumStmt in parsenodes.h >> >> --------------------------- >> >> Only the newly added char *inp_str(that is different from ANALYZE) value >> is NULL. I was able to retrieve the column name from va_cols. >> >> Any help is appreciated. Thanks! >> -- >> Regards, >> Ashoke >> >> >> > > > -- > Best Wishes, > Ashutosh Bapat > EnterpriseDB Corporation > The Postgres Database Company > -- Regards, Ashoke