aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/plan/setrefs.c
diff options
context:
space:
mode:
authorVadim B. Mikheev <vadim4o@yahoo.com>1998-02-13 03:37:04 +0000
committerVadim B. Mikheev <vadim4o@yahoo.com>1998-02-13 03:37:04 +0000
commit4a6e3a6a9fa18e01d6ae65015e55a42f36030d0d (patch)
tree6ec2fc20051c9097ff94f4778d6cd660b6c66879 /src/backend/optimizer/plan/setrefs.c
parenta3f1c3673fb56752ebb1c6d9bab0706e7f8ae7ac (diff)
downloadpostgresql-4a6e3a6a9fa18e01d6ae65015e55a42f36030d0d.tar.gz
postgresql-4a6e3a6a9fa18e01d6ae65015e55a42f36030d0d.zip
Old planner() becomes union_planner(); new planner() makes initialization
of some global variables to support subselects and calls union_planner(). Calls to SS_replace_correlation_vars() and SS_process_sublinks() in query_planner() before planning. Get rid of #ifdef INDEXSCAN_PATCH in createplan.c.
Diffstat (limited to 'src/backend/optimizer/plan/setrefs.c')
-rw-r--r--src/backend/optimizer/plan/setrefs.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c
index 16fd96aae1b..fc51657b8d0 100644
--- a/src/backend/optimizer/plan/setrefs.c
+++ b/src/backend/optimizer/plan/setrefs.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.17 1998/02/10 04:01:13 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.18 1998/02/13 03:37:02 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -405,7 +405,21 @@ replace_clause_joinvar_refs(Expr *clause,
leftvar,
rightvar));
}
+ else if (is_subplan(clause))
+ {
+ ((Expr*) clause)->args =
+ replace_subclause_joinvar_refs(((Expr*) clause)->args,
+ outer_tlist,
+ inner_tlist);
+ ((SubPlan*) ((Expr*) clause)->oper)->sublink->oper =
+ replace_subclause_joinvar_refs(((SubPlan*) ((Expr*) clause)->oper)->sublink->oper,
+ outer_tlist,
+ inner_tlist);
+ return ((List*) clause);
+ }
/* shouldn't reach here */
+ elog (ERROR, "replace_clause_joinvar_refs: unsupported clause %d",
+ nodeTag (clause));
return NULL;
}