aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2006-09-06 20:40:48 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2006-09-06 20:40:48 +0000
commit5983a1aaa9137367c834e0ff84cd8d4d48b326b2 (patch)
tree3425eaf290ad8ee4d565551d45e60df514f67e55 /src/backend/executor
parent389870b256bc65f088a7f9a4ea4a88c01242c551 (diff)
downloadpostgresql-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.c3
-rw-r--r--src/backend/executor/spi.c4
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 = &paramLI->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];
}
}