|
6 | 6 | *
|
7 | 7 | *
|
8 | 8 | * IDENTIFICATION
|
9 |
| - * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.1.1.1 1996/07/09 06:21:51 scrappy Exp $ |
| 9 | + * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.2 1996/11/24 05:58:57 bryanh Exp $ |
10 | 10 | *
|
11 | 11 | *-------------------------------------------------------------------------
|
12 | 12 | */
|
@@ -57,50 +57,47 @@ gatherRewriteMeta(Query *parsetree,
|
57 | 57 | info->rt_index = rt_index;
|
58 | 58 | info->event = event;
|
59 | 59 | info->instead_flag = *instead_flag;
|
60 |
| -/* info->rule_action = rule_action; this needs to be a copy here, I think! - jolly*/ |
61 | 60 | info->rule_action = (Query*)copyObject(rule_action);
|
62 | 61 | info->rule_qual = (Node*)copyObject(rule_qual);
|
63 |
| - info->nothing = FALSE; |
64 |
| - info->action = info->rule_action->commandType; |
65 | 62 | if (info->rule_action == NULL) info->nothing = TRUE;
|
66 |
| - if (info->nothing) |
67 |
| - return info; |
68 |
| - |
69 |
| - info->current_varno = rt_index; |
70 |
| - info->rt = parsetree->rtable; |
71 |
| - rt_length = length(info->rt); |
72 |
| - info->rt = append(info->rt, info->rule_action->rtable); |
73 |
| - |
74 |
| - |
75 |
| - info->new_varno = PRS2_NEW_VARNO + rt_length; |
76 |
| - OffsetVarNodes(info->rule_action->qual, rt_length); |
77 |
| - OffsetVarNodes((Node*)info->rule_action->targetList, rt_length); |
78 |
| - OffsetVarNodes(info->rule_qual, rt_length); |
79 |
| - ChangeVarNodes((Node*)info->rule_action->qual, |
80 |
| - PRS2_CURRENT_VARNO+rt_length, rt_index); |
81 |
| - ChangeVarNodes((Node*)info->rule_action->targetList, |
82 |
| - PRS2_CURRENT_VARNO+rt_length, rt_index); |
83 |
| - ChangeVarNodes(info->rule_qual, PRS2_CURRENT_VARNO+rt_length, rt_index); |
84 |
| - |
85 |
| - /* |
86 |
| - * bug here about replace CURRENT -- sort of |
87 |
| - * replace current is deprecated now so this code shouldn't really |
88 |
| - * need to be so clutzy but..... |
89 |
| - */ |
90 |
| - if (info->action != CMD_SELECT) { /* i.e update XXXXX */ |
91 |
| - int new_result_reln = 0; |
92 |
| - result_reln = info->rule_action->resultRelation; |
93 |
| - switch (result_reln) { |
94 |
| - case PRS2_CURRENT_VARNO: new_result_reln = rt_index; |
95 |
| - break; |
96 |
| - case PRS2_NEW_VARNO: /* XXX */ |
97 |
| - default: |
98 |
| - new_result_reln = result_reln + rt_length; |
99 |
| - break; |
100 |
| - } |
101 |
| - info->rule_action->resultRelation = new_result_reln; |
| 63 | + else { |
| 64 | + info->nothing = FALSE; |
| 65 | + info->action = info->rule_action->commandType; |
| 66 | + info->current_varno = rt_index; |
| 67 | + info->rt = parsetree->rtable; |
| 68 | + rt_length = length(info->rt); |
| 69 | + info->rt = append(info->rt, info->rule_action->rtable); |
| 70 | + |
| 71 | + info->new_varno = PRS2_NEW_VARNO + rt_length; |
| 72 | + OffsetVarNodes(info->rule_action->qual, rt_length); |
| 73 | + OffsetVarNodes((Node*)info->rule_action->targetList, rt_length); |
| 74 | + OffsetVarNodes(info->rule_qual, rt_length); |
| 75 | + ChangeVarNodes((Node*)info->rule_action->qual, |
| 76 | + PRS2_CURRENT_VARNO+rt_length, rt_index); |
| 77 | + ChangeVarNodes((Node*)info->rule_action->targetList, |
| 78 | + PRS2_CURRENT_VARNO+rt_length, rt_index); |
| 79 | + ChangeVarNodes(info->rule_qual, |
| 80 | + PRS2_CURRENT_VARNO+rt_length, rt_index); |
| 81 | + |
| 82 | + /* |
| 83 | + * bug here about replace CURRENT -- sort of |
| 84 | + * replace current is deprecated now so this code shouldn't really |
| 85 | + * need to be so clutzy but..... |
| 86 | + */ |
| 87 | + if (info->action != CMD_SELECT) { /* i.e update XXXXX */ |
| 88 | + int new_result_reln = 0; |
| 89 | + result_reln = info->rule_action->resultRelation; |
| 90 | + switch (result_reln) { |
| 91 | + case PRS2_CURRENT_VARNO: new_result_reln = rt_index; |
| 92 | + break; |
| 93 | + case PRS2_NEW_VARNO: /* XXX */ |
| 94 | + default: |
| 95 | + new_result_reln = result_reln + rt_length; |
| 96 | + break; |
| 97 | + } |
| 98 | + info->rule_action->resultRelation = new_result_reln; |
| 99 | + } |
102 | 100 | }
|
103 |
| - |
104 | 101 | return info;
|
105 | 102 | }
|
106 | 103 |
|
|
0 commit comments