aboutsummaryrefslogtreecommitdiff
path: root/src/backend/nodes
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-07-03 16:34:26 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-07-03 16:34:26 +0000
commit455891bf96f6ee3dda9150fe83af2be5e86a572b (patch)
treed29465046a93c84445b8160e5af83899440330a2 /src/backend/nodes
parent7b1885bf989781b12bda847b98c89476efb894c9 (diff)
downloadpostgresql-455891bf96f6ee3dda9150fe83af2be5e86a572b.tar.gz
postgresql-455891bf96f6ee3dda9150fe83af2be5e86a572b.zip
Code review for UPDATE tab SET col = DEFAULT patch ... whack it around
so it has some chance of working in rules ...
Diffstat (limited to 'src/backend/nodes')
-rw-r--r--src/backend/nodes/copyfuncs.c30
-rw-r--r--src/backend/nodes/equalfuncs.c23
-rw-r--r--src/backend/nodes/outfuncs.c14
-rw-r--r--src/backend/nodes/readfuncs.c18
4 files changed, 61 insertions, 24 deletions
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c
index 0caa7a55589..f2b896afe8f 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
- * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.258 2003/06/29 00:33:43 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.259 2003/07/03 16:32:20 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1042,6 +1042,20 @@ _copyCoerceToDomainValue(CoerceToDomainValue *from)
}
/*
+ * _copySetToDefault
+ */
+static SetToDefault *
+_copySetToDefault(SetToDefault *from)
+{
+ SetToDefault *newnode = makeNode(SetToDefault);
+
+ COPY_SCALAR_FIELD(typeId);
+ COPY_SCALAR_FIELD(typeMod);
+
+ return newnode;
+}
+
+/*
* _copyTargetEntry
*/
static TargetEntry *
@@ -1669,14 +1683,6 @@ _copyFuncWithArgs(FuncWithArgs *from)
return newnode;
}
-static SetToDefault *
-_copySetToDefault(SetToDefault *from)
-{
- SetToDefault *newnode = makeNode(SetToDefault);
-
- return newnode;
-}
-
static DeclareCursorStmt *
_copyDeclareCursorStmt(DeclareCursorStmt *from)
{
@@ -2607,6 +2613,9 @@ copyObject(void *from)
case T_CoerceToDomainValue:
retval = _copyCoerceToDomainValue(from);
break;
+ case T_SetToDefault:
+ retval = _copySetToDefault(from);
+ break;
case T_TargetEntry:
retval = _copyTargetEntry(from);
break;
@@ -2955,9 +2964,6 @@ copyObject(void *from)
case T_FuncWithArgs:
retval = _copyFuncWithArgs(from);
break;
- case T_SetToDefault:
- retval = _copySetToDefault(from);
- break;
default:
elog(ERROR, "copyObject: don't know how to copy node type %d",
diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c
index 0f6fbaae2ee..2caca93a6b4 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
- * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.201 2003/06/29 00:33:43 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.202 2003/07/03 16:32:32 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -486,6 +486,15 @@ _equalCoerceToDomainValue(CoerceToDomainValue *a, CoerceToDomainValue *b)
}
static bool
+_equalSetToDefault(SetToDefault *a, SetToDefault *b)
+{
+ COMPARE_SCALAR_FIELD(typeId);
+ COMPARE_SCALAR_FIELD(typeMod);
+
+ return true;
+}
+
+static bool
_equalTargetEntry(TargetEntry *a, TargetEntry *b)
{
COMPARE_NODE_FIELD(resdom);
@@ -741,12 +750,6 @@ _equalFuncWithArgs(FuncWithArgs *a, FuncWithArgs *b)
}
static bool
-_equalSetToDefault(SetToDefault *a, SetToDefault *b)
-{
- return true;
-}
-
-static bool
_equalDeclareCursorStmt(DeclareCursorStmt *a, DeclareCursorStmt *b)
{
COMPARE_STRING_FIELD(portalname);
@@ -1727,6 +1730,9 @@ equal(void *a, void *b)
case T_CoerceToDomainValue:
retval = _equalCoerceToDomainValue(a, b);
break;
+ case T_SetToDefault:
+ retval = _equalSetToDefault(a, b);
+ break;
case T_TargetEntry:
retval = _equalTargetEntry(a, b);
break;
@@ -2073,9 +2079,6 @@ equal(void *a, void *b)
case T_FuncWithArgs:
retval = _equalFuncWithArgs(a, b);
break;
- case T_SetToDefault:
- retval = _equalSetToDefault(a, b);
- break;
default:
elog(WARNING, "equal: don't know whether nodes of type %d are equal",
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index 3b4858ee16e..2f622c9d7c1 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.211 2003/06/29 00:33:43 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.212 2003/07/03 16:32:38 tgl Exp $
*
* NOTES
* Every node type that can appear in stored rules' parsetrees *must*
@@ -850,6 +850,15 @@ _outCoerceToDomainValue(StringInfo str, CoerceToDomainValue *node)
}
static void
+_outSetToDefault(StringInfo str, SetToDefault *node)
+{
+ WRITE_NODE_TYPE("SETTODEFAULT");
+
+ WRITE_OID_FIELD(typeId);
+ WRITE_INT_FIELD(typeMod);
+}
+
+static void
_outTargetEntry(StringInfo str, TargetEntry *node)
{
WRITE_NODE_TYPE("TARGETENTRY");
@@ -1685,6 +1694,9 @@ _outNode(StringInfo str, void *obj)
case T_CoerceToDomainValue:
_outCoerceToDomainValue(str, obj);
break;
+ case T_SetToDefault:
+ _outSetToDefault(str, obj);
+ break;
case T_TargetEntry:
_outTargetEntry(str, obj);
break;
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c
index b26a7a1ae8c..da6d10c31ee 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.157 2003/06/29 00:33:43 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.158 2003/07/03 16:32:39 tgl Exp $
*
* NOTES
* Path and Plan nodes do not have any readfuncs support, because we
@@ -761,6 +761,20 @@ _readCoerceToDomainValue(void)
}
/*
+ * _readSetToDefault
+ */
+static SetToDefault *
+_readSetToDefault(void)
+{
+ READ_LOCALS(SetToDefault);
+
+ READ_OID_FIELD(typeId);
+ READ_INT_FIELD(typeMod);
+
+ READ_DONE();
+}
+
+/*
* _readTargetEntry
*/
static TargetEntry *
@@ -1005,6 +1019,8 @@ parseNodeString(void)
return_value = _readCoerceToDomain();
else if (MATCH("COERCETODOMAINVALUE", 19))
return_value = _readCoerceToDomainValue();
+ else if (MATCH("SETTODEFAULT", 12))
+ return_value = _readSetToDefault();
else if (MATCH("TARGETENTRY", 11))
return_value = _readTargetEntry();
else if (MATCH("RANGETBLREF", 11))