aboutsummaryrefslogtreecommitdiff
path: root/src/backend/nodes/outfuncs.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-01-17 04:53:46 +0000
committerBruce Momjian <bruce@momjian.us>1998-01-17 04:53:46 +0000
commitb37bc65f44eb16e98212fc61b565bb86502812fd (patch)
tree0058866f3e0dcc08a98a534eee73cea7bd53bc3e /src/backend/nodes/outfuncs.c
parentc65ea0e040f08b59407cd74f8f0f0dd190169d46 (diff)
downloadpostgresql-b37bc65f44eb16e98212fc61b565bb86502812fd.tar.gz
postgresql-b37bc65f44eb16e98212fc61b565bb86502812fd.zip
Creates the SubLink structure, and the Query->hasSubLink field,
with supporting code. Creates SubLink node in gram.y. psql.c patch for newatttypmod field.
Diffstat (limited to 'src/backend/nodes/outfuncs.c')
-rw-r--r--src/backend/nodes/outfuncs.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index 41f3022c135..63c2ffef434 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.22 1998/01/16 23:19:59 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.23 1998/01/17 04:53:09 momjian Exp $
*
* NOTES
* Every (plan) node in POSTGRES has an associated "out" routine which
@@ -230,6 +230,8 @@ _outQuery(StringInfo str, Query *node)
_outNode(str, node->havingQual);
appendStringInfo(str, " :hasAggs ");
appendStringInfo(str, (node->hasAggs ? "true" : "false"));
+ appendStringInfo(str, " :hasSubLinks ");
+ appendStringInfo(str, (node->hasSubLinks ? "true" : "false"));
appendStringInfo(str, " :unionClause ");
_outNode(str, node->unionClause);
}
@@ -754,6 +756,27 @@ _outAggreg(StringInfo str, Aggreg *node)
}
/*
+ * SubLink
+ */
+static void
+_outSubLink(StringInfo str, SubLink *node)
+{
+ char buf[500];
+
+ appendStringInfo(str, "SUBLINK");
+ sprintf(buf, " :subLinkType %d ", node->subLinkType);
+ appendStringInfo(str, buf);
+ appendStringInfo(str, " :useor ");
+ appendStringInfo(str, node->useor ? "true" : "false");
+ appendStringInfo(str, " :lefthand ");
+ _outNode(str, node->lefthand);
+ appendStringInfo(str, " :oper ");
+ _outNode(str, node->oper);
+ appendStringInfo(str, " :subselect ");
+ _outNode(str, node->subselect);
+}
+
+/*
* Array is a subclass of Expr
*/
static void
@@ -1648,6 +1671,9 @@ _outNode(StringInfo str, void *obj)
case T_Aggreg:
_outAggreg(str, obj);
break;
+ case T_SubLink:
+ _outSubLink(str, obj);
+ break;
case T_Array:
_outArray(str, obj);
break;