]> granicus.if.org Git - postgresql/commitdiff
The second patch adds aliases for "ISNULL" to "IS NULL" and likewise for
authorMarc G. Fournier <scrappy@hub.org>
Fri, 11 Oct 1996 03:28:14 +0000 (03:28 +0000)
committerMarc G. Fournier <scrappy@hub.org>
Fri, 11 Oct 1996 03:28:14 +0000 (03:28 +0000)
"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>

src/backend/parser/gram.y
src/backend/parser/keywords.c

index 7c85373dc4f424228c13ccf9b32d799dc11c7172..5d5bc1b5fde9b6d7860a2f610043330b1c877419 100644 (file)
@@ -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
index 4424eda2466d26186d5a410c80569237dc5942eb..61207702a25c9041596f04867a1358353ecb89fa 100644 (file)
@@ -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           },