diff options
author | Bruce Momjian <bruce@momjian.us> | 2002-11-15 02:50:21 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2002-11-15 02:50:21 +0000 |
commit | 6b603e67dcd1a93a56f3c6b5f36fd8f08e2ee35d (patch) | |
tree | 5d4a4a590f20c0516bb380e6169114120be3d58f /src/backend/nodes/readfuncs.c | |
parent | 2986aa6a668bce3cfb83606bb52e9d01ae66ad6c (diff) | |
download | postgresql-6b603e67dcd1a93a56f3c6b5f36fd8f08e2ee35d.tar.gz postgresql-6b603e67dcd1a93a56f3c6b5f36fd8f08e2ee35d.zip |
Add DOMAIN check constraints.
Rod Taylor
Diffstat (limited to 'src/backend/nodes/readfuncs.c')
-rw-r--r-- | src/backend/nodes/readfuncs.c | 50 |
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); |