Guard against NULL strings in SET key=val constructs.
authorThomas G. Lockhart <[email protected]>
Sat, 9 Mar 2002 17:41:04 +0000 (17:41 +0000)
committerThomas G. Lockhart <[email protected]>
Sat, 9 Mar 2002 17:41:04 +0000 (17:41 +0000)
 Problem noted by Fernando Nasser.

src/backend/parser/gram.y

index 359ecc72696395532b46e1358915cb243b6a3d28..585274d946f13ecce6d568cf2b971c3962f03ace 100644 (file)
@@ -763,14 +763,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
@@ -799,7 +801,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