diff options
| author | Tom Lane | 2009-04-04 21:12:31 +0000 |
|---|---|---|
| committer | Tom Lane | 2009-04-04 21:12:31 +0000 |
| commit | 090173a3f937952b2a5c6d92a3ab139e79ca3033 (patch) | |
| tree | f015510d48f341507f96ae5288e069700755799d /src/backend/nodes | |
| parent | c973051ae69228129aeb8eb413d451ba4b326cad (diff) | |
Remove the recently added node types ReloptElem and OptionDefElem in favor
of adding optional namespace and action fields to DefElem. Having three
node types that do essentially the same thing bloats the code and leads
to errors of confusion, such as in yesterday's bug report from Khee Chin.
Diffstat (limited to 'src/backend/nodes')
| -rw-r--r-- | src/backend/nodes/copyfuncs.c | 33 | ||||
| -rw-r--r-- | src/backend/nodes/equalfuncs.c | 29 | ||||
| -rw-r--r-- | src/backend/nodes/makefuncs.c | 34 | ||||
| -rw-r--r-- | src/backend/nodes/outfuncs.c | 17 |
4 files changed, 26 insertions, 87 deletions
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index f9a1efdc447..bbeac655970 100644 --- a/src/backend/nodes/copyfuncs.c +++ b/src/backend/nodes/copyfuncs.c @@ -15,7 +15,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.427 2009/03/21 00:04:39 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.428 2009/04/04 21:12:31 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -2098,31 +2098,10 @@ _copyDefElem(DefElem *from) { DefElem *newnode = makeNode(DefElem); + COPY_STRING_FIELD(defnamespace); COPY_STRING_FIELD(defname); COPY_NODE_FIELD(arg); - - return newnode; -} - -static OptionDefElem * -_copyOptionDefElem(OptionDefElem *from) -{ - OptionDefElem *newnode = makeNode(OptionDefElem); - - COPY_SCALAR_FIELD(alter_op); - COPY_NODE_FIELD(def); - - return newnode; -} - -static ReloptElem * -_copyReloptElem(ReloptElem *from) -{ - ReloptElem *newnode = makeNode(ReloptElem); - - COPY_STRING_FIELD(optname); - COPY_STRING_FIELD(nmspc); - COPY_NODE_FIELD(arg); + COPY_SCALAR_FIELD(defaction); return newnode; } @@ -4076,12 +4055,6 @@ copyObject(void *from) case T_DefElem: retval = _copyDefElem(from); break; - case T_OptionDefElem: - retval = _copyOptionDefElem(from); - break; - case T_ReloptElem: - retval = _copyReloptElem(from); - break; case T_LockingClause: retval = _copyLockingClause(from); break; diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c index 0950dd6131f..c5f09cab82a 100644 --- a/src/backend/nodes/equalfuncs.c +++ b/src/backend/nodes/equalfuncs.c @@ -22,7 +22,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/nodes/equalfuncs.c,v 1.350 2009/03/10 22:09:25 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/equalfuncs.c,v 1.351 2009/04/04 21:12:31 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -2074,27 +2074,10 @@ _equalConstraint(Constraint *a, Constraint *b) static bool _equalDefElem(DefElem *a, DefElem *b) { + COMPARE_STRING_FIELD(defnamespace); COMPARE_STRING_FIELD(defname); COMPARE_NODE_FIELD(arg); - - return true; -} - -static bool -_equalOptionDefElem(OptionDefElem *a, OptionDefElem *b) -{ - COMPARE_SCALAR_FIELD(alter_op); - COMPARE_NODE_FIELD(def); - - return true; -} - -static bool -_equalReloptElem(ReloptElem *a, ReloptElem *b) -{ - COMPARE_STRING_FIELD(nmspc); - COMPARE_STRING_FIELD(optname); - COMPARE_NODE_FIELD(arg); + COMPARE_SCALAR_FIELD(defaction); return true; } @@ -2850,12 +2833,6 @@ equal(void *a, void *b) case T_DefElem: retval = _equalDefElem(a, b); break; - case T_OptionDefElem: - retval = _equalOptionDefElem(a, b); - break; - case T_ReloptElem: - retval = _equalReloptElem(a, b); - break; case T_LockingClause: retval = _equalLockingClause(a, b); break; diff --git a/src/backend/nodes/makefuncs.c b/src/backend/nodes/makefuncs.c index 39d7e20f83e..4a649ee2b48 100644 --- a/src/backend/nodes/makefuncs.c +++ b/src/backend/nodes/makefuncs.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/nodes/makefuncs.c,v 1.63 2009/02/02 19:31:39 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/makefuncs.c,v 1.64 2009/04/04 21:12:31 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -351,37 +351,37 @@ makeFuncExpr(Oid funcid, Oid rettype, List *args, CoercionForm fformat) /* * makeDefElem - * build a DefElem node + * + * This is sufficient for the "typical" case with an unqualified option name + * and no special action. */ DefElem * makeDefElem(char *name, Node *arg) { DefElem *res = makeNode(DefElem); + res->defnamespace = NULL; res->defname = name; res->arg = arg; + res->defaction = DEFELEM_UNSPEC; + return res; } /* - * makeOptionDefElem - - * build an OptionDefElem node + * makeDefElemExtended - + * build a DefElem node with all fields available to be specified */ -OptionDefElem * -makeOptionDefElem(int op, DefElem *def) -{ - OptionDefElem *res = makeNode(OptionDefElem); - res->alter_op = op; - res->def = def; - return res; -} - -ReloptElem * -makeReloptElem(char *name, char *nmspc, Node *arg) +DefElem * +makeDefElemExtended(char *namespace, char *name, Node *arg, + DefElemAction defaction) { - ReloptElem *res = makeNode(ReloptElem); + DefElem *res = makeNode(DefElem); - res->optname = name; - res->nmspc = nmspc; + res->defnamespace = namespace; + res->defname = name; res->arg = arg; + res->defaction = defaction; + return res; } diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 3fdd9bab669..f3ca8d36228 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/nodes/outfuncs.c,v 1.356 2009/03/26 17:15:34 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/outfuncs.c,v 1.357 2009/04/04 21:12:31 tgl Exp $ * * NOTES * Every node type that can appear in stored rules' parsetrees *must* @@ -1797,18 +1797,10 @@ _outDefElem(StringInfo str, DefElem *node) { WRITE_NODE_TYPE("DEFELEM"); + WRITE_STRING_FIELD(defnamespace); WRITE_STRING_FIELD(defname); WRITE_NODE_FIELD(arg); -} - -static void -_outReloptElem(StringInfo str, ReloptElem *node) -{ - WRITE_NODE_TYPE("RELOPTELEM"); - - WRITE_STRING_FIELD(nmspc); - WRITE_STRING_FIELD(optname); - WRITE_NODE_FIELD(arg); + WRITE_ENUM_FIELD(defaction, DefElemAction); } static void @@ -2774,9 +2766,6 @@ _outNode(StringInfo str, void *obj) case T_DefElem: _outDefElem(str, obj); break; - case T_ReloptElem: - _outReloptElem(str, obj); - break; case T_LockingClause: _outLockingClause(str, obj); break; |
