diff options
author | Marc G. Fournier <scrappy@hub.org> | 1996-10-11 03:28:14 +0000 |
---|---|---|
committer | Marc G. Fournier <scrappy@hub.org> | 1996-10-11 03:28:14 +0000 |
commit | b5c7fe5518f191ed702e3f188c06e597cf20bb09 (patch) | |
tree | de38dbc24bf1ad217391b390e7ae28bdb4197551 | |
parent | 2cc3c09e456a52f79affc87dbc70841f2dc9b2bc (diff) | |
download | postgresql-b5c7fe5518f191ed702e3f188c06e597cf20bb09.tar.gz |
The second patch adds aliases for "ISNULL" to "IS NULL" and likewise for
"NOTNULL" to "IS NOT NULL". I have not removed the postgres specific
ISNULL and NOTNULL. I noticed this on the TODO list, and figured it would
be easy to remove.
The full semantics are:
[ expression IS NULL ]
[ expression IS NOT NULL ]
Submitted by: Jason Wright <jason@oozoo.vnet.net>
-rw-r--r-- | src/backend/parser/gram.y | 9 | ||||
-rw-r--r-- | src/backend/parser/keywords.c | 3 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 7c85373dc4..5d5bc1b5fd 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.2.2.1 1996/08/24 20:54:06 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.2.2.2 1996/10/11 03:28:08 scrappy Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -173,7 +173,7 @@ static Node *makeA_Expr(int op, char *opname, Node *lexpr, Node *rexpr); CURSOR, DATABASE, DECLARE, DELETE, DELIMITERS, DESC, DISTINCT, DO, DROP, END_TRANS, EXTEND, FETCH, FOR, FORWARD, FROM, FUNCTION, GRANT, GROUP, - HAVING, HEAVY, IN, INDEX, INHERITS, INSERT, INSTEAD, INTO, + HAVING, HEAVY, IN, INDEX, INHERITS, INSERT, INSTEAD, INTO, IS, ISNULL, LANGUAGE, LIGHT, LISTEN, LOAD, MERGE, MOVE, NEW, NONE, NOT, NOTHING, NOTIFY, NOTNULL, OIDS, ON, OPERATOR, OPTION, OR, ORDER, @@ -201,6 +201,7 @@ static Node *makeA_Expr(int op, char *opname, Node *lexpr, Node *rexpr); %nonassoc Op %nonassoc NOTNULL %nonassoc ISNULL +%nonassoc IS %left '+' '-' %left '*' '/' %left '|' /* this is the relation union op, not logical or */ @@ -1810,8 +1811,12 @@ a_expr: attr opt_indirection } | a_expr ISNULL { $$ = makeA_Expr(ISNULL, NULL, $1, NULL); } + | a_expr IS PNULL + { $$ = makeA_Expr(ISNULL, NULL, $1, NULL); } | a_expr NOTNULL { $$ = makeA_Expr(NOTNULL, NULL, $1, NULL); } + | a_expr IS NOT PNULL + { $$ = makeA_Expr(NOTNULL, NULL, $1, NULL); } | a_expr AND a_expr { $$ = makeA_Expr(AND, NULL, $1, $3); } | a_expr OR a_expr diff --git a/src/backend/parser/keywords.c b/src/backend/parser/keywords.c index 4424eda246..61207702a2 100644 --- a/src/backend/parser/keywords.c +++ b/src/backend/parser/keywords.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.1.1.1.2.1 1996/08/24 20:54:11 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.1.1.1.2.2 1996/10/11 03:28:14 scrappy Exp $ * *------------------------------------------------------------------------- */ @@ -87,6 +87,7 @@ static ScanKeyword ScanKeywords[] = { { "insert", INSERT }, { "instead", INSTEAD }, { "into", INTO }, + { "is", IS }, { "isnull", ISNULL }, { "language", LANGUAGE }, { "light", LIGHT }, |