diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-08-08 15:43:12 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-08-08 15:43:12 +0000 |
commit | 62e29fe2e748933bfd8ab1429518ee7b5a8974a7 (patch) | |
tree | d9ca32ad908a811854e890c059b46b8ff13fa038 /src/backend/parser/parse_expr.c | |
parent | 8fc32374beb542380857e2fc0d67df91ad123b1d (diff) | |
download | postgresql-62e29fe2e748933bfd8ab1429518ee7b5a8974a7.tar.gz postgresql-62e29fe2e748933bfd8ab1429518ee7b5a8974a7.zip |
Remove 'func_tlist' from Func expression nodes, likewise 'param_tlist'
from Param nodes, per discussion a few days ago on pghackers. Add new
expression node type FieldSelect that implements the functionality where
it's actually needed. Clean up some other unused fields in Func nodes
as well.
NOTE: initdb forced due to change in stored expression trees for rules.
Diffstat (limited to 'src/backend/parser/parse_expr.c')
-rw-r--r-- | src/backend/parser/parse_expr.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c index 8c3e64d6d86..7976f5e7795 100644 --- a/src/backend/parser/parse_expr.c +++ b/src/backend/parser/parse_expr.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.81 2000/06/15 03:32:20 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.82 2000/08/08 15:42:03 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -133,7 +133,6 @@ transformExpr(ParseState *pstate, Node *expr, int precedence) param->paramid = (AttrNumber) paramno; param->paramname = "<unnamed>"; param->paramtype = toid; - param->param_tlist = NIL; result = transformIndirection(pstate, (Node *) param, pno->indirection); /* cope with typecast applied to param */ @@ -381,9 +380,7 @@ transformExpr(ParseState *pstate, Node *expr, int precedence) newop = makeOper(oprid(optup), /* opno */ InvalidOid, /* opid */ - opform->oprresult, - 0, - NULL); + opform->oprresult); sublink->oper = lappend(sublink->oper, newop); } if (left_list != NIL) @@ -579,6 +576,7 @@ transformExpr(ParseState *pstate, Node *expr, int precedence) case T_Param: case T_Aggref: case T_ArrayRef: + case T_FieldSelect: case T_RelabelType: { result = (Node *) expr; @@ -690,6 +688,9 @@ exprType(Node *expr) case T_Param: type = ((Param *) expr)->paramtype; break; + case T_FieldSelect: + type = ((FieldSelect *) expr)->resulttype; + break; case T_RelabelType: type = ((RelabelType *) expr)->resulttype; break; @@ -773,6 +774,9 @@ exprTypmod(Node *expr) return coercedTypmod; } break; + case T_FieldSelect: + return ((FieldSelect *) expr)->resulttypmod; + break; case T_RelabelType: return ((RelabelType *) expr)->resulttypmod; break; |