diff options
Diffstat (limited to 'src/backend/optimizer/util/clauses.c')
| -rw-r--r-- | src/backend/optimizer/util/clauses.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c index d3a813fb86..adda68b636 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; |
