aboutsummaryrefslogtreecommitdiff
path: root/src/backend/nodes/readfuncs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/nodes/readfuncs.c')
-rw-r--r--src/backend/nodes/readfuncs.c50
1 files changed, 49 insertions, 1 deletions
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c
index 568bf8ee1e4..9b2198ec5a5 100644
--- a/src/backend/nodes/readfuncs.c
+++ b/src/backend/nodes/readfuncs.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.136 2002/11/06 00:00:44 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.137 2002/11/15 02:50:07 momjian Exp $
*
* NOTES
* Most of the read functions for plan nodes are tested. (In fact, they
@@ -949,6 +949,10 @@ _readConstraintTest(void)
token = pg_strtok(&length); /* now read it */
local_node->name = nullable_string(token, length);
+ token = pg_strtok(&length); /* get :domname */
+ token = pg_strtok(&length); /* get domname */
+ local_node->domname = nullable_string(token, length);
+
token = pg_strtok(&length); /* eat :check_expr */
local_node->check_expr = nodeRead(true); /* now read it */
@@ -956,6 +960,46 @@ _readConstraintTest(void)
}
/* ----------------
+ * _readConstraintTestValue
+ *
+ * ConstraintTestValue is a subclass of Node
+ * ----------------
+ */
+static ConstraintTestValue *
+_readConstraintTestValue(void)
+{
+ ConstraintTestValue *local_node;
+ char *token;
+ int length;
+
+ local_node = makeNode(ConstraintTestValue);
+ token = pg_strtok(&length); /* eat :typeid */
+ token = pg_strtok(&length); /* get typeid */
+ local_node->typeId = atooid(token);
+ token = pg_strtok(&length); /* eat :typemod */
+ token = pg_strtok(&length); /* get typemod */
+ local_node->typeMod = atoi(token);
+
+ return local_node;
+}
+
+/* ----------------
+ * _readDomainConstraintValue
+ *
+ * DomainConstraintValue is a subclass of Node
+ * ----------------
+ */
+static DomainConstraintValue *
+_readDomainConstraintValue(void)
+{
+ DomainConstraintValue *local_node;
+
+ local_node = makeNode(DomainConstraintValue);
+
+ return local_node;
+}
+
+/* ----------------
* _readVar
*
* Var is a subclass of Expr
@@ -2300,6 +2344,10 @@ parsePlanString(void)
return_value = _readBooleanTest();
else if (length == 14 && strncmp(token, "CONSTRAINTTEST", length) == 0)
return_value = _readConstraintTest();
+ else if (length == 21 && strncmp(token, "DOMAINCONSTRAINTVALUE", length) == 0)
+ return_value = _readDomainConstraintValue();
+ else if (length == 19 && strncmp(token, "CONSTRAINTTESTVALUE", length) == 0)
+ return_value = _readConstraintTestValue();
else
elog(ERROR, "badly formatted planstring \"%.10s\"...", token);