diff options
author | Vadim B. Mikheev <vadim4o@yahoo.com> | 1998-02-13 03:37:04 +0000 |
---|---|---|
committer | Vadim B. Mikheev <vadim4o@yahoo.com> | 1998-02-13 03:37:04 +0000 |
commit | 4a6e3a6a9fa18e01d6ae65015e55a42f36030d0d (patch) | |
tree | 6ec2fc20051c9097ff94f4778d6cd660b6c66879 /src/backend/optimizer/plan/setrefs.c | |
parent | a3f1c3673fb56752ebb1c6d9bab0706e7f8ae7ac (diff) | |
download | postgresql-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.c | 16 |
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; } |