Commit 94952948 authored by Tom Lane's avatar Tom Lane

Second thoughts about where to put DeferredTriggerEndQuery() call.

parent fbd26d69
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * 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 * NOTES
* this is the "main" module of the postgres backend and * this is the "main" module of the postgres backend and
...@@ -597,10 +597,9 @@ pg_plan_query(Query *querytree) ...@@ -597,10 +597,9 @@ pg_plan_query(Query *querytree)
* *
* Assumptions: * Assumptions:
* *
* Caller is responsible for calling StartTransactionCommand() beforehand * At call, we are not inside a transaction command.
* and CommitTransactionCommand() afterwards (if successful).
* *
* 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 * appropriate for execution of individual queries (typically this will be
* TransactionCommandContext). Note that this routine resets that context * TransactionCommandContext). Note that this routine resets that context
* after each individual query, so don't store anything there that * after each individual query, so don't store anything there that
...@@ -608,7 +607,7 @@ pg_plan_query(Query *querytree) ...@@ -608,7 +607,7 @@ pg_plan_query(Query *querytree)
* *
* parse_context references a context suitable for holding the * parse_context references a context suitable for holding the
* parse/rewrite trees (typically this will be QueryContext). * 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, * In fact, if the query string might contain BEGIN/COMMIT commands,
* parse_context had better outlive TopTransactionContext! * parse_context had better outlive TopTransactionContext!
* *
...@@ -635,7 +634,7 @@ pg_exec_query_string(char *query_string, /* string to execute */ ...@@ -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 * 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 * 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. * 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(); start_xact_command();
xact_started = true; xact_started = true;
...@@ -837,11 +836,6 @@ pg_exec_query_string(char *query_string, /* string to execute */ ...@@ -837,11 +836,6 @@ pg_exec_query_string(char *query_string, /* string to execute */
if (!isTransactionStmt) if (!isTransactionStmt)
CommandCounterIncrement(); CommandCounterIncrement();
/*
* Invoke IMMEDIATE constraint triggers
*/
DeferredTriggerEndQuery();
/* /*
* Clear the execution context to recover temporary * Clear the execution context to recover temporary
* memory used by the query. NOTE: if query string contains * memory used by the query. NOTE: if query string contains
...@@ -888,12 +882,17 @@ start_xact_command(void) ...@@ -888,12 +882,17 @@ start_xact_command(void)
static void static void
finish_xact_command(void) finish_xact_command(void)
{ {
/* Invoke IMMEDIATE constraint triggers */
DeferredTriggerEndQuery();
/* Now commit the command */
if (DebugLvl >= 1) if (DebugLvl >= 1)
elog(DEBUG, "CommitTransactionCommand"); elog(DEBUG, "CommitTransactionCommand");
set_ps_display("commit"); /* XXX probably the wrong place to do this */ set_ps_display("commit"); /* XXX probably the wrong place to do this */
CommitTransactionCommand(); CommitTransactionCommand();
#ifdef SHOW_MEMORY_STATS #ifdef SHOW_MEMORY_STATS
/* print mem stats at each commit for leak tracking */ /* Print mem stats at each commit for leak tracking */
if (ShowStats) if (ShowStats)
MemoryContextStats(TopMemoryContext); MemoryContextStats(TopMemoryContext);
#endif #endif
...@@ -1614,7 +1613,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha ...@@ -1614,7 +1613,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
if (!IsUnderPostmaster) if (!IsUnderPostmaster)
{ {
puts("\nPOSTGRES backend interactive interface "); 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");
} }
/* /*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment