aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/plan/setrefs.c
diff options
context:
space:
mode:
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;
}