|
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 |
| -returninfo; |
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 |
| -intnew_result_reln=0; |
92 |
| -result_reln=info->rule_action->resultRelation; |
93 |
| -switch (result_reln) { |
94 |
| -casePRS2_CURRENT_VARNO:new_result_reln=rt_index; |
95 |
| -break; |
96 |
| -casePRS2_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 | +intnew_result_reln=0; |
| 89 | +result_reln=info->rule_action->resultRelation; |
| 90 | +switch (result_reln) { |
| 91 | +casePRS2_CURRENT_VARNO:new_result_reln=rt_index; |
| 92 | +break; |
| 93 | +casePRS2_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 | returninfo;
|
105 | 102 | }
|
106 | 103 |
|
|