Zdenek Kotala wrote: > Alvaro Herrera wrote: >>>> 3) Put following fake into keyword.c before include "parse.h" line. It >>>> is easiest way. >>>> #define TYPE_IS_DECLARED 1 >>>> #define YYLTYPE_IS_DECLARED 1 >>>> #define YYLTYPE void* >>>> #define YYSTYPE void* >>> New version of patch is attached. I selected variant 3 as a best >>> solution. Patch also fix some other postgres.h dependencyin another tools >>> such as pg_controldata, pg_config. The last unfixed tool is pg_resetxlog >>> which deserves own patch. >> Humm, but YYLTYPE is defined in gramparse.h (and as a different type) >> ... Also, I see that if you define YYLTYPE then you don't need >> YYLTYPE_IS_DECLARED as well. Also I don't see any TYPE_IS_DECLARED >> here. What I'm thinking is that this patch is not very portable :-( > > Thanks you for your comments. > > You are right, define YYLTYPE and YYSTYPE is enough to skip union/structure > definition. I think, data type is not important for this purpose, but use > int instead of void* seem good idea. It will be synchronized with > gramparse.h. > > What do you mean "not very portable"? What could be problem there?
I'm not sure. My point is that it seems your parse.h requires TYPE_IS_DECLARED, but mine doesn't. What else could be lurking in there that requires a specific fix? In order to avoid that, it would be better if there was a solution to the problem along the lines of #2 you proposed. -- Alvaro Herrera Developer, http://www.PostgreSQL.org/ "No renuncies a nada. No te aferres a nada." ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match