diff options
Diffstat (limited to 'src/backend/rewrite/rewriteManip.c')
-rw-r--r-- | src/backend/rewrite/rewriteManip.c | 70 |
1 files changed, 69 insertions, 1 deletions
diff --git a/src/backend/rewrite/rewriteManip.c b/src/backend/rewrite/rewriteManip.c index 64da8479d15..9d6d5e7d64d 100644 --- a/src/backend/rewrite/rewriteManip.c +++ b/src/backend/rewrite/rewriteManip.c @@ -6,7 +6,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteManip.c,v 1.22 1998/10/21 16:21:26 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteManip.c,v 1.23 1998/12/14 00:02:17 thomas Exp $ * *------------------------------------------------------------------------- */ @@ -191,6 +191,38 @@ OffsetVarNodes(Node *node, int offset, int sublevels_up) } break; + case T_CaseExpr: + { + CaseExpr *exp = (CaseExpr *)node; + + OffsetVarNodes( + (Node *)(exp->args), + offset, + sublevels_up); + + OffsetVarNodes( + (Node *)(exp->defresult), + offset, + sublevels_up); + } + break; + + case T_CaseWhen: + { + CaseWhen *exp = (CaseWhen *)node; + + OffsetVarNodes( + (Node *)(exp->expr), + offset, + sublevels_up); + + OffsetVarNodes( + (Node *)(exp->result), + offset, + sublevels_up); + } + break; + default: elog(NOTICE, "unknown node tag %d in OffsetVarNodes()", nodeTag(node)); elog(NOTICE, "Node is: %s", nodeToString(node)); @@ -377,6 +409,42 @@ ChangeVarNodes(Node *node, int rt_index, int new_index, int sublevels_up) } break; + case T_CaseExpr: + { + CaseExpr *exp = (CaseExpr *)node; + + ChangeVarNodes( + (Node *)(exp->args), + rt_index, + new_index, + sublevels_up); + + ChangeVarNodes( + (Node *)(exp->defresult), + rt_index, + new_index, + sublevels_up); + } + break; + + case T_CaseWhen: + { + CaseWhen *exp = (CaseWhen *)node; + + ChangeVarNodes( + (Node *)(exp->expr), + rt_index, + new_index, + sublevels_up); + + ChangeVarNodes( + (Node *)(exp->result), + rt_index, + new_index, + sublevels_up); + } + break; + default: elog(NOTICE, "unknown node tag %d in ChangeVarNodes()", nodeTag(node)); elog(NOTICE, "Node is: %s", nodeToString(node)); |