diff options
author | Thomas G. Lockhart <lockhart@fourpalms.org> | 2002-03-09 17:37:16 +0000 |
---|---|---|
committer | Thomas G. Lockhart <lockhart@fourpalms.org> | 2002-03-09 17:37:16 +0000 |
commit | f20509551dd1ddccd84beb2bc582fa26ed431432 (patch) | |
tree | 65fc42418c76955d32ee2bf00ad0648c145c431b | |
parent | ee2154829e3fe715f166646bdf9f43e9a102a694 (diff) | |
download | postgresql-f20509551dd1ddccd84beb2bc582fa26ed431432.tar.gz postgresql-f20509551dd1ddccd84beb2bc582fa26ed431432.zip |
Guard against NULL strings in SET key=val constructs.
Problem noted by Fernando Nasser.
-rw-r--r-- | src/backend/parser/gram.y | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index c166a744592..f9a876f1495 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -11,7 +11,7 @@ * * * 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 * AUTHOR DATE MAJOR EVENT @@ -790,14 +790,16 @@ VariableSetStmt: SET ColId TO var_value { VariableSetStmt *n = makeNode(VariableSetStmt); n->name = $2; - n->args = makeList1(makeStringConst($4, NULL)); + if ($4 != NULL) + n->args = makeList1(makeStringConst($4, NULL)); $$ = (Node *) n; } | SET ColId '=' var_value { VariableSetStmt *n = makeNode(VariableSetStmt); n->name = $2; - n->args = makeList1(makeStringConst($4, NULL)); + if ($4 != NULL) + n->args = makeList1(makeStringConst($4, NULL)); $$ = (Node *) n; } | SET TIME ZONE zone_value @@ -826,7 +828,8 @@ VariableSetStmt: SET ColId TO var_value { VariableSetStmt *n = makeNode(VariableSetStmt); n->name = "client_encoding"; - n->args = makeList1(makeStringConst($3, NULL)); + if ($3 != NULL) + n->args = makeList1(makeStringConst($3, NULL)); $$ = (Node *) n; } | SET SESSION AUTHORIZATION ColId_or_Sconst |