This patch makes the EXECUTE command's completion tag return the
authorBruce Momjian <bruce@momjian.us>
Thu, 22 Apr 2004 02:58:21 +0000 (02:58 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 22 Apr 2004 02:58:21 +0000 (02:58 +0000)
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
src/backend/tcop/utility.c
src/include/commands/prepare.h

index 0f95f3bfc0544fe8c9559198fa517fe0af67078b..d85d41c1ec7999b4c3a6ae7196c445db05c182b9 100644 (file)
@@ -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);
 
index 45bf7d0f1c059bf096f3bee4bdca04485d0fcb51..98c63fd0e64a6583a20340507247229eee025d74 100644 (file)
@@ -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:
index 90e17b7378a6dbf69e0e7161bc06597892ffa6bf..cb2fed06f076076e59ffe0cbfad12691aaa13c1c 100644 (file)
@@ -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);