From dc9142f4066158a0a538c59c37dd7fdb7b1f3202 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 7 Oct 2006 20:16:57 +0000 Subject: [PATCH] When planning a query at Bind time, be careful to pass the correct query_list into the Portal, ie, the one seen and possibly modified by the planner. My fault :-( Per report from Sergey Koposov. --- src/backend/tcop/postgres.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index ee63220d95..e22445b474 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.512 2006/10/07 19:25:28 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.513 2006/10/07 20:16:57 tgl Exp $ * * NOTES * this is the "main" module of the postgres backend and @@ -1294,6 +1294,7 @@ exec_bind_message(StringInfo input_message) PreparedStatement *pstmt; Portal portal; ParamListInfo params; + List *query_list; List *plan_list; MemoryContext qContext; bool save_log_statement_stats = log_statement_stats; @@ -1572,13 +1573,13 @@ exec_bind_message(StringInfo input_message) qContext = PortalGetHeapMemory(portal); oldContext = MemoryContextSwitchTo(qContext); - plan_list = pg_plan_queries(copyObject(pstmt->query_list), - params, - true); + query_list = copyObject(pstmt->query_list); + plan_list = pg_plan_queries(query_list, params, true); MemoryContextSwitchTo(oldContext); } else { + query_list = pstmt->query_list; plan_list = pstmt->plan_list; qContext = pstmt->context; } @@ -1590,7 +1591,7 @@ exec_bind_message(StringInfo input_message) *pstmt->stmt_name ? pstmt->stmt_name : NULL, pstmt->query_string, pstmt->commandTag, - pstmt->query_list, + query_list, plan_list, qContext); -- 2.40.0