diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2003-02-10 04:44:47 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2003-02-10 04:44:47 +0000 |
commit | c5ba16a83c808837995ca4520ce04f06cab531a4 (patch) | |
tree | c6d8630af640097a65ef600a35be5942c9aefbc3 /src/backend/parser/parse_expr.c | |
parent | b5956a2f2291de716415875456a4d85943d42610 (diff) | |
download | postgresql-c5ba16a83c808837995ca4520ce04f06cab531a4.tar.gz postgresql-c5ba16a83c808837995ca4520ce04f06cab531a4.zip |
Get rid of last few vestiges of parsetree dependency on grammar token
codes, per discussion from last March. parse.h should now be included
*only* by gram.y, scan.l, keywords.c, parser.c. This prevents surprising
misbehavior after seemingly-trivial grammar adjustments.
Diffstat (limited to 'src/backend/parser/parse_expr.c')
-rw-r--r-- | src/backend/parser/parse_expr.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c index e807dfe3f46..ec95870ec9e 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.143 2003/02/09 06:56:28 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.144 2003/02/10 04:44:46 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -23,7 +23,6 @@ #include "nodes/plannodes.h" #include "parser/analyze.h" #include "parser/gramparse.h" -#include "parser/parse.h" #include "parser/parse_coerce.h" #include "parser/parse_expr.h" #include "parser/parse_func.h" @@ -178,9 +177,9 @@ transformExpr(ParseState *pstate, Node *expr) { A_Expr *a = (A_Expr *) expr; - switch (a->oper) + switch (a->kind) { - case OP: + case AEXPR_OP: { /* * Special-case "foo = NULL" and "NULL = foo" @@ -219,7 +218,7 @@ transformExpr(ParseState *pstate, Node *expr) } } break; - case AND: + case AEXPR_AND: { Node *lexpr = transformExpr(pstate, a->lexpr); @@ -234,7 +233,7 @@ transformExpr(ParseState *pstate, Node *expr) rexpr)); } break; - case OR: + case AEXPR_OR: { Node *lexpr = transformExpr(pstate, a->lexpr); @@ -249,7 +248,7 @@ transformExpr(ParseState *pstate, Node *expr) rexpr)); } break; - case NOT: + case AEXPR_NOT: { Node *rexpr = transformExpr(pstate, a->rexpr); @@ -260,7 +259,7 @@ transformExpr(ParseState *pstate, Node *expr) makeList1(rexpr)); } break; - case DISTINCT: + case AEXPR_DISTINCT: { Node *lexpr = transformExpr(pstate, a->lexpr); @@ -278,18 +277,17 @@ transformExpr(ParseState *pstate, Node *expr) NodeSetTag(result, T_DistinctExpr); } break; - case OF: + case AEXPR_OF: { + /* + * Checking an expression for match to type. + * Will result in a boolean constant node. + */ List *telem; A_Const *n; Oid ltype, rtype; bool matched = FALSE; - - /* - * Checking an expression for match to type. - * Will result in a boolean constant node. - */ Node *lexpr = transformExpr(pstate, a->lexpr); @@ -530,7 +528,7 @@ transformExpr(ParseState *pstate, Node *expr) if (c->arg != NULL) { /* shorthand form was specified, so expand... */ - warg = (Node *) makeSimpleA_Expr(OP, "=", + warg = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (Node *) c->arg, warg); } |