diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2006-09-06 20:40:48 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2006-09-06 20:40:48 +0000 |
commit | 5983a1aaa9137367c834e0ff84cd8d4d48b326b2 (patch) | |
tree | 3425eaf290ad8ee4d565551d45e60df514f67e55 /src/backend/executor | |
parent | 389870b256bc65f088a7f9a4ea4a88c01242c551 (diff) | |
download | postgresql-5983a1aaa9137367c834e0ff84cd8d4d48b326b2.tar.gz postgresql-5983a1aaa9137367c834e0ff84cd8d4d48b326b2.zip |
Change processing of extended-Query mode so that an unnamed statement
that has parameters is always planned afresh for each Bind command,
treating the parameter values as constants in the planner. This removes
the performance penalty formerly often paid for using out-of-line
parameters --- with this definition, the planner can do constant folding,
LIKE optimization, etc. After a suggestion by Andrew@supernews.
Diffstat (limited to 'src/backend/executor')
-rw-r--r-- | src/backend/executor/functions.c | 3 | ||||
-rw-r--r-- | src/backend/executor/spi.c | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/backend/executor/functions.c b/src/backend/executor/functions.c index 28462ba8b8b..e2e56543839 100644 --- a/src/backend/executor/functions.c +++ b/src/backend/executor/functions.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/executor/functions.c,v 1.105 2006/08/12 20:05:55 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/executor/functions.c,v 1.106 2006/09/06 20:40:47 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -442,6 +442,7 @@ postquel_sub_params(SQLFunctionCachePtr fcache, prm->value = fcinfo->arg[i]; prm->isnull = fcinfo->argnull[i]; + prm->pflags = 0; prm->ptype = fcache->argtypes[i]; } } diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c index e6fcae7f0b6..dc3ab9e7c32 100644 --- a/src/backend/executor/spi.c +++ b/src/backend/executor/spi.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.161 2006/09/03 03:19:44 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.162 2006/09/06 20:40:47 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -893,6 +893,7 @@ SPI_cursor_open(const char *name, void *plan, ParamExternData *prm = ¶mLI->params[k]; prm->ptype = spiplan->argtypes[k]; + prm->pflags = 0; prm->isnull = (Nulls && Nulls[k] == 'n'); if (prm->isnull) { @@ -1357,6 +1358,7 @@ _SPI_execute_plan(_SPI_plan *plan, Datum *Values, const char *Nulls, prm->value = Values[k]; prm->isnull = (Nulls && Nulls[k] == 'n'); + prm->pflags = 0; prm->ptype = plan->argtypes[k]; } } |