summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc G. Fournier <scrappy@hub.org>1996-10-11 03:28:14 +0000
committerMarc G. Fournier <scrappy@hub.org>1996-10-11 03:28:14 +0000
commitb5c7fe5518f191ed702e3f188c06e597cf20bb09 (patch)
treede38dbc24bf1ad217391b390e7ae28bdb4197551
parent2cc3c09e456a52f79affc87dbc70841f2dc9b2bc (diff)
downloadpostgresql-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.y9
-rw-r--r--src/backend/parser/keywords.c3
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 },