aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2005-04-14 21:44:22 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2005-04-14 21:44:22 +0000
commit59974b0e0ae8cd48c20642d571a69d5e3b7b29d0 (patch)
treef4dd02ad13e50dc1d2c189309bef6912394c6d1b /src
parentc61d1c95ea83d78212537780e0d14572d413b922 (diff)
downloadpostgresql-59974b0e0ae8cd48c20642d571a69d5e3b7b29d0.tar.gz
postgresql-59974b0e0ae8cd48c20642d571a69d5e3b7b29d0.zip
Don't try to constant-fold functions returning RECORD, since the optimizer
isn't presently set up to pass them an expected tuple descriptor. Bug has been there since 7.3 but was just recently reported by Thomas Hallgren.
Diffstat (limited to 'src')
-rw-r--r--src/backend/optimizer/util/clauses.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c
index a43256cc1f2..2c1b43266f8 100644
--- a/src/backend/optimizer/util/clauses.c
+++ b/src/backend/optimizer/util/clauses.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/util/clauses.c,v 1.186.4.3 2005/04/10 20:57:45 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/util/clauses.c,v 1.186.4.4 2005/04/14 21:44:22 tgl Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -2044,6 +2044,13 @@ evaluate_function(Oid funcid, Oid result_type, List *args,
return NULL;
/*
+ * Can't simplify if it returns RECORD, since it will be needing an
+ * expected tupdesc which we can't supply here.
+ */
+ if (funcform->prorettype == RECORDOID)
+ return NULL;
+
+ /*
* Check for constant inputs and especially constant-NULL inputs.
*/
foreach(arg, args)