Commit 972e20b4 authored by Tom Lane's avatar Tom Lane

exec_parse_message neglected to copy parameter type array into the

required memory context when handling client-specified parameter types
for an unnamed statement.  Per report from Kris Jurka.
parent 96b17190
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.529 2007/03/22 19:55:04 tgl Exp $ * $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.530 2007/03/29 19:10:10 tgl Exp $
* *
* NOTES * NOTES
* this is the "main" module of the postgres backend and * this is the "main" module of the postgres backend and
...@@ -1239,12 +1239,24 @@ exec_parse_message(const char *query_string, /* string to execute */ ...@@ -1239,12 +1239,24 @@ exec_parse_message(const char *query_string, /* string to execute */
} }
else else
{ {
/* query_string needs to be copied into unnamed_stmt_context */ /*
/* the rest is there already */ * paramTypes and query_string need to be copied into
* unnamed_stmt_context. The rest is there already
*/
Oid *newParamTypes;
if (numParams > 0)
{
newParamTypes = (Oid *) palloc(numParams * sizeof(Oid));
memcpy(newParamTypes, paramTypes, numParams * sizeof(Oid));
}
else
newParamTypes = NULL;
unnamed_stmt_psrc = FastCreateCachedPlan(raw_parse_tree, unnamed_stmt_psrc = FastCreateCachedPlan(raw_parse_tree,
pstrdup(query_string), pstrdup(query_string),
commandTag, commandTag,
paramTypes, newParamTypes,
numParams, numParams,
stmt_list, stmt_list,
fully_planned, fully_planned,
......
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