summaryrefslogtreecommitdiff
path: root/src/backend/rewrite/rewriteManip.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/rewrite/rewriteManip.c')
-rw-r--r--src/backend/rewrite/rewriteManip.c70
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));