diff options
Diffstat (limited to 'src/backend/nodes')
| -rw-r--r-- | src/backend/nodes/copyfuncs.c | 19 | ||||
| -rw-r--r-- | src/backend/nodes/equalfuncs.c | 14 | ||||
| -rw-r--r-- | src/backend/nodes/outfuncs.c | 14 | ||||
| -rw-r--r-- | src/backend/nodes/readfuncs.c | 18 |
4 files changed, 61 insertions, 4 deletions
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index c1c4ddfed8..c7d6193280 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.278 2004/03/11 01:47:35 ishii Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.279 2004/03/17 20:48:42 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -969,6 +969,20 @@ _copyCaseWhen(CaseWhen *from) } /* + * _copyCaseTestExpr + */ +static CaseTestExpr * +_copyCaseTestExpr(CaseTestExpr *from) +{ + CaseTestExpr *newnode = makeNode(CaseTestExpr); + + COPY_SCALAR_FIELD(typeId); + COPY_SCALAR_FIELD(typeMod); + + return newnode; +} + +/* * _copyArrayExpr */ static ArrayExpr * @@ -2643,6 +2657,9 @@ copyObject(void *from) case T_CaseWhen: retval = _copyCaseWhen(from); break; + case T_CaseTestExpr: + retval = _copyCaseTestExpr(from); + break; case T_ArrayExpr: retval = _copyArrayExpr(from); break; diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c index fadd02c935..900d98dc8c 100644 --- a/src/backend/nodes/equalfuncs.c +++ b/src/backend/nodes/equalfuncs.c @@ -18,7 +18,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/nodes/equalfuncs.c,v 1.217 2004/03/14 23:41:26 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/equalfuncs.c,v 1.218 2004/03/17 20:48:42 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -404,6 +404,15 @@ _equalCaseWhen(CaseWhen *a, CaseWhen *b) } static bool +_equalCaseTestExpr(CaseTestExpr *a, CaseTestExpr *b) +{ + COMPARE_SCALAR_FIELD(typeId); + COMPARE_SCALAR_FIELD(typeMod); + + return true; +} + +static bool _equalArrayExpr(ArrayExpr *a, ArrayExpr *b) { COMPARE_SCALAR_FIELD(array_typeid); @@ -1724,6 +1733,9 @@ equal(void *a, void *b) case T_CaseWhen: retval = _equalCaseWhen(a, b); break; + case T_CaseTestExpr: + retval = _equalCaseTestExpr(a, b); + break; case T_ArrayExpr: retval = _equalArrayExpr(a, b); break; diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 93afd868f8..4db6517cd7 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.232 2004/01/31 05:09:40 neilc Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/outfuncs.c,v 1.233 2004/03/17 20:48:42 tgl Exp $ * * NOTES * Every node type that can appear in stored rules' parsetrees *must* @@ -806,6 +806,15 @@ _outCaseWhen(StringInfo str, CaseWhen *node) } static void +_outCaseTestExpr(StringInfo str, CaseTestExpr *node) +{ + WRITE_NODE_TYPE("CASETESTEXPR"); + + WRITE_OID_FIELD(typeId); + WRITE_INT_FIELD(typeMod); +} + +static void _outArrayExpr(StringInfo str, ArrayExpr *node) { WRITE_NODE_TYPE("ARRAY"); @@ -1701,6 +1710,9 @@ _outNode(StringInfo str, void *obj) case T_CaseWhen: _outCaseWhen(str, obj); break; + case T_CaseTestExpr: + _outCaseTestExpr(str, obj); + break; case T_ArrayExpr: _outArrayExpr(str, obj); break; diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c index 93c71fd224..116345686b 100644 --- a/src/backend/nodes/readfuncs.c +++ b/src/backend/nodes/readfuncs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/nodes/readfuncs.c,v 1.165 2004/01/14 23:01:55 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/readfuncs.c,v 1.166 2004/03/17 20:48:42 tgl Exp $ * * NOTES * Path and Plan nodes do not have any readfuncs support, because we @@ -649,6 +649,20 @@ _readCaseWhen(void) } /* + * _readCaseTestExpr + */ +static CaseTestExpr * +_readCaseTestExpr(void) +{ + READ_LOCALS(CaseTestExpr); + + READ_OID_FIELD(typeId); + READ_INT_FIELD(typeMod); + + READ_DONE(); +} + +/* * _readArrayExpr */ static ArrayExpr * @@ -1010,6 +1024,8 @@ parseNodeString(void) return_value = _readCaseExpr(); else if (MATCH("WHEN", 4)) return_value = _readCaseWhen(); + else if (MATCH("CASETESTEXPR", 12)) + return_value = _readCaseTestExpr(); else if (MATCH("ARRAY", 5)) return_value = _readArrayExpr(); else if (MATCH("COALESCE", 8)) |
