|
10 | 10 | *
|
11 | 11 | *
|
12 | 12 | * IDENTIFICATION
|
13 |
| - * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.2.2.1 1996/08/24 20:54:06 scrappy Exp $ |
| 13 | + * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.2.2.2 1996/10/11 03:28:08 scrappy Exp $ |
14 | 14 | *
|
15 | 15 | * HISTORY
|
16 | 16 | * AUTHOR DATE MAJOR EVENT
|
@@ -173,7 +173,7 @@ static Node *makeA_Expr(int op, char *opname, Node *lexpr, Node *rexpr);
|
173 | 173 | CURSOR, DATABASE, DECLARE, DELETE, DELIMITERS, DESC, DISTINCT, DO,
|
174 | 174 | DROP, END_TRANS,
|
175 | 175 | EXTEND, FETCH, FOR, FORWARD, FROM, FUNCTION, GRANT, GROUP,
|
176 |
| - HAVING, HEAVY, IN, INDEX, INHERITS, INSERT, INSTEAD, INTO, |
| 176 | + HAVING, HEAVY, IN, INDEX, INHERITS, INSERT, INSTEAD, INTO, IS, |
177 | 177 | ISNULL, LANGUAGE, LIGHT, LISTEN, LOAD, MERGE, MOVE, NEW,
|
178 | 178 | NONE, NOT, NOTHING, NOTIFY, NOTNULL,
|
179 | 179 | OIDS, ON, OPERATOR, OPTION, OR, ORDER,
|
@@ -201,6 +201,7 @@ static Node *makeA_Expr(int op, char *opname, Node *lexpr, Node *rexpr);
|
201 | 201 | %nonassoc Op
|
202 | 202 | %nonassoc NOTNULL
|
203 | 203 | %nonassoc ISNULL
|
| 204 | +%nonassoc IS |
204 | 205 | %left '+' '-'
|
205 | 206 | %left '*' '/'
|
206 | 207 | %left '|' /* this is the relation union op, not logical or */
|
@@ -1810,8 +1811,12 @@ a_expr: attr opt_indirection
|
1810 | 1811 | }
|
1811 | 1812 | | a_expr ISNULL
|
1812 | 1813 | { $$ = makeA_Expr(ISNULL, NULL, $1, NULL); }
|
| 1814 | + | a_expr IS PNULL |
| 1815 | + { $$ = makeA_Expr(ISNULL, NULL, $1, NULL); } |
1813 | 1816 | | a_expr NOTNULL
|
1814 | 1817 | { $$ = makeA_Expr(NOTNULL, NULL, $1, NULL); }
|
| 1818 | + | a_expr IS NOT PNULL |
| 1819 | + { $$ = makeA_Expr(NOTNULL, NULL, $1, NULL); } |
1815 | 1820 | | a_expr AND a_expr
|
1816 | 1821 | { $$ = makeA_Expr(AND, NULL, $1, $3); }
|
1817 | 1822 | | a_expr OR a_expr
|
|
0 commit comments