aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/parse_node.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-01-20 22:12:17 +0000
committerBruce Momjian <bruce@momjian.us>1998-01-20 22:12:17 +0000
commit7f31669beac8cacb828acbdbaf29925a6f0d6677 (patch)
tree475dde3edc07221f1fbfec88eb1a3e07470103f9 /src/backend/parser/parse_node.c
parent412a5e653949b930d03056da73afca3c505a80f5 (diff)
downloadpostgresql-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.c21
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;