aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/optimizer')
-rw-r--r--src/backend/optimizer/plan/subselect.c9
-rw-r--r--src/backend/optimizer/prep/prepunion.c5
-rw-r--r--src/backend/optimizer/util/clauses.c14
3 files changed, 16 insertions, 12 deletions
diff --git a/src/backend/optimizer/plan/subselect.c b/src/backend/optimizer/plan/subselect.c
index 15d16d00221..4be69d77cfd 100644
--- a/src/backend/optimizer/plan/subselect.c
+++ b/src/backend/optimizer/plan/subselect.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/subselect.c,v 1.74 2003/04/08 23:20:01 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/subselect.c,v 1.75 2003/04/29 22:13:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -495,10 +495,13 @@ convert_sublink_opers(List *lefthand, List *operOids,
* Make the expression node.
*
* Note: we use make_op_expr in case runtime type conversion
- * function calls must be inserted for this operator!
+ * function calls must be inserted for this operator! (But we
+ * are not expecting to have to resolve unknown Params, so
+ * it's okay to pass a null pstate.)
*/
result = lappend(result,
- make_op_expr(tup,
+ make_op_expr(NULL,
+ tup,
leftop,
rightop,
exprType(leftop),
diff --git a/src/backend/optimizer/prep/prepunion.c b/src/backend/optimizer/prep/prepunion.c
index fb7bf9e7070..d2b91c2ec6d 100644
--- a/src/backend/optimizer/prep/prepunion.c
+++ b/src/backend/optimizer/prep/prepunion.c
@@ -14,7 +14,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/prep/prepunion.c,v 1.93 2003/04/24 23:43:09 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/prep/prepunion.c,v 1.94 2003/04/29 22:13:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -418,7 +418,8 @@ generate_setop_tlist(List *colTypes, int flag,
}
else
{
- expr = coerce_to_common_type(expr,
+ expr = coerce_to_common_type(NULL, /* no UNKNOWNs here */
+ expr,
colType,
"UNION/INTERSECT/EXCEPT");
colTypmod = -1;
diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c
index 778fc3a2bb9..c0ffd939cbe 100644
--- a/src/backend/optimizer/util/clauses.c
+++ b/src/backend/optimizer/util/clauses.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.135 2003/04/27 20:09:44 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.136 2003/04/29 22:13:09 tgl Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -1747,17 +1747,17 @@ inline_function(Oid funcid, Oid result_type, List *args,
/*
* We just do parsing and parse analysis, not rewriting, because
- * rewriting will not affect SELECT-only queries, which is all that
- * we care about. Also, we can punt as soon as we detect more than
+ * rewriting will not affect table-free-SELECT-only queries, which is all
+ * that we care about. Also, we can punt as soon as we detect more than
* one command in the function body.
*/
- raw_parsetree_list = pg_parse_query(src,
- funcform->proargtypes,
- funcform->pronargs);
+ raw_parsetree_list = pg_parse_query(src);
if (length(raw_parsetree_list) != 1)
goto fail;
- querytree_list = parse_analyze(lfirst(raw_parsetree_list), NULL);
+ querytree_list = parse_analyze(lfirst(raw_parsetree_list),
+ funcform->proargtypes,
+ funcform->pronargs);
if (length(querytree_list) != 1)
goto fail;