1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-14 18:42:34 +03:00

Add Var.varlevelup to code. More parser cleanup.

This commit is contained in:
Bruce Momjian
1998-01-20 22:12:17 +00:00
parent 412a5e6539
commit 7f31669bea
25 changed files with 158 additions and 104 deletions

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.7 1998/01/20 05:04:16 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.8 1998/01/20 22:11:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -174,13 +174,12 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
{
RangeTblEntry *rte;
Ident *ident = (Ident *) first_arg;
/*
* first arg is a relation. This could be a projection.
*/
refname = ident->name;
rte = refnameRangeTableEntry(pstate->p_rtable, refname);
rte = refnameRangeTableEntry(pstate, refname);
if (rte == NULL)
rte = addRangeTableEntry(pstate, refname, refname, FALSE, FALSE);
@ -196,6 +195,7 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
Oid dummyTypeId;
return ((Node *) make_var(pstate,
relid,
refname,
funcname,
&dummyTypeId));
@ -288,19 +288,18 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
if (nodeTag(pair) == T_Ident && ((Ident *) pair)->isRel)
{
/*
* a relation
*/
refname = ((Ident *) pair)->name;
rte = refnameRangeTableEntry(pstate->p_rtable, refname);
rte = refnameRangeTableEntry(pstate, refname);
if (rte == NULL)
rte = addRangeTableEntry(pstate, refname, refname,
FALSE, FALSE);
relname = rte->relname;
vnum = refnameRangeTablePosn(pstate->p_rtable, rte->refname);
vnum = refnameRangeTablePosn(pstate, rte->refname, NULL);
/*
* for func(relname), the param to the function is the tuple
@ -312,7 +311,7 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
toid = typeTypeId(typenameType(relname));
/* replace it in the arg list */
lfirst(fargs) =
makeVar(vnum, 0, toid, vnum, 0);
makeVar(vnum, 0, toid, 0, vnum, 0);
}
else if (!attisset)
{ /* set functions don't have parameters */
@ -1074,7 +1073,7 @@ setup_tlist(char *attname, Oid relid)
0,
(Oid) 0,
0);
varnode = makeVar(-1, attno, typeid, -1, attno);
varnode = makeVar(-1, attno, typeid, 0, -1, attno);
tle = makeNode(TargetEntry);
tle->resdom = resnode;
@ -1101,7 +1100,7 @@ setup_base_tlist(Oid typeid)
0,
(Oid) 0,
0);
varnode = makeVar(-1, 1, typeid, -1, 1);
varnode = makeVar(-1, 1, typeid, 0, -1, 1);
tle = makeNode(TargetEntry);
tle->resdom = resnode;
tle->expr = (Node *) varnode;