Fixed incorrect argument handling in SET command if argument is a variable.

This commit is contained in:
Michael Meskes 2008-08-20 14:07:16 +00:00
parent 1852a73c7a
commit 393dc9bde2

View File

@ -1,4 +1,4 @@
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.359.2.4 2008/06/04 12:26:14 meskes Exp $ */
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.359.2.5 2008/08/20 14:07:16 meskes Exp $ */
/* Copyright comment */
%{
@ -1243,7 +1243,16 @@ iso_level: READ UNCOMMITTED { $$ = make_str("read uncommitted"); }
;
var_value: opt_boolean { $$ = $1; }
| AllConst { $$ = $1; }
| AllConst { /* we have to check for a variable here because it has to be
replaced with its value on the client side */
if ($1[1] == '$')
{
$$ = make_str("$0");
free($1);
}
else
$$ = $1;
}
| ColId { $$ = $1; }
;
@ -2358,7 +2367,7 @@ fetch_direction: NEXT { $$ = make_str("next"); }
fetch_count: IntConst {
if ($1[1] == '$')
{
/* a variable here has to be replaced on the client side, thus we have to use '?' here */
/* a variable here has to be replaced on the client side, thus we have to use '$0' here */
$$ = make_str("$0");
free($1);
}