*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.400 2003/02/09 06:56:28 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.401 2003/02/10 04:44:45 tgl Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
*/
/* ordinary key words in alphabetical order */
-%token <keyword> ABORT_TRANS ABSOLUTE ACCESS ACTION ADD AFTER
+%token <keyword> ABORT_P ABSOLUTE ACCESS ACTION ADD AFTER
AGGREGATE ALL ALTER ANALYSE ANALYZE AND ANY AS ASC
ASSERTION ASSIGNMENT AT AUTHORIZATION
- BACKWARD BEFORE BEGIN_TRANS BETWEEN BIGINT BINARY BIT
+ BACKWARD BEFORE BEGIN_P BETWEEN BIGINT BINARY BIT
BOOLEAN BOTH BY
CACHE CALLED CASCADE CASE CAST CHAIN CHAR_P
DEFERRABLE DEFERRED DEFINER DELETE_P DELIMITER DELIMITERS
DESC DISTINCT DO DOMAIN_P DOUBLE DROP
- EACH ELSE ENCODING ENCRYPTED END_TRANS ESCAPE EXCEPT
+ EACH ELSE ENCODING ENCRYPTED END_P ESCAPE EXCEPT
EXCLUSIVE EXECUTE EXISTS EXPLAIN EXTERNAL EXTRACT
FALSE_P FETCH FLOAT_P FOR FORCE FOREIGN FORWARD
FREEZE FROM FULL FUNCTION
- GET GLOBAL GRANT GROUP_P
+ GLOBAL GRANT GROUP_P
HANDLER HAVING HOUR_P
%token <str> IDENT FCONST SCONST NCONST BCONST XCONST Op
%token <ival> ICONST PARAM
-/* these are not real. they are here so that they get generated as #define's*/
-%token OP
-
/* precedence: lowest to highest */
%left UNION EXCEPT
%left INTERSECT
CREATE AGGREGATE func_name definition
{
DefineStmt *n = makeNode(DefineStmt);
- n->defType = AGGREGATE;
+ n->kind = DEFINE_STMT_AGGREGATE;
n->defnames = $3;
n->definition = $4;
$$ = (Node *)n;
| CREATE OPERATOR any_operator definition
{
DefineStmt *n = makeNode(DefineStmt);
- n->defType = OPERATOR;
+ n->kind = DEFINE_STMT_OPERATOR;
n->defnames = $3;
n->definition = $4;
$$ = (Node *)n;
| CREATE TYPE_P any_name definition
{
DefineStmt *n = makeNode(DefineStmt);
- n->defType = TYPE_P;
+ n->kind = DEFINE_STMT_TYPE;
n->defnames = $3;
n->definition = $4;
$$ = (Node *)n;
n->coldeflist = $6;
$$ = (Node *)n;
}
- | CREATE CHARACTER SET opt_as any_name GET definition opt_collate
- {
- DefineStmt *n = makeNode(DefineStmt);
- n->defType = CHARACTER;
- n->defnames = $5;
- n->definition = $7;
- $$ = (Node *)n;
- }
;
definition: '(' def_list ')' { $$ = $2; }
if ($3 < 0)
{
$3 = -$3;
- $2 = (($2 == FORWARD) ? BACKWARD : FORWARD);
+ $2 = (($2 == FETCH_FORWARD) ? FETCH_BACKWARD : FETCH_FORWARD);
}
n->direction = $2;
n->howMany = $3;
if ($2 < 0)
{
n->howMany = -$2;
- n->direction = BACKWARD;
+ n->direction = FETCH_BACKWARD;
}
else
{
- n->direction = FORWARD;
+ n->direction = FETCH_FORWARD;
n->howMany = $2;
}
n->portalname = $4;
| FETCH from_in name
{
FetchStmt *n = makeNode(FetchStmt);
- n->direction = FORWARD;
+ n->direction = FETCH_FORWARD;
n->howMany = 1;
n->portalname = $3;
n->ismove = FALSE;
| FETCH name
{
FetchStmt *n = makeNode(FetchStmt);
- n->direction = FORWARD;
+ n->direction = FETCH_FORWARD;
n->howMany = 1;
n->portalname = $2;
n->ismove = FALSE;
if ($3 < 0)
{
$3 = -$3;
- $2 = (($2 == FORWARD) ? BACKWARD : FORWARD);
+ $2 = (($2 == FETCH_FORWARD) ? FETCH_BACKWARD : FETCH_FORWARD);
}
n->direction = $2;
n->howMany = $3;
if ($2 < 0)
{
n->howMany = -$2;
- n->direction = BACKWARD;
+ n->direction = FETCH_BACKWARD;
}
else
{
- n->direction = FORWARD;
+ n->direction = FETCH_FORWARD;
n->howMany = $2;
}
n->portalname = $4;
| MOVE from_in name
{
FetchStmt *n = makeNode(FetchStmt);
- n->direction = FORWARD;
+ n->direction = FETCH_FORWARD;
n->howMany = 1;
n->portalname = $3;
n->ismove = TRUE;
| MOVE name
{
FetchStmt *n = makeNode(FetchStmt);
- n->direction = FORWARD;
+ n->direction = FETCH_FORWARD;
n->howMany = 1;
n->portalname = $2;
n->ismove = TRUE;
}
;
-direction: FORWARD { $$ = FORWARD; }
- | BACKWARD { $$ = BACKWARD; }
- | RELATIVE { $$ = FORWARD; }
+direction: FORWARD { $$ = FETCH_FORWARD; }
+ | BACKWARD { $$ = FETCH_BACKWARD; }
+ | RELATIVE { $$ = FETCH_FORWARD; }
| ABSOLUTE
{
elog(NOTICE,
"FETCH / ABSOLUTE not supported, using RELATIVE");
- $$ = FORWARD;
+ $$ = FETCH_FORWARD;
}
;
REINDEX reindex_type qualified_name opt_force
{
ReindexStmt *n = makeNode(ReindexStmt);
- n->reindexType = $2;
+ n->kind = $2;
n->relation = $3;
n->name = NULL;
n->force = $4;
| REINDEX DATABASE name opt_force
{
ReindexStmt *n = makeNode(ReindexStmt);
- n->reindexType = DATABASE;
+ n->kind = REINDEX_DATABASE;
n->name = $3;
n->relation = NULL;
n->force = $4;
;
reindex_type:
- INDEX { $$ = INDEX; }
- | TABLE { $$ = TABLE; }
+ INDEX { $$ = REINDEX_INDEX; }
+ | TABLE { $$ = REINDEX_TABLE; }
;
opt_force: FORCE { $$ = TRUE; }
*****************************************************************************/
TransactionStmt:
- ABORT_TRANS opt_transaction
+ ABORT_P opt_transaction
{
TransactionStmt *n = makeNode(TransactionStmt);
- n->command = ROLLBACK;
+ n->kind = TRANS_STMT_ROLLBACK;
n->options = NIL;
$$ = (Node *)n;
}
- | BEGIN_TRANS opt_transaction
+ | BEGIN_P opt_transaction
{
TransactionStmt *n = makeNode(TransactionStmt);
- n->command = BEGIN_TRANS;
+ n->kind = TRANS_STMT_BEGIN;
n->options = NIL;
$$ = (Node *)n;
}
| START TRANSACTION transaction_mode_list_or_empty
{
TransactionStmt *n = makeNode(TransactionStmt);
- n->command = START;
+ n->kind = TRANS_STMT_START;
n->options = $3;
$$ = (Node *)n;
}
| COMMIT opt_transaction
{
TransactionStmt *n = makeNode(TransactionStmt);
- n->command = COMMIT;
+ n->kind = TRANS_STMT_COMMIT;
n->options = NIL;
$$ = (Node *)n;
}
- | END_TRANS opt_transaction
+ | END_P opt_transaction
{
TransactionStmt *n = makeNode(TransactionStmt);
- n->command = COMMIT;
+ n->kind = TRANS_STMT_COMMIT;
n->options = NIL;
$$ = (Node *)n;
}
| ROLLBACK opt_transaction
{
TransactionStmt *n = makeNode(TransactionStmt);
- n->command = ROLLBACK;
+ n->kind = TRANS_STMT_ROLLBACK;
n->options = NIL;
$$ = (Node *)n;
}
n->operName = makeList1(makeString("="));
n->subselect = $4;
/* Stick a NOT on top */
- $$ = (Node *) makeA_Expr(NOT, NIL, NULL, (Node *) n);
+ $$ = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, (Node *) n);
}
| row qual_all_Op sub_type select_with_parens
%prec Op
* also to b_expr and to the MathOp list above.
*/
| '+' a_expr %prec UMINUS
- { $$ = (Node *) makeSimpleA_Expr(OP, "+", NULL, $2); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, $2); }
| '-' a_expr %prec UMINUS
{ $$ = doNegate($2); }
| '%' a_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "%", NULL, $2); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", NULL, $2); }
| '^' a_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "^", NULL, $2); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", NULL, $2); }
| a_expr '%'
- { $$ = (Node *) makeSimpleA_Expr(OP, "%", $1, NULL); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", $1, NULL); }
| a_expr '^'
- { $$ = (Node *) makeSimpleA_Expr(OP, "^", $1, NULL); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", $1, NULL); }
| a_expr '+' a_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "+", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", $1, $3); }
| a_expr '-' a_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "-", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", $1, $3); }
| a_expr '*' a_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "*", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", $1, $3); }
| a_expr '/' a_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "/", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", $1, $3); }
| a_expr '%' a_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "%", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", $1, $3); }
| a_expr '^' a_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "^", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", $1, $3); }
| a_expr '<' a_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "<", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", $1, $3); }
| a_expr '>' a_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, ">", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", $1, $3); }
| a_expr '=' a_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "=", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", $1, $3); }
| a_expr qual_Op a_expr %prec Op
- { $$ = (Node *) makeA_Expr(OP, $2, $1, $3); }
+ { $$ = (Node *) makeA_Expr(AEXPR_OP, $2, $1, $3); }
| qual_Op a_expr %prec Op
- { $$ = (Node *) makeA_Expr(OP, $1, NULL, $2); }
+ { $$ = (Node *) makeA_Expr(AEXPR_OP, $1, NULL, $2); }
| a_expr qual_Op %prec POSTFIXOP
- { $$ = (Node *) makeA_Expr(OP, $2, $1, NULL); }
+ { $$ = (Node *) makeA_Expr(AEXPR_OP, $2, $1, NULL); }
| a_expr AND a_expr
- { $$ = (Node *) makeA_Expr(AND, NIL, $1, $3); }
+ { $$ = (Node *) makeA_Expr(AEXPR_AND, NIL, $1, $3); }
| a_expr OR a_expr
- { $$ = (Node *) makeA_Expr(OR, NIL, $1, $3); }
+ { $$ = (Node *) makeA_Expr(AEXPR_OR, NIL, $1, $3); }
| NOT a_expr
- { $$ = (Node *) makeA_Expr(NOT, NIL, NULL, $2); }
+ { $$ = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, $2); }
| a_expr LIKE a_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "~~", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~", $1, $3); }
| a_expr LIKE a_expr ESCAPE a_expr
{
FuncCall *n = makeNode(FuncCall);
n->args = makeList2($3, $5);
n->agg_star = FALSE;
n->agg_distinct = FALSE;
- $$ = (Node *) makeSimpleA_Expr(OP, "~~", $1, (Node *) n);
+ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~", $1, (Node *) n);
}
| a_expr NOT LIKE a_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "!~~", $1, $4); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~", $1, $4); }
| a_expr NOT LIKE a_expr ESCAPE a_expr
{
FuncCall *n = makeNode(FuncCall);
n->args = makeList2($4, $6);
n->agg_star = FALSE;
n->agg_distinct = FALSE;
- $$ = (Node *) makeSimpleA_Expr(OP, "!~~", $1, (Node *) n);
+ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~", $1, (Node *) n);
}
| a_expr ILIKE a_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "~~*", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~*", $1, $3); }
| a_expr ILIKE a_expr ESCAPE a_expr
{
FuncCall *n = makeNode(FuncCall);
n->args = makeList2($3, $5);
n->agg_star = FALSE;
n->agg_distinct = FALSE;
- $$ = (Node *) makeSimpleA_Expr(OP, "~~*", $1, (Node *) n);
+ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~*", $1, (Node *) n);
}
| a_expr NOT ILIKE a_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "!~~*", $1, $4); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~*", $1, $4); }
| a_expr NOT ILIKE a_expr ESCAPE a_expr
{
FuncCall *n = makeNode(FuncCall);
n->args = makeList2($4, $6);
n->agg_star = FALSE;
n->agg_distinct = FALSE;
- $$ = (Node *) makeSimpleA_Expr(OP, "!~~*", $1, (Node *) n);
+ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~*", $1, (Node *) n);
}
| a_expr SIMILAR TO a_expr %prec SIMILAR
n->args = makeList2($4, (Node *) c);
n->agg_star = FALSE;
n->agg_distinct = FALSE;
- $$ = (Node *) makeSimpleA_Expr(OP, "~", $1, (Node *) n);
+ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "~", $1, (Node *) n);
}
| a_expr SIMILAR TO a_expr ESCAPE a_expr
{
n->args = makeList2($4, $6);
n->agg_star = FALSE;
n->agg_distinct = FALSE;
- $$ = (Node *) makeSimpleA_Expr(OP, "~", $1, (Node *) n);
+ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "~", $1, (Node *) n);
}
| a_expr NOT SIMILAR TO a_expr %prec SIMILAR
{
n->args = makeList2($5, (Node *) c);
n->agg_star = FALSE;
n->agg_distinct = FALSE;
- $$ = (Node *) makeSimpleA_Expr(OP, "!~", $1, (Node *) n);
+ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~", $1, (Node *) n);
}
| a_expr NOT SIMILAR TO a_expr ESCAPE a_expr
{
n->args = makeList2($5, $7);
n->agg_star = FALSE;
n->agg_distinct = FALSE;
- $$ = (Node *) makeSimpleA_Expr(OP, "!~", $1, (Node *) n);
+ $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~", $1, (Node *) n);
}
/* NullTest clause
$$ = (Node *)b;
}
| a_expr IS DISTINCT FROM a_expr %prec IS
- { $$ = (Node *) makeSimpleA_Expr(DISTINCT, "=", $1, $5); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", $1, $5); }
| a_expr IS OF '(' type_list ')' %prec IS
{
- $$ = (Node *) makeSimpleA_Expr(OF, "=", $1, (Node *) $5);
+ $$ = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", $1, (Node *) $5);
}
| a_expr IS NOT OF '(' type_list ')' %prec IS
{
- $$ = (Node *) makeSimpleA_Expr(OF, "!=", $1, (Node *) $6);
+ $$ = (Node *) makeSimpleA_Expr(AEXPR_OF, "!=", $1, (Node *) $6);
}
| a_expr BETWEEN b_expr AND b_expr %prec BETWEEN
{
- $$ = (Node *) makeA_Expr(AND, NIL,
- (Node *) makeSimpleA_Expr(OP, ">=", $1, $3),
- (Node *) makeSimpleA_Expr(OP, "<=", $1, $5));
+ $$ = (Node *) makeA_Expr(AEXPR_AND, NIL,
+ (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", $1, $3),
+ (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", $1, $5));
}
| a_expr NOT BETWEEN b_expr AND b_expr %prec BETWEEN
{
- $$ = (Node *) makeA_Expr(OR, NIL,
- (Node *) makeSimpleA_Expr(OP, "<", $1, $4),
- (Node *) makeSimpleA_Expr(OP, ">", $1, $6));
+ $$ = (Node *) makeA_Expr(AEXPR_OR, NIL,
+ (Node *) makeSimpleA_Expr(AEXPR_OP, "<", $1, $4),
+ (Node *) makeSimpleA_Expr(AEXPR_OP, ">", $1, $6));
}
| a_expr IN_P in_expr
{
foreach(l, (List *) $3)
{
Node *cmp;
- cmp = (Node *) makeSimpleA_Expr(OP, "=", $1, lfirst(l));
+ cmp = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", $1, lfirst(l));
if (n == NULL)
n = cmp;
else
- n = (Node *) makeA_Expr(OR, NIL, n, cmp);
+ n = (Node *) makeA_Expr(AEXPR_OR, NIL, n, cmp);
}
$$ = n;
}
n->lefthand = makeList1($1);
n->operName = makeList1(makeString("="));
/* Stick a NOT on top */
- $$ = (Node *) makeA_Expr(NOT, NIL, NULL, (Node *) n);
+ $$ = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, (Node *) n);
}
else
{
foreach(l, (List *) $4)
{
Node *cmp;
- cmp = (Node *) makeSimpleA_Expr(OP, "<>", $1, lfirst(l));
+ cmp = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", $1, lfirst(l));
if (n == NULL)
n = cmp;
else
- n = (Node *) makeA_Expr(AND, NIL, n, cmp);
+ n = (Node *) makeA_Expr(AEXPR_AND, NIL, n, cmp);
}
$$ = n;
}
| b_expr TYPECAST Typename
{ $$ = makeTypeCast($1, $3); }
| '+' b_expr %prec UMINUS
- { $$ = (Node *) makeSimpleA_Expr(OP, "+", NULL, $2); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, $2); }
| '-' b_expr %prec UMINUS
{ $$ = doNegate($2); }
| '%' b_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "%", NULL, $2); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", NULL, $2); }
| '^' b_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "^", NULL, $2); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", NULL, $2); }
| b_expr '%'
- { $$ = (Node *) makeSimpleA_Expr(OP, "%", $1, NULL); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", $1, NULL); }
| b_expr '^'
- { $$ = (Node *) makeSimpleA_Expr(OP, "^", $1, NULL); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", $1, NULL); }
| b_expr '+' b_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "+", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", $1, $3); }
| b_expr '-' b_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "-", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", $1, $3); }
| b_expr '*' b_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "*", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", $1, $3); }
| b_expr '/' b_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "/", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", $1, $3); }
| b_expr '%' b_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "%", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", $1, $3); }
| b_expr '^' b_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "^", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", $1, $3); }
| b_expr '<' b_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "<", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", $1, $3); }
| b_expr '>' b_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, ">", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", $1, $3); }
| b_expr '=' b_expr
- { $$ = (Node *) makeSimpleA_Expr(OP, "=", $1, $3); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", $1, $3); }
| b_expr qual_Op b_expr %prec Op
- { $$ = (Node *) makeA_Expr(OP, $2, $1, $3); }
+ { $$ = (Node *) makeA_Expr(AEXPR_OP, $2, $1, $3); }
| qual_Op b_expr %prec Op
- { $$ = (Node *) makeA_Expr(OP, $1, NULL, $2); }
+ { $$ = (Node *) makeA_Expr(AEXPR_OP, $1, NULL, $2); }
| b_expr qual_Op %prec POSTFIXOP
- { $$ = (Node *) makeA_Expr(OP, $2, $1, NULL); }
+ { $$ = (Node *) makeA_Expr(AEXPR_OP, $2, $1, NULL); }
| b_expr IS DISTINCT FROM b_expr %prec IS
- { $$ = (Node *) makeSimpleA_Expr(DISTINCT, "=", $1, $5); }
+ { $$ = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", $1, $5); }
| b_expr IS OF '(' type_list ')' %prec IS
{
- $$ = (Node *) makeSimpleA_Expr(OF, "=", $1, (Node *) $5);
+ $$ = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", $1, (Node *) $5);
}
| b_expr IS NOT OF '(' type_list ')' %prec IS
{
- $$ = (Node *) makeSimpleA_Expr(OF, "!=", $1, (Node *) $6);
+ $$ = (Node *) makeSimpleA_Expr(AEXPR_OF, "!=", $1, (Node *) $6);
}
;
* same as CASE WHEN a IS NOT NULL THEN a WHEN b IS NOT NULL THEN b ... END
* - thomas 1998-11-09
*/
-case_expr: CASE case_arg when_clause_list case_default END_TRANS
+case_expr: CASE case_arg when_clause_list case_default END_P
{
CaseExpr *c = makeNode(CaseExpr);
c->arg = (Expr *) $2;
CaseExpr *c = makeNode(CaseExpr);
CaseWhen *w = makeNode(CaseWhen);
- w->expr = (Expr *) makeSimpleA_Expr(OP, "=", $3, $5);
+ w->expr = (Expr *) makeSimpleA_Expr(AEXPR_OP, "=", $3, $5);
/* w->result is left NULL */
c->args = makeList1(w);
c->defresult = (Expr *) $3;
/* "Unreserved" keywords --- available for use as any kind of name.
*/
unreserved_keyword:
- ABORT_TRANS
+ ABORT_P
| ABSOLUTE
| ACCESS
| ACTION
| AT
| BACKWARD
| BEFORE
- | BEGIN_TRANS
+ | BEGIN_P
| BY
| CACHE
| CALLED
| FORCE
| FORWARD
| FUNCTION
- | GET
| GLOBAL
| HANDLER
| HOUR_P
| DISTINCT
| DO
| ELSE
- | END_TRANS
+ | END_P
| EXCEPT
| FALSE_P
| FOR
(strcmp(oprname, ">=") == 0))
{
if (expr == NULL)
- expr = (Node *) makeA_Expr(OP, opr, larg, rarg);
+ expr = (Node *) makeA_Expr(AEXPR_OP, opr, larg, rarg);
else
- expr = (Node *) makeA_Expr(AND, NIL, expr,
- (Node *) makeA_Expr(OP, opr,
+ expr = (Node *) makeA_Expr(AEXPR_AND, NIL, expr,
+ (Node *) makeA_Expr(AEXPR_OP, opr,
larg, rarg));
}
else if (strcmp(oprname, "<>") == 0)
{
if (expr == NULL)
- expr = (Node *) makeA_Expr(OP, opr, larg, rarg);
+ expr = (Node *) makeA_Expr(AEXPR_OP, opr, larg, rarg);
else
- expr = (Node *) makeA_Expr(OR, NIL, expr,
- (Node *) makeA_Expr(OP, opr,
+ expr = (Node *) makeA_Expr(AEXPR_OR, NIL, expr,
+ (Node *) makeA_Expr(AEXPR_OP, opr,
larg, rarg));
}
else
rarg = lfirst(rargs);
if (expr == NULL)
- expr = (Node *) makeSimpleA_Expr(DISTINCT, "=", larg, rarg);
+ expr = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", larg, rarg);
else
- expr = (Node *) makeA_Expr(OR, NIL, expr,
- (Node *) makeSimpleA_Expr(DISTINCT, "=",
+ expr = (Node *) makeA_Expr(AEXPR_OR, NIL, expr,
+ (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=",
larg, rarg));
return expr;
if (expr == NULL)
expr = (Node *) n;
else if (test == IS_NOT_NULL)
- expr = (Node *) makeA_Expr(OR, NIL, expr, (Node *)n);
+ expr = (Node *) makeA_Expr(AEXPR_OR, NIL, expr, (Node *)n);
else
- expr = (Node *) makeA_Expr(AND, NIL, expr, (Node *)n);
+ expr = (Node *) makeA_Expr(AEXPR_AND, NIL, expr, (Node *)n);
return expr;
}
}
}
- return (Node *) makeSimpleA_Expr(OP, "-", NULL, n);
+ return (Node *) makeSimpleA_Expr(AEXPR_OP, "-", NULL, n);
}
static void