aboutsummaryrefslogtreecommitdiff
path: root/src/backend/nodes
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2002-11-11 22:19:25 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2002-11-11 22:19:25 +0000
commitf9b5b41ef993a9b76b7f97b271df8034f1a24154 (patch)
treeddd95da1ffa8ce1fee1ebc807822d6cc67cd8cdd /src/backend/nodes
parent1b342df00af318055a1cf432c3eaa3b74347df39 (diff)
downloadpostgresql-f9b5b41ef993a9b76b7f97b271df8034f1a24154.tar.gz
postgresql-f9b5b41ef993a9b76b7f97b271df8034f1a24154.zip
Code review for ON COMMIT patch. Make the actual on-commit action happen
before commit, not after :-( --- the original coding is not only unsafe if an error occurs while it's processing, but it generates an invalid sequence of WAL entries. Resurrect 7.2 logic for deleting items when no longer needed. Use an enum instead of random macros. Editorialize on names used for routines and constants. Teach backend/nodes routines about new field in CreateTable struct. Add a regression test.
Diffstat (limited to 'src/backend/nodes')
-rw-r--r--src/backend/nodes/copyfuncs.c3
-rw-r--r--src/backend/nodes/equalfuncs.c4
-rw-r--r--src/backend/nodes/outfuncs.c7
3 files changed, 9 insertions, 5 deletions
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c
index 447d5600643..c354abf5dad 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.216 2002/11/06 22:31:23 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.217 2002/11/11 22:19:22 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2037,6 +2037,7 @@ _copyCreateStmt(CreateStmt *from)
Node_Copy(from, newnode, inhRelations);
Node_Copy(from, newnode, constraints);
newnode->hasoids = from->hasoids;
+ newnode->oncommit = from->oncommit;
return newnode;
}
diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c
index 122de38fed9..ab84f5d3d20 100644
--- a/src/backend/nodes/equalfuncs.c
+++ b/src/backend/nodes/equalfuncs.c
@@ -20,7 +20,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.162 2002/11/06 00:00:43 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.163 2002/11/11 22:19:22 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -840,6 +840,8 @@ _equalCreateStmt(CreateStmt *a, CreateStmt *b)
return false;
if (a->hasoids != b->hasoids)
return false;
+ if (a->oncommit != b->oncommit)
+ return false;
return true;
}
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index b35763f23da..c5b5a493583 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -5,7 +5,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.178 2002/11/06 22:31:24 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.179 2002/11/11 22:19:22 tgl Exp $
*
* NOTES
* Every (plan) node in POSTGRES has an associated "out" routine which
@@ -117,8 +117,9 @@ _outCreateStmt(StringInfo str, CreateStmt *node)
appendStringInfo(str, " :constraints ");
_outNode(str, node->constraints);
- appendStringInfo(str, " :hasoids %s ",
- booltostr(node->hasoids));
+ appendStringInfo(str, " :hasoids %s :oncommit %d ",
+ booltostr(node->hasoids),
+ (int) node->oncommit);
}
static void