From 00c85b44b86518df6cb84f25f8ee42e5395634df Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Tue, 5 Oct 1999 18:14:31 +0000
Subject: [PATCH] Allow comment-only lines, and ;;; lines too.

---
 src/backend/parser/gram.y | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 87c82839df4..006e545c3af 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -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; }
 		;
 
 /*****************************************************************************
-- 
GitLab