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 702766db3b..65ecfc376a 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 b6cd549bf9..80a1832575 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 570f7243fe..74d0792e2a 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 dfb2532bf3..b9ed53d2c0 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.40.0