From c01a56daf556531906f9bb1cfdc558f51e6f5da9 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Wed, 7 Jan 1998 08:08:08 +0000
Subject: [PATCH] Fix for views and outnodes.

---
 src/backend/nodes/read.c            | 10 ++++++----
 src/backend/nodes/readfuncs.c       |  4 +---
 src/backend/rewrite/rewriteDefine.c |  6 +++---
 3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/backend/nodes/read.c b/src/backend/nodes/read.c
index ef12ecf7347..a3b314386ba 100644
--- a/src/backend/nodes/read.c
+++ b/src/backend/nodes/read.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/nodes/read.c,v 1.7 1998/01/06 18:52:18 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/nodes/read.c,v 1.8 1998/01/07 08:07:58 momjian Exp $
  *
  * HISTORY
  *	  AUTHOR			DATE			MAJOR EVENT
@@ -94,7 +94,9 @@ nodeTokenType(char *token, int length)
 
 		retval = (*token != '.') ? T_Integer : T_Float;
 	}
-	else if (isalpha(*token) || *token == '_')
+		/* make "" == NULL, not T_String.  Is this a problem? 1998/1/7 bjm */
+	else if (isalpha(*token) || *token == '_' || 
+			 (token[0] == '\"' && token[1] == '\"'))
 		retval = ATOM_TOKEN;
 	else if (*token == '(')
 		retval = LEFT_PAREN;
@@ -147,8 +149,8 @@ lsptok(char *string, int *length)
 	{
 		for (local_str++; *local_str != '\"'; (*length)++, local_str++)
 			;
-		if (*length == 2)
-			*length -= 2;	/* if "", return zero length */
+		if (*length == 1)
+			*length = 0;	/* if "", return zero length */
 		else
 			(*length)++;
 		local_str++;
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c
index 6a7a15280ac..3b43849f131 100644
--- a/src/backend/nodes/readfuncs.c
+++ b/src/backend/nodes/readfuncs.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.15 1998/01/06 23:19:49 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.16 1998/01/07 08:08:02 momjian Exp $
  *
  * NOTES
  *	  Most of the read functions for plan nodes are tested. (In fact, they
@@ -187,7 +187,6 @@ _readSortClause()
 	local_node = makeNode(SortClause);
 
 	token = lsptok(NULL, &length);		/* skip the :resdom */
-	token = lsptok(NULL, &length);		/* get resdom */
 	local_node->resdom = nodeRead(true);
 
 	token = lsptok(NULL, &length);		/* skip :opoid */
@@ -211,7 +210,6 @@ _readGroupClause()
 	local_node = makeNode(GroupClause);
 
 	token = lsptok(NULL, &length);		/* skip the :entry */
-	token = lsptok(NULL, &length);		/* get entry */
 	local_node->entry = nodeRead(true);
 
 	token = lsptok(NULL, &length);		/* skip :grpOpoid */
diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c
index 3dccd1bf50f..37ffb52ef33 100644
--- a/src/backend/rewrite/rewriteDefine.c
+++ b/src/backend/rewrite/rewriteDefine.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteDefine.c,v 1.10 1998/01/05 03:32:44 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteDefine.c,v 1.11 1998/01/07 08:08:08 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -115,7 +115,7 @@ InsertRule(char *rulname,
 		is_instead = "t";
 
 	if (evqual == NULL)
-		evqual = "nil";
+		evqual = "\"\"";
 
 	if (IsDefinedRewriteRule(rulname))
 		elog(ABORT, "Attempt to insert rule '%s' failed: already exists",
@@ -245,7 +245,7 @@ DefineQueryRewrite(RuleStmt *stmt)
 							eslot_string,
 							event_qualP,
 							true,
-							"nil");
+							"\"\"");
 		prs2_addToRelation(ev_relid, ruleId, event_type, event_attno, TRUE,
 						   event_qual, NIL);
 
-- 
GitLab