From bb0bdfd101933ab330093acb873a53d180460938 Mon Sep 17 00:00:00 2001 From: "Marc G. Fournier" Date: Tue, 6 Aug 1996 16:43:41 +0000 Subject: [PATCH] Fixes: I've enclosed two patches. The first affects Solaris compilability. The bug stems from netdb.h (where MAXHOSTNAMELEN is defined on a stock system). If the user has installed the header files from BIND 4.9.x, there will be no definition of MAXHOSTNAMELEN. The patch will, if all else fails, try to include and set MAXHOSTNAMELEN to MAXDNAME, which is 256 (just like MAXHOSTNAMELEN on a stock system). 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 ] --Jason Submitted by: Jason Wright --- src/backend/parser/gram.y | 9 +++++++-- src/backend/parser/keywords.c | 3 ++- src/backend/postmaster/postmaster.c | 6 +++++- src/backend/tcop/postgres.c | 8 ++++++-- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 702766db3b5..65ecfc376a6 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.4 1996/08/06 16:38:03 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.5 1996/08/06 16:43:06 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, 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 */ @@ -1814,8 +1815,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 b6cd549bf9b..80a18325753 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 1996/07/09 06:21:40 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.2 1996/08/06 16:43:08 scrappy Exp $ * *------------------------------------------------------------------------- */ @@ -87,6 +87,7 @@ static ScanKeyword ScanKeywords[] = { { "insert", INSERT }, { "instead", INSTEAD }, { "into", INTO }, + { "is", IS }, { "isnull", ISNULL }, { "language", LANGUAGE }, { "light", LIGHT }, diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 570f7243fe4..74d0792e2aa 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.3 1996/07/23 02:23:47 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.4 1996/08/06 16:43:24 scrappy Exp $ * * NOTES * @@ -49,6 +49,10 @@ #define MAXINT INT_MAX #else #include /* for MAXHOSTNAMELEN on some */ +#ifndef MAXHOSTNAMELEN /* for MAXHOSTNAMELEN everywhere else */ +#include +#define MAXHOSTNAMELEN MAXDNAME +#endif # if defined(PORTNAME_BSD44_derived) || \ defined(PORTNAME_bsdi) || \ defined(PORTNAME_bsdi_2_1) diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index dfb2532bf32..b9ed53d2c0b 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.4 1996/07/22 23:00:26 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.5 1996/08/06 16:43:41 scrappy Exp $ * * NOTES * this is the "main" module of the postgres backend and @@ -29,6 +29,10 @@ #include /* for MAXHOSTNAMELEN on most */ #ifndef WIN32 #include /* for MAXHOSTNAMELEN on some */ +#ifndef MAXHOSTNAMELEN /* for MAXHOSTNAMELEN everywhere else */ +#include +#define MAXHOSTNAMELEN MAXDNAME +#endif #endif /* WIN32 */ #include #ifdef PORTNAME_aix @@ -1223,7 +1227,7 @@ PostgresMain(int argc, char *argv[]) */ if (IsUnderPostmaster == false) { puts("\nPOSTGRES backend interactive interface"); - puts("$Revision: 1.4 $ $Date: 1996/07/22 23:00:26 $"); + puts("$Revision: 1.5 $ $Date: 1996/08/06 16:43:41 $"); } /* ---------------- -- 2.39.5