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/optimizer/util | |
| parent | 8fc32374beb542380857e2fc0d67df91ad123b1d (diff) | |
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/optimizer/util')
| -rw-r--r-- | src/backend/optimizer/util/clauses.c | 18 | ||||
| -rw-r--r-- | src/backend/optimizer/util/tlist.c | 6 |
2 files changed, 15 insertions, 9 deletions
diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c index d3a813fb86c..adda68b636a 100644 --- a/src/backend/optimizer/util/clauses.c +++ b/src/backend/optimizer/util/clauses.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.69 2000/07/12 02:37:11 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.70 2000/08/08 15:41:53 tgl Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -910,9 +910,7 @@ CommuteClause(Expr *clause) commu = makeOper(heapTup->t_data->t_oid, commuTup->oprcode, - commuTup->oprresult, - ((Oper *) clause->oper)->opsize, - NULL); + commuTup->oprresult); /* * re-form the clause in-place! @@ -1596,6 +1594,8 @@ bool return true; } break; + case T_FieldSelect: + return walker(((FieldSelect *) node)->arg, context); case T_RelabelType: return walker(((RelabelType *) node)->arg, context); case T_CaseExpr: @@ -1824,6 +1824,16 @@ Node * return (Node *) newnode; } break; + case T_FieldSelect: + { + FieldSelect *fselect = (FieldSelect *) node; + FieldSelect *newnode; + + FLATCOPY(newnode, fselect, FieldSelect); + MUTATE(newnode->arg, fselect->arg, Node *); + return (Node *) newnode; + } + break; case T_RelabelType: { RelabelType *relabel = (RelabelType *) node; diff --git a/src/backend/optimizer/util/tlist.c b/src/backend/optimizer/util/tlist.c index d55c5177089..93b3fc6f568 100644 --- a/src/backend/optimizer/util/tlist.c +++ b/src/backend/optimizer/util/tlist.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/util/tlist.c,v 1.46 2000/06/08 22:37:16 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/util/tlist.c,v 1.47 2000/08/08 15:41:53 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -110,8 +110,6 @@ create_tl_element(Var *var, int resdomno) var->vartype, var->vartypmod, NULL, - (Index) 0, - (Oid) 0, false), (Node *) var); } @@ -199,8 +197,6 @@ add_to_flat_tlist(List *tlist, List *vars) var->vartype, var->vartypmod, NULL, - (Index) 0, - (Oid) 0, false); tlist = lappend(tlist, makeTargetEntry(r, copyObject(var))); |
