Guard against NULL strings in SET key=val constructs.

Problem noted by Fernando Nasser.
This commit is contained in:
Thomas G. Lockhart 2002-03-09 17:37:16 +00:00
parent ee2154829e
commit f20509551d

View File

@ -11,7 +11,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.288 2002/03/08 04:37:17 tgl Exp $ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.289 2002/03/09 17:37:16 thomas Exp $
* *
* HISTORY * HISTORY
* AUTHOR DATE MAJOR EVENT * AUTHOR DATE MAJOR EVENT
@ -790,14 +790,16 @@ VariableSetStmt: SET ColId TO var_value
{ {
VariableSetStmt *n = makeNode(VariableSetStmt); VariableSetStmt *n = makeNode(VariableSetStmt);
n->name = $2; n->name = $2;
n->args = makeList1(makeStringConst($4, NULL)); if ($4 != NULL)
n->args = makeList1(makeStringConst($4, NULL));
$$ = (Node *) n; $$ = (Node *) n;
} }
| SET ColId '=' var_value | SET ColId '=' var_value
{ {
VariableSetStmt *n = makeNode(VariableSetStmt); VariableSetStmt *n = makeNode(VariableSetStmt);
n->name = $2; n->name = $2;
n->args = makeList1(makeStringConst($4, NULL)); if ($4 != NULL)
n->args = makeList1(makeStringConst($4, NULL));
$$ = (Node *) n; $$ = (Node *) n;
} }
| SET TIME ZONE zone_value | SET TIME ZONE zone_value
@ -826,7 +828,8 @@ VariableSetStmt: SET ColId TO var_value
{ {
VariableSetStmt *n = makeNode(VariableSetStmt); VariableSetStmt *n = makeNode(VariableSetStmt);
n->name = "client_encoding"; n->name = "client_encoding";
n->args = makeList1(makeStringConst($3, NULL)); if ($3 != NULL)
n->args = makeList1(makeStringConst($3, NULL));
$$ = (Node *) n; $$ = (Node *) n;
} }
| SET SESSION AUTHORIZATION ColId_or_Sconst | SET SESSION AUTHORIZATION ColId_or_Sconst