aboutsummaryrefslogtreecommitdiff
path: root/src/backend/tcop/postgres.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2000-10-07 04:00:41 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2000-10-07 04:00:41 +0000
commit949529481ed490959f701725dddbfbc721c0fb51 (patch)
treeb9359a56d9902d2bbc4fd0fe6105395a4b701db7 /src/backend/tcop/postgres.c
parentfbd26d69846fcbfb69deee45bdddcc692dd59b07 (diff)
downloadpostgresql-949529481ed490959f701725dddbfbc721c0fb51.tar.gz
postgresql-949529481ed490959f701725dddbfbc721c0fb51.zip
Second thoughts about where to put DeferredTriggerEndQuery() call.
Diffstat (limited to 'src/backend/tcop/postgres.c')
-rw-r--r--src/backend/tcop/postgres.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 3eaa3a1562d..e276083788d 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.178 2000/10/07 00:58:18 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.179 2000/10/07 04:00:41 tgl Exp $
*
* NOTES
* this is the "main" module of the postgres backend and
@@ -597,10 +597,9 @@ pg_plan_query(Query *querytree)
*
* Assumptions:
*
- * Caller is responsible for calling StartTransactionCommand() beforehand
- * and CommitTransactionCommand() afterwards (if successful).
+ * At call, we are not inside a transaction command.
*
- * The CurrentMemoryContext at entry references a context that is
+ * The CurrentMemoryContext after starting a transaction command must be
* appropriate for execution of individual queries (typically this will be
* TransactionCommandContext). Note that this routine resets that context
* after each individual query, so don't store anything there that
@@ -608,7 +607,7 @@ pg_plan_query(Query *querytree)
*
* parse_context references a context suitable for holding the
* parse/rewrite trees (typically this will be QueryContext).
- * This context *must* be longer-lived than the CurrentMemoryContext!
+ * This context *must* be longer-lived than the transaction context!
* In fact, if the query string might contain BEGIN/COMMIT commands,
* parse_context had better outlive TopTransactionContext!
*
@@ -635,7 +634,7 @@ pg_exec_query_string(char *query_string, /* string to execute */
* query_string will be in this same command block, *unless* we find
* a BEGIN/COMMIT/ABORT statement; we have to force a new xact command
* after one of those, else bad things will happen in xact.c.
- * (Note that this will possibly change execution memory context.)
+ * (Note that this will possibly change current memory context.)
*/
start_xact_command();
xact_started = true;
@@ -838,11 +837,6 @@ pg_exec_query_string(char *query_string, /* string to execute */
CommandCounterIncrement();
/*
- * Invoke IMMEDIATE constraint triggers
- */
- DeferredTriggerEndQuery();
-
- /*
* Clear the execution context to recover temporary
* memory used by the query. NOTE: if query string contains
* BEGIN/COMMIT transaction commands, execution context may
@@ -888,12 +882,17 @@ start_xact_command(void)
static void
finish_xact_command(void)
{
+ /* Invoke IMMEDIATE constraint triggers */
+ DeferredTriggerEndQuery();
+
+ /* Now commit the command */
if (DebugLvl >= 1)
elog(DEBUG, "CommitTransactionCommand");
set_ps_display("commit"); /* XXX probably the wrong place to do this */
CommitTransactionCommand();
+
#ifdef SHOW_MEMORY_STATS
- /* print mem stats at each commit for leak tracking */
+ /* Print mem stats at each commit for leak tracking */
if (ShowStats)
MemoryContextStats(TopMemoryContext);
#endif
@@ -1614,7 +1613,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
if (!IsUnderPostmaster)
{
puts("\nPOSTGRES backend interactive interface ");
- puts("$Revision: 1.178 $ $Date: 2000/10/07 00:58:18 $\n");
+ puts("$Revision: 1.179 $ $Date: 2000/10/07 04:00:41 $\n");
}
/*