Albert Chin wrote:
> On Mon, Dec 19, 2005 at 06:34:38PM -0500, Tom Lane wrote:
> > Albert Chin <[EMAIL PROTECTED]> writes:
> > > On Mon, Dec 19, 2005 at 05:59:12PM -0500, Tom Lane wrote:
> > >> Perhaps a more relevant question is why ecpg/preproc is including
> > >> that header.
> > 
> > > #include <netdb.h> with -D_REENTRANT includes it.
> > >   preproc.c:
> > >     #include "postgres_fe.h"
> > >       #include "c.h"
> > >         #include "port.h"
> > >            #include <netdb.h>
> > 
> > Well, port.h is certainly doing a fine job of polluting the namespace.
> > Maybe we should pull out the stuff that depends on netdb.h and pwd.h
> > into some other header that isn't going to get included so widely.
> > 
> > > ADD has the same problem.
> > 
> > There's no way that we are going to be able to dodge every single symbol
> > that any random system header on any random platform might define ---
> > especially when you get into the less-well-standardized headers like
> > these.  We have to think smaller in terms of what headers we include
> > everywhere.
> 
> Well, we've built on most versions of Solaris, HP-UX, AIX, Tru64 UNIX,
> Redhat Linux, and IRIX and this is the only symbol conflict we ran
> into. So, it's not a big problem.

I have converted the symbols that gave you problem (HEAD/ADD) to
HEAD_P/ADD_P.  Please test the patch and let me know if things work.
Thanks.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: src/backend/parser/gram.y
===================================================================
RCS file: /cvsroot/pgsql/src/backend/parser/gram.y,v
retrieving revision 2.517
diff -c -c -r2.517 gram.y
*** src/backend/parser/gram.y   11 Dec 2005 10:54:27 -0000      2.517
--- src/backend/parser/gram.y   23 Dec 2005 00:12:46 -0000
***************
*** 335,341 ****
   */
  
  /* ordinary key words in alphabetical order */
! %token <keyword> ABORT_P ABSOLUTE_P ACCESS ACTION ADD ADMIN AFTER
        AGGREGATE ALL ALSO ALTER ANALYSE ANALYZE AND ANY ARRAY AS ASC
        ASSERTION ASSIGNMENT ASYMMETRIC AT AUTHORIZATION
  
--- 335,341 ----
   */
  
  /* ordinary key words in alphabetical order */
! %token <keyword> ABORT_P ABSOLUTE_P ACCESS ACTION ADD_P ADMIN AFTER
        AGGREGATE ALL ALSO ALTER ANALYSE ANALYZE AND ANY ARRAY AS ASC
        ASSERTION ASSIGNMENT ASYMMETRIC AT AUTHORIZATION
  
***************
*** 361,367 ****
  
        GLOBAL GRANT GRANTED GREATEST GROUP_P
  
!       HANDLER HAVING HEADER HOLD HOUR_P
  
        IF_P ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IN_P INCLUDING INCREMENT
        INDEX INHERIT INHERITS INITIALLY INNER_P INOUT INPUT_P
--- 361,367 ----
  
        GLOBAL GRANT GRANTED GREATEST GROUP_P
  
!       HANDLER HAVING HEADER_P HOLD HOUR_P
  
        IF_P ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IN_P INCLUDING INCREMENT
        INDEX INHERIT INHERITS INITIALLY INNER_P INOUT INPUT_P
***************
*** 878,884 ****
                                }
                ;
  
! add_drop:     ADD                                                             
                { $$ = +1; }
                        | DROP                                                  
                { $$ = -1; }
                ;
  
--- 878,884 ----
                                }
                ;
  
! add_drop:     ADD_P                                                           
                { $$ = +1; }
                        | DROP                                                  
                { $$ = -1; }
                ;
  
***************
*** 1300,1307 ****
  
  /* Subcommands that are for ALTER TABLE only */
  alter_table_cmd:
!                       /* ALTER TABLE <relation> ADD [COLUMN] <coldef> */
!                       ADD opt_column columnDef
                                {
                                        AlterTableCmd *n = 
makeNode(AlterTableCmd);
                                        n->subtype = AT_AddColumn;
--- 1300,1307 ----
  
  /* Subcommands that are for ALTER TABLE only */
  alter_table_cmd:
!                       /* ALTER TABLE <relation> ADD_P [COLUMN] <coldef> */
!                       ADD_P opt_column columnDef
                                {
                                        AlterTableCmd *n = 
makeNode(AlterTableCmd);
                                        n->subtype = AT_AddColumn;
***************
*** 1373,1380 ****
                                        n->transform = $6;
                                        $$ = (Node *)n;
                                }
!                       /* ALTER TABLE <relation> ADD CONSTRAINT ... */
!                       | ADD TableConstraint
                                {
                                        AlterTableCmd *n = 
makeNode(AlterTableCmd);
                                        n->subtype = AT_AddConstraint;
--- 1373,1380 ----
                                        n->transform = $6;
                                        $$ = (Node *)n;
                                }
!                       /* ALTER TABLE <relation> ADD_P CONSTRAINT ... */
!                       | ADD_P TableConstraint
                                {
                                        AlterTableCmd *n = 
makeNode(AlterTableCmd);
                                        n->subtype = AT_AddConstraint;
***************
*** 1615,1621 ****
                                {
                                        $$ = makeDefElem("csv", (Node 
*)makeInteger(TRUE));
                                }
!                       | HEADER
                                {
                                        $$ = makeDefElem("header", (Node 
*)makeInteger(TRUE));
                                }
--- 1615,1621 ----
                                {
                                        $$ = makeDefElem("csv", (Node 
*)makeInteger(TRUE));
                                }
!                       | HEADER_P
                                {
                                        $$ = makeDefElem("header", (Node 
*)makeInteger(TRUE));
                                }
***************
*** 4763,4770 ****
                                        n->typename = $3;
                                        $$ = (Node *)n;
                                }
!                       /* ALTER DOMAIN <domain> ADD CONSTRAINT ... */
!                       | ALTER DOMAIN_P any_name ADD TableConstraint
                                {
                                        AlterDomainStmt *n = 
makeNode(AlterDomainStmt);
                                        n->subtype = 'C';
--- 4763,4770 ----
                                        n->typename = $3;
                                        $$ = (Node *)n;
                                }
!                       /* ALTER DOMAIN <domain> ADD_P CONSTRAINT ... */
!                       | ALTER DOMAIN_P any_name ADD_P TableConstraint
                                {
                                        AlterDomainStmt *n = 
makeNode(AlterDomainStmt);
                                        n->subtype = 'C';
***************
*** 8133,8139 ****
                        | ABSOLUTE_P
                        | ACCESS
                        | ACTION
!                       | ADD
                        | ADMIN
                        | AFTER
                        | AGGREGATE
--- 8133,8139 ----
                        | ABSOLUTE_P
                        | ACCESS
                        | ACTION
!                       | ADD_P
                        | ADMIN
                        | AFTER
                        | AGGREGATE
***************
*** 8200,8206 ****
                        | GLOBAL
                        | GRANTED
                        | HANDLER
!                       | HEADER
                        | HOLD
                        | HOUR_P
                        | IF_P
--- 8200,8206 ----
                        | GLOBAL
                        | GRANTED
                        | HANDLER
!                       | HEADER_P
                        | HOLD
                        | HOUR_P
                        | IF_P
Index: src/backend/parser/keywords.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/parser/keywords.c,v
retrieving revision 1.169
diff -c -c -r1.169 keywords.c
*** src/backend/parser/keywords.c       22 Nov 2005 18:17:15 -0000      1.169
--- src/backend/parser/keywords.c       23 Dec 2005 00:12:46 -0000
***************
*** 34,40 ****
        {"absolute", ABSOLUTE_P},
        {"access", ACCESS},
        {"action", ACTION},
!       {"add", ADD},
        {"admin", ADMIN},
        {"after", AFTER},
        {"aggregate", AGGREGATE},
--- 34,40 ----
        {"absolute", ABSOLUTE_P},
        {"access", ACCESS},
        {"action", ACTION},
!       {"add", ADD_P},
        {"admin", ADMIN},
        {"after", AFTER},
        {"aggregate", AGGREGATE},
***************
*** 157,163 ****
        {"group", GROUP_P},
        {"handler", HANDLER},
        {"having", HAVING},
!       {"header", HEADER},
        {"hold", HOLD},
        {"hour", HOUR_P},
        {"if", IF_P},
--- 157,163 ----
        {"group", GROUP_P},
        {"handler", HANDLER},
        {"having", HAVING},
!       {"header", HEADER_P},
        {"hold", HOLD},
        {"hour", HOUR_P},
        {"if", IF_P},
Index: src/interfaces/ecpg/preproc/keywords.c
===================================================================
RCS file: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v
retrieving revision 1.70
diff -c -c -r1.70 keywords.c
*** src/interfaces/ecpg/preproc/keywords.c      15 Oct 2005 02:49:47 -0000      
1.70
--- src/interfaces/ecpg/preproc/keywords.c      23 Dec 2005 00:12:52 -0000
***************
*** 32,38 ****
        {"absolute", ABSOLUTE_P},
        {"access", ACCESS},
        {"action", ACTION},
!       {"add", ADD},
        {"admin", ADMIN},
        {"after", AFTER},
        {"aggregate", AGGREGATE},
--- 32,38 ----
        {"absolute", ABSOLUTE_P},
        {"access", ACCESS},
        {"action", ACTION},
!       {"add", ADD_P},
        {"admin", ADMIN},
        {"after", AFTER},
        {"aggregate", AGGREGATE},
***************
*** 155,161 ****
        {"group", GROUP_P},
        {"handler", HANDLER},
        {"having", HAVING},
!       {"header", HEADER},
        {"hold", HOLD},
        {"hour", HOUR_P},
        {"ilike", ILIKE},
--- 155,161 ----
        {"group", GROUP_P},
        {"handler", HANDLER},
        {"having", HAVING},
!       {"header", HEADER_P},
        {"hold", HOLD},
        {"hour", HOUR_P},
        {"ilike", ILIKE},
Index: src/interfaces/ecpg/preproc/preproc.y
===================================================================
RCS file: /cvsroot/pgsql/src/interfaces/ecpg/preproc/preproc.y,v
retrieving revision 1.313
diff -c -c -r1.313 preproc.y
*** src/interfaces/ecpg/preproc/preproc.y       2 Dec 2005 15:03:57 -0000       
1.313
--- src/interfaces/ecpg/preproc/preproc.y       23 Dec 2005 00:12:55 -0000
***************
*** 349,355 ****
  %token        TYPECAST
  
  /* ordinary key words in alphabetical order */
! %token <keyword> ABORT_P ABSOLUTE_P ACCESS ACTION ADD ADMIN AFTER
          AGGREGATE ALL ALSO ALTER ANALYSE ANALYZE AND ANY ARRAY AS ASC
        ASSERTION ASSIGNMENT ASYMMETRIC AT AUTHORIZATION
  
--- 349,355 ----
  %token        TYPECAST
  
  /* ordinary key words in alphabetical order */
! %token <keyword> ABORT_P ABSOLUTE_P ACCESS ACTION ADD_P ADMIN AFTER
          AGGREGATE ALL ALSO ALTER ANALYSE ANALYZE AND ANY ARRAY AS ASC
        ASSERTION ASSIGNMENT ASYMMETRIC AT AUTHORIZATION
  
***************
*** 375,381 ****
  
        GET GLOBAL GRANT GRANTED GREATEST GROUP_P
  
!       HANDLER HAVING HEADER HOLD HOUR_P
  
        ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IN_P INCLUDING INCREMENT
        INDEX INHERIT INHERITS INITIALLY INNER_P INOUT INPUT_P
--- 375,381 ----
  
        GET GLOBAL GRANT GRANTED GREATEST GROUP_P
  
!       HANDLER HAVING HEADER_P HOLD HOUR_P
  
        ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IN_P INCLUDING INCREMENT
        INDEX INHERIT INHERITS INITIALLY INNER_P INOUT INPUT_P
***************
*** 1032,1038 ****
                        { $$ = cat_str(5, make_str("alter group"), $3, $4, 
make_str("user"), $6); }
                ;
  
! add_drop: ADD         { $$ = make_str("add"); } 
        | DROP          { $$ = make_str("drop"); } 
        ;
        
--- 1032,1038 ----
                        { $$ = cat_str(5, make_str("alter group"), $3, $4, 
make_str("user"), $6); }
                ;
  
! add_drop: ADD_P               { $$ = make_str("add"); } 
        | DROP          { $$ = make_str("drop"); } 
        ;
        
***************
*** 1244,1251 ****
                ;
  
  alter_table_cmd:
!               ADD opt_column columnDef
! /* ALTER TABLE <relation> ADD [COLUMN] <coldef> */
                        { $$ = cat_str(3, make_str("add"), $2, $3); }
  /* ALTER TABLE <relation> ALTER [COLUMN] <colname> {SET DEFAULT <expr>|DROP 
DEFAULT} */
                | ALTER opt_column ColId alter_column_default
--- 1244,1251 ----
                ;
  
  alter_table_cmd:
!               ADD_P opt_column columnDef
! /* ALTER TABLE <relation> ADD_P [COLUMN] <coldef> */
                        { $$ = cat_str(3, make_str("add"), $2, $3); }
  /* ALTER TABLE <relation> ALTER [COLUMN] <colname> {SET DEFAULT <expr>|DROP 
DEFAULT} */
                | ALTER opt_column ColId alter_column_default
***************
*** 1268,1275 ****
  /* ALTER TABLE <relation> ALTER [COLUMN] <colname> TYPE <typename> [ USING 
<expression> ] */
                | ALTER opt_column ColId TYPE_P Typename alter_using
                        { $$ = cat_str(6, make_str("alter"), $2, $3, 
make_str("type"), $5, $6); }
! /* ALTER TABLE <relation> ADD CONSTRAINT ... */
!               | ADD TableConstraint
                        { $$ = cat_str(2, make_str("add"), $2); }
  /* ALTER TABLE <relation> DROP CONSTRAINT ... */
                | DROP CONSTRAINT name opt_drop_behavior
--- 1268,1275 ----
  /* ALTER TABLE <relation> ALTER [COLUMN] <colname> TYPE <typename> [ USING 
<expression> ] */
                | ALTER opt_column ColId TYPE_P Typename alter_using
                        { $$ = cat_str(6, make_str("alter"), $2, $3, 
make_str("type"), $5, $6); }
! /* ALTER TABLE <relation> ADD_P CONSTRAINT ... */
!               | ADD_P TableConstraint
                        { $$ = cat_str(2, make_str("add"), $2); }
  /* ALTER TABLE <relation> DROP CONSTRAINT ... */
                | DROP CONSTRAINT name opt_drop_behavior
***************
*** 1385,1391 ****
                | NULL_P opt_as StringConst
                        { $$ = cat_str(3, make_str("null"), $2, $3); }
                | CSV           { $$ = make_str("csv"); }
!               | HEADER        { $$ = make_str("header"); }
                | QUOTE opt_as Sconst
                        { $$ = cat_str(3, make_str("quote"), $2, $3); }
                | ESCAPE opt_as Sconst
--- 1385,1391 ----
                | NULL_P opt_as StringConst
                        { $$ = cat_str(3, make_str("null"), $2, $3); }
                | CSV           { $$ = make_str("csv"); }
!               | HEADER_P      { $$ = make_str("header"); }
                | QUOTE opt_as Sconst
                        { $$ = cat_str(3, make_str("quote"), $2, $3); }
                | ESCAPE opt_as Sconst
***************
*** 2847,2853 ****
                { $$ = cat_str(3, make_str("alter domain"), $3, make_str("drop 
not null")); }
        | ALTER DOMAIN_P any_name SET NOT NULL_P
                { $$ = cat_str(3, make_str("alter domain"), $3, make_str("set 
not null")); }
!       | ALTER DOMAIN_P any_name ADD TableConstraint
                { $$ = cat_str(4, make_str("alter domain"), $3, 
make_str("add"), $5); }
        | ALTER DOMAIN_P any_name DROP CONSTRAINT name opt_drop_behavior
                { $$ = cat_str(5, make_str("alter domain"), $3, make_str("drop 
constraint"), $6, $7); }
--- 2847,2853 ----
                { $$ = cat_str(3, make_str("alter domain"), $3, make_str("drop 
not null")); }
        | ALTER DOMAIN_P any_name SET NOT NULL_P
                { $$ = cat_str(3, make_str("alter domain"), $3, make_str("set 
not null")); }
!       | ALTER DOMAIN_P any_name ADD_P TableConstraint
                { $$ = cat_str(4, make_str("alter domain"), $3, 
make_str("add"), $5); }
        | ALTER DOMAIN_P any_name DROP CONSTRAINT name opt_drop_behavior
                { $$ = cat_str(5, make_str("alter domain"), $3, make_str("drop 
constraint"), $6, $7); }
***************
*** 6044,6050 ****
                | ABSOLUTE_P                    { $$ = make_str("absolute"); }
                | ACCESS                        { $$ = make_str("access"); }
                | ACTION                        { $$ = make_str("action"); }
!               | ADD                           { $$ = make_str("add"); }
                | ADMIN                         { $$ = make_str("admin"); }
                | AFTER                         { $$ = make_str("after"); }
                | AGGREGATE                     { $$ = make_str("aggregate"); }
--- 6044,6050 ----
                | ABSOLUTE_P                    { $$ = make_str("absolute"); }
                | ACCESS                        { $$ = make_str("access"); }
                | ACTION                        { $$ = make_str("action"); }
!               | ADD_P                         { $$ = make_str("add"); }
                | ADMIN                         { $$ = make_str("admin"); }
                | AFTER                         { $$ = make_str("after"); }
                | AGGREGATE                     { $$ = make_str("aggregate"); }
***************
*** 6108,6114 ****
                | GLOBAL                        { $$ = make_str("global"); }
                | GRANTED                       { $$ = make_str("granted"); }
                | HANDLER                       { $$ = make_str("handler"); }
!               | HEADER                        { $$ = make_str("header"); }
                | HOLD                          { $$ = make_str("hold"); }
  /*            | HOUR_P                        { $$ = make_str("hour"); }*/
                | IMMEDIATE                     { $$ = make_str("immediate"); }
--- 6108,6114 ----
                | GLOBAL                        { $$ = make_str("global"); }
                | GRANTED                       { $$ = make_str("granted"); }
                | HANDLER                       { $$ = make_str("handler"); }
!               | HEADER_P                      { $$ = make_str("header"); }
                | HOLD                          { $$ = make_str("hold"); }
  /*            | HOUR_P                        { $$ = make_str("hour"); }*/
                | IMMEDIATE                     { $$ = make_str("immediate"); }
---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to [EMAIL PROTECTED] so that your
       message can get through to the mailing list cleanly

Reply via email to