]> granicus.if.org Git - postgresql/commitdiff
Allow comment-only lines, and ;;; lines too.
authorBruce Momjian <bruce@momjian.us>
Tue, 5 Oct 1999 18:14:31 +0000 (18:14 +0000)
committerBruce Momjian <bruce@momjian.us>
Tue, 5 Oct 1999 18:14:31 +0000 (18:14 +0000)
src/backend/parser/gram.y

index 87c82839df460c81b854443d144c3b0a4564f5e4..006e545c3af107bebdee2dc909c7cd4697e615e4 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.106 1999/10/03 23:55:30 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.107 1999/10/05 18:14:31 momjian Exp $
  *
  * HISTORY
  *       AUTHOR                        DATE                    MAJOR EVENT
@@ -365,20 +365,29 @@ Oid       param_type(int t); /* used in parse_expr.c */
 %left          UNION INTERSECT EXCEPT
 %%
 
-stmtblock:  stmtmulti opt_semi
+/*
+ *     Handle comment-only lines, and ;; SELECT * FROM pg_class ;;;
+ *     psql already handles such cases, but other interfaces don't.
+ *     bjm 1999/10/05
+ */
+stmtblock:  stmtmulti
                                { parsetree = $1; }
                ;
 
 stmtmulti:  stmtmulti ';' stmt
-                               { $$ = lappend($1, $3); }
+                               { if ($3 != (Node *)NIL)
+                                       $$ = lappend($1, $3);
+                                 else
+                                       $$ = $1;
+                               }
                | stmt
-                               { $$ = lcons($1,NIL); }
+                               { if ($1 != (Node *)NIL)
+                                       $$ = lcons($1,NIL);
+                                 else
+                                       $$ = (Node *)NIL;
+                               }
                ;
 
-opt_semi:      ';'
-               |       /*EMPTY*/
-               ;
-               
 stmt :   AddAttrStmt
                | AlterUserStmt
                | ClosePortalStmt
@@ -423,6 +432,8 @@ stmt :        AddAttrStmt
                | VariableShowStmt
                | VariableResetStmt
                | ConstraintsSetStmt
+               |       /*EMPTY*/
+                               { $$ = (Node *)NIL; }
                ;
 
 /*****************************************************************************