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.
This commit is contained in:
parent
96b171903d
commit
972e20b429
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* 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
|
||||
* this is the "main" module of the postgres backend and
|
||||
@ -1239,12 +1239,24 @@ exec_parse_message(const char *query_string, /* string to execute */
|
||||
}
|
||||
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,
|
||||
pstrdup(query_string),
|
||||
commandTag,
|
||||
paramTypes,
|
||||
newParamTypes,
|
||||
numParams,
|
||||
stmt_list,
|
||||
fully_planned,
|
||||
|
Loading…
x
Reference in New Issue
Block a user