8000 Add Var.varlevelup to code. More parser cleanup. · postgrespro/postgres_cluster@7f31669 · GitHub
[go: up one dir, main page]

Skip to content

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

< 10000 /div>
Appearance settings

Commit 7f31669

Browse files
committed
Add Var.varlevelup to code. More parser cleanup.
1 parent 412a5e6 commit 7f31669

25 files changed

+158
-104
lines changed

src/backend/commands/recipe.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/commands/Attic/recipe.c,v 1.17 1998/01/05 16:38:57 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/commands/Attic/recipe.c,v 1.18 1998/01/20 22:10:53 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -494,6 +494,7 @@ tg_replaceNumberedParam(Node *expression,
494494
newVar = makeVar(rt_ind,
495495
0, /* the whole tuple */
496496
TypeGet(teeRelName, &defined),
497+
0,
497498
rt_ind,
498499
0);
499500
return (Node *) newVar;
@@ -503,6 +504,7 @@ tg_replaceNumberedParam(Node *expression,
503504
1, /* just the first field,
504505
* which is 'result' */
505506
TypeGet(teeRelName, &defined),
507+
0,
506508
rt_ind,
507509
0);
508510
return (Node *) newVar;

src/backend/nodes/copyfuncs.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.34 1998/01/20 05:03:40 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.35 1998/01/20 22:10:58 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -671,6 +671,7 @@ _copyVar(Var *from)
671671
newnode->varno = from->varno;
672672
newnode->varattno = from->varattno;
673673
newnode->vartype = from->vartype;
674+
newnode->varlevelsup = from->varlevelsup;
674675

675676
newnode->varnoold = from->varnoold;
676677
newnode->varoattno = from->varoattno;

src/backend/nodes/equalfuncs.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.12 1998/01/07 21:03:26 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.13 1998/01/20 22:11:02 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -129,6 +129,8 @@ _equalVar(Var *a, Var *b)
129129
return (false);
130130
if (a->vartype != b->vartype)
131131
return (false);
132+
if (a->varlevelsup != b->varlevelsup)
133+
return (false);
132134
if (a->varnoold != b->varnoold)
133135
return (false);
134136
if (a->varoattno != b->varoattno)

src/backend/nodes/makefuncs.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/nodes/makefuncs.c,v 1.4 1997/09/08 02:23:39 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/nodes/makefuncs.c,v 1.5 1998/01/20 22:11:05 momjian Exp $
1111
*
1212
* NOTES
1313
* Creator functions in POSTGRES 4.2 are generated automatically. Most of
@@ -53,6 +53,7 @@ Var *
5353
makeVar(Index varno,
5454
AttrNumber varattno,
5555
Oid vartype,
56+
Index varlevelsup,
5657
Index varnoold,
5758
AttrNumber varoattno)
5859
{
@@ -61,6 +62,7 @@ makeVar(Index varno,
6162
var->varno = varno;
6263
var->varattno = varattno;
6364
var->vartype = vartype;
65+
var->varlevelsup = varlevelsup;
6466
var->varnoold = varnoold;
6567
var->varoattno = varoattno;
6668

src/backend/nodes/outfuncs.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.25 1998/01/20 05:03:49 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.26 1998/01/20 22:11:12 momjian Exp $
1111
*
1212
* NOTES
1313
* Every (plan) node in POSTGRES has an associated "out" routine which
@@ -698,6 +698,8 @@ _outVar(StringInfo str, Var *node)
698698
appendStringInfo(str, buf);
699699
sprintf(buf, " :vartype %u ", node->vartype);
700700
appendStringInfo(str, buf);
701+
sprintf(buf, " :varlevelsup %u ", node->varlevelsup);
702+
appendStringInfo(str, buf);
701703
sprintf(buf, " :varnoold %d ", node->varnoold);
702704
appendStringInfo(str, buf);
703705
sprintf(buf, " :varoattno %d ", node->varoattno);

src/backend/nodes/readfuncs.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.21 1998/01/20 05:03:57 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.22 1998/01/20 22:11:15 momjian Exp $
1111
*
1212
* NOTES
1313
* Most of the read functions for plan nodes are tested. (In fact, they
@@ -814,6 +814,10 @@ _readVar()
814814
token = lsptok(NULL, &length); /* get vartype */
815815
local_node->vartype = (Oid) atol(token);
816816

817+
token = lsptok(NULL, &length); /* eat :varlevelsup */
818+
token = lsptok(NULL, &length); /* get varlevelsup */
819+
local_node->varlevelsup = (Oid) atol(token);
820+
817821
token = lsptok(NULL, &length); /* eat :varnoold */
818822
token = lsptok(NULL, &length); /* get varnoold */
819823
local_node->varnoold = (Oid) atol(token);

src/backend/optimizer/plan/createplan.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.23 1998/01/15 18:59:37 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.24 1998/01/20 22:11:25 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313 */
@@ -701,6 +701,7 @@ fix_indxqual_references(Node *clause, Path *index_path)
701701
makeVar((Index) lfirsti(index_path->parent->relids),
702702
1, /* func indices have one key */
703703
((Func *) ((Expr *) clause)->oper)->functype,
704+
0,
704705
(Index) lfirsti(index_path->parent->relids),
705706
0);
706707

src/backend/optimizer/plan/initsplan.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/initsplan.c,v 1.8 1997/09/08 21:45:19 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/initsplan.c,v 1.9 1998/01/20 22:11:27 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -116,7 +116,7 @@ add_missing_vars_to_base_rels(Query *root, List *tlist)
116116
!rel_member(relids, root->base_relation_list_))
117117
{
118118

119-
var = makeVar(varno, -2, 26, varno, -2);
119+
var = makeVar(varno, -2, 26, 0, varno, -2);
120120
/* add it to base_relation_list_ */
121121
result = get_base_rel(root, varno);
122122
add_tl_element(result, var);

src/backend/optimizer/plan/planmain.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planmain.c,v 1.16 1998/01/15 18:59:44 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planmain.c,v 1.17 1998/01/20 22:11:29 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -464,7 +464,7 @@ make_groupPlan(List **tlist,
464464
else
465465
te->expr = (Node *) makeVar(1, resdom->resno,
466466
resdom->restype,
467-
-1, resdom->resno);
467+
0, -1, resdom->resno);
468468
}
469469

470470
sortplan = make_sort(sort_tlist,

src/backend/optimizer/plan/setrefs.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.15 1998/01/15 18:59:50 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.16 1998/01/20 22:11:32 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -440,6 +440,7 @@ replace_joinvar_refs(Var *var, List *outer_tlist, List *inner_tlist)
440440
return (makeVar(OUTER,
441441
outer_resdom->resno,
442442
var->vartype,
443+
0,
443444
var->varnoold,
444445
var->varoattno));
445446
}
@@ -453,6 +454,7 @@ replace_joinvar_refs(Var *var, List *outer_tlist, List *inner_tlist)
453454
return (makeVar(INNER,
454455
inner_resdom->resno,
455456
var->vartype,
457+
0,
456458
var->varnoold,
457459
var->varoattno));
458460
}
@@ -497,6 +499,7 @@ tlist_temp_references(Oid tempid,
497499
(Node *) makeVar(tempid,
498500
xtl->resdom->resno,
499501
xtl->resdom->restype,
502+
0,
500503
tempid,
501504
oattno));
502505

src/backend/optimizer/prep/preptlist.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/prep/preptlist.c,v 1.7 1998/01/16 23:20:09 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/prep/preptlist.c,v 1.8 1998/01/20 22:11:34 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -114,7 +114,7 @@ preprocess_targetlist(List *tlist,
114114
0,
115115
1);
116116

117-
var = makeVar(result_relation, -1, 27, result_relation, -1);
117+
var = makeVar(result_relation, -1, 27, 0, result_relation, -1);
118118

119119
ctid = makeNode(TargetEntry);
120120
ctid->resdom = resdom;
@@ -322,7 +322,7 @@ new_relation_targetlist(Oid relid, Index rt_index, NodeTag node_type)
322322
TargetEntry *temp_list = NULL;
323323

324324
temp_var =
325-
makeVar(rt_index, attno, atttype, rt_index, attno);
325+
makeVar(rt_index, attno, atttype, 0, rt_index, attno);
326326

327327
temp_list = MakeTLE(makeResdom(attno,
328328
atttype,

src/backend/optimizer/util/clauses.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.13 1997/12/22 05:42:14 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.14 1998/01/20 22:11:39 momjian Exp $
1111
*
1212
* HISTORY
1313
* AUTHOR DATE MAJOR EVENT
@@ -377,7 +377,8 @@ clause_relids_vars(Node *clause, List **relids, List **vars)
377377
Var *in_list = (Var *) lfirst(vi);
378378

379379
if (in_list->varno == var->varno &&
380-
in_list->varattno == var->varattno)
380+
in_list->varattno == var->varattno &&
381+
in_list->varlevelsup == var->varlevelsup)
381382
break;
382383
}
383384
if (vi == NIL)

src/backend/optimizer/util/tlist.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/tlist.c,v 1.8 1997/11/25 22:00:16 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/tlist.c,v 1.9 1998/01/20 22:11:41 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -108,6 +108,7 @@ add_tl_element(Rel *rel, Var *var)
108108
Var *newvar = makeVar(var->varno,
109109
var->varattno,
110110
var->vartype,
111+
var->varlevelsup,
111112
var->varno,
112113
var->varoattno);
113114

@@ -287,7 +288,8 @@ match_varid(Var *test_var, List *tlist)
287288
* changed to INNER/OUTER.
288289
*/
289290
if (tlvar->varnoold == test_var->varnoold &&
290-
tlvar->varoattno == test_var->varoattno)
291+
tlvar->varoattno == test_var->varoattno &&
292+
tlvar->varlevelsup == test_var->varlevelsup)
291293
{
292294

293295
if (tlvar->vartype == type_var)

src/backend/optimizer/util/var.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/var.c,v 1.7 1997/12/22 05:42:16 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/var.c,v 1.8 1998/01/20 22:11:43 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -209,6 +209,7 @@ var_equal(Var *var1, Var *var2)
209209
if (IsA(var1, Var) &&IsA(var2, Var) &&
210210
(((Var *) var1)->varno == ((Var *) var2)->varno) &&
211211
(((Var *) var1)->vartype == ((Var *) var2)->vartype) &&
212+
(((Var *) var1)->varlevelsup == ((Var *) var2)->varlevelsup) &&
212213
(((Var *) var1)->varattno == ((Var *) var2)->varattno))
213214
{
214215

src/backend/parser/README

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ parse_clause.c handle clauses like WHERE, ORDER BY, GROUP BY, ...
1212
parse_expr.c handle expressions like col, col + 3, x = 3 or x = 4
1313
parse_oper.c handle operations in expressions
1414
parse_agg.c handle aggregates, like SUM(col1), AVG(col2), ...
15-
parse_func.c handle functions like date_part(col3), trim(col4), ...
15+
parse_func.c handle functions, table.column and column identifiers
1616

1717
parse_node.c create nodes for various structures
1818
parse_target.c handle the result list of the query

src/backend/parser/analyze.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.67 1998/01/20 05:04:05 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.68 1998/01/20 22:11:51 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -219,7 +219,7 @@ transformDeleteStmt(ParseState *pstate, DeleteStmt *stmt)
219219
qry->qual = transformWhereClause(pstate, stmt->whereClause);
220220

221221
qry->rtable = pstate->p_rtable;
222-
qry->resultRelation = refnameRangeTablePosn(pstate->p_rtable, stmt->relname);
222+
qry->resultRelation = refnameRangeTablePosn(pstate, stmt->relname, NULL);
223223

224224
qry->hasAggs = pstate->p_hasAggs;
225225
if (pstate->p_hasAggs)
@@ -320,7 +320,7 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt)
320320

321321
/* now the range table will not change */
322322
qry->rtable = pstate->p_rtable;
323-
qry->resultRelation = refnameRangeTablePosn(pstate->p_rtable, stmt->relname);
323+
qry->resultRelation = refnameRangeTablePosn(pstate, stmt->relname, NULL);
324324

325325
qry->groupClause = transformGroupClause(pstate,
326326
stmt->groupClause,
@@ -816,7 +816,7 @@ transformUpdateStmt(ParseState *pstate, UpdateStmt *stmt)
816816

817817
qry->rtable = pstate->p_rtable;
818818

819-
qry->resultRelation = refnameRangeTablePosn(pstate->p_rtable, stmt->relname);
819+
qry->resultRelation = refnameRangeTablePosn(pstate, stmt->relname, NULL);
820820

821821
qry->hasAggs = pstate->p_hasAggs;
822822
if (pstate->p_hasAggs)

src/backend/parser/parse_clause.c

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.10 1998/01/20 05:04:12 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.11 1998/01/20 22:11:53 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -39,16 +39,15 @@ void
3939
makeRangeTable(ParseState *pstate, char *relname, List *frmList)
4040
{
4141
RangeTblEntry *rte;
42-
42+
4343
parseFromClause(pstate, frmList);
4444

4545
if (relname == NULL)
4646
return;
4747

48-
if (refnameRangeTablePosn(pstate->p_rtable, relname) < 1)
49-
rte = addRangeTableEntry(pstate, relname, relname, FALSE, FALSE);
50-
else
51-
rte = refnameRangeTableEntry(pstate->p_rtable, relname);
48+
Assert(pstate->p_rtable == NULL);
49+
50+
rte = addRangeTableEntry(pstate, relname, relname, FALSE, FALSE);
5251

5352
pstate->p_target_rangetblentry = rte;
5453
Assert(pstate->p_target_relation == NULL);
@@ -137,8 +136,7 @@ find_targetlist_entry(ParseState *pstate, SortGroupBy *sortgroupby, List *tlist)
137136
TargetEntry *target_result = NULL;
138137

139138
if (sortgroupby->range)
140-
real_rtable_pos = refnameRangeTablePosn(pstate->p_rtable,
141-
sortgroupby->range);
139+
real_rtable_pos = refnameRangeTablePosn(pstate, sortgroupby->range, NULL);
142140

143141
foreach(i, tlist)
144142
{

0 commit comments

Comments
 (0)
0