From 914042fe5f7901d0b1ce1a0fceb743deaf5f91dc Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Thu, 22 Apr 2004 02:58:21 +0000 Subject: [PATCH] This patch makes the EXECUTE command's completion tag return the completion tag of the actual statement executed. This allows the correct update count to be returned for UPDATE/INSERT/DELETE statements. Kris Jurka --- src/backend/commands/prepare.c | 6 +++--- src/backend/tcop/utility.c | 4 ++-- src/include/commands/prepare.h | 5 +++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/backend/commands/prepare.c b/src/backend/commands/prepare.c index 0f95f3bfc0..d85d41c1ec 100644 --- a/src/backend/commands/prepare.c +++ b/src/backend/commands/prepare.c @@ -10,7 +10,7 @@ * Copyright (c) 2002-2003, PostgreSQL Global Development Group * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/prepare.c,v 1.25 2004/01/07 18:56:25 neilc Exp $ + * $PostgreSQL: pgsql/src/backend/commands/prepare.c,v 1.26 2004/04/22 02:58:20 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -106,7 +106,7 @@ PrepareQuery(PrepareStmt *stmt) * Implements the 'EXECUTE' utility statement. */ void -ExecuteQuery(ExecuteStmt *stmt, DestReceiver *dest) +ExecuteQuery(ExecuteStmt *stmt, DestReceiver *dest, char *completionTag) { PreparedStatement *entry; char *query_string; @@ -188,7 +188,7 @@ ExecuteQuery(ExecuteStmt *stmt, DestReceiver *dest) */ PortalStart(portal, paramLI); - (void) PortalRun(portal, FETCH_ALL, dest, dest, NULL); + (void) PortalRun(portal, FETCH_ALL, dest, dest, completionTag); PortalDrop(portal, false); diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index 45bf7d0f1c..98c63fd0e6 100644 --- a/src/backend/tcop/utility.c +++ b/src/backend/tcop/utility.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.212 2004/04/19 21:21:33 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.213 2004/04/22 02:58:20 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -483,7 +483,7 @@ ProcessUtility(Node *parsetree, break; case T_ExecuteStmt: - ExecuteQuery((ExecuteStmt *) parsetree, dest); + ExecuteQuery((ExecuteStmt *) parsetree, dest, completionTag); break; case T_DeallocateStmt: diff --git a/src/include/commands/prepare.h b/src/include/commands/prepare.h index 90e17b7378..cb2fed06f0 100644 --- a/src/include/commands/prepare.h +++ b/src/include/commands/prepare.h @@ -6,7 +6,7 @@ * * Copyright (c) 2002-2003, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/include/commands/prepare.h,v 1.9 2003/11/29 22:40:59 pgsql Exp $ + * $PostgreSQL: pgsql/src/include/commands/prepare.h,v 1.10 2004/04/22 02:58:21 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -42,7 +42,8 @@ typedef struct /* Utility statements PREPARE, EXECUTE, DEALLOCATE, EXPLAIN EXECUTE */ extern void PrepareQuery(PrepareStmt *stmt); -extern void ExecuteQuery(ExecuteStmt *stmt, DestReceiver *dest); +extern void ExecuteQuery(ExecuteStmt *stmt, DestReceiver *dest, + char *completionTag); extern void DeallocateQuery(DeallocateStmt *stmt); extern void ExplainExecuteQuery(ExplainStmt *stmt, TupOutputState *tstate); -- 2.40.0