Commit 3869e9ae authored by Tom Lane's avatar Tom Lane

Be a bit less cavalier with both the code and the comment for UNKNOWN fix.

parent ff645bf5
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.264 2010/08/19 16:54:43 heikki Exp $ * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.265 2010/08/19 17:31:43 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -5524,14 +5524,16 @@ exec_eval_using_params(PLpgSQL_execstate *estate, List *params) ...@@ -5524,14 +5524,16 @@ exec_eval_using_params(PLpgSQL_execstate *estate, List *params)
if (ppd->types[i] == UNKNOWNOID) if (ppd->types[i] == UNKNOWNOID)
{ {
/* /*
* Treat 'unknown' parameters as text, that's what most people * Treat 'unknown' parameters as text, since that's what most
* would expect. The backend can coerce unknown constants in a * people would expect. SPI_execute_with_args can coerce unknown
* more intelligent way, but not unknown Params. * constants in a more intelligent way, but not unknown Params.
* This code also takes care of copying into the right context.
* Note we assume 'unknown' has the representation of C-string.
*/ */
ppd->types[i] = TEXTOID; ppd->types[i] = TEXTOID;
if (!isnull) if (!isnull)
{ {
ppd->values[i] = CStringGetTextDatum((char *) ppd->values[i]); ppd->values[i] = CStringGetTextDatum(DatumGetCString(ppd->values[i]));
ppd->freevals[i] = true; ppd->freevals[i] = true;
} }
} }
......
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