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