diff options
author | Bruce Momjian <bruce@momjian.us> | 1998-01-20 22:12:17 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 1998-01-20 22:12:17 +0000 |
commit | 7f31669beac8cacb828acbdbaf29925a6f0d6677 (patch) | |
tree | 475dde3edc07221f1fbfec88eb1a3e07470103f9 /src/backend/parser/parse_node.c | |
parent | 412a5e653949b930d03056da73afca3c505a80f5 (diff) | |
download | postgresql-7f31669beac8cacb828acbdbaf29925a6f0d6677.tar.gz postgresql-7f31669beac8cacb828acbdbaf29925a6f0d6677.zip |
Add Var.varlevelup to code. More parser cleanup.
Diffstat (limited to 'src/backend/parser/parse_node.c')
-rw-r--r-- | src/backend/parser/parse_node.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/backend/parser/parse_node.c b/src/backend/parser/parse_node.c index ffcafcedb11..02e51087526 100644 --- a/src/backend/parser/parse_node.c +++ b/src/backend/parser/parse_node.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.9 1998/01/20 05:04:21 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.10 1998/01/20 22:11:57 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -239,27 +239,24 @@ make_op(char *opname, Node *ltree, Node *rtree) } Var * -make_var(ParseState *pstate, char *refname, char *attrname, Oid *type_id) +make_var(ParseState *pstate, Oid relid, char *refname, + char *attrname, Oid *type_id) { Var *varnode; int vnum, attid; Oid vartypeid; - RangeTblEntry *rte; + int sublevels_up; - rte = refnameRangeTableEntry(pstate->p_rtable, refname); - if (rte == NULL) - rte = addRangeTableEntry(pstate, refname, refname, FALSE, FALSE); + vnum = refnameRangeTablePosn(pstate, refname, &sublevels_up); - vnum = refnameRangeTablePosn(pstate->p_rtable, refname); - - attid = get_attnum(rte->relid, attrname); + attid = get_attnum(relid, attrname); if (attid == InvalidAttrNumber) elog(ERROR, "Relation %s does not have attribute %s", - rte->relname, attrname); - vartypeid = get_atttype(rte->relid, attid); + refname, attrname); + vartypeid = get_atttype(relid, attid); - varnode = makeVar(vnum, attid, vartypeid, vnum, attid); + varnode = makeVar(vnum, attid, vartypeid, sublevels_up, vnum, attid); *type_id = vartypeid; return varnode; |