> Many of the keywords listed in keywords.c are defined with symbolic
> names that end in '_P' (underscore P).
> What differentiates those keywords from the other keywords?  What does
> the 'P' stand for?

P = Parser.  The reason for the _P is just to avoid conflicts with
other definitions of the macro name, either in our own code or various
platforms' header files.  We haven't been totally consistent about it,
but roughly speaking we've stuck _P on when it was either known or
seemed likely that there might be a conflict.

Some years ago there was discussion of consistently P-ifying *all* those
macros, but it didn't get done; I think Thomas or somebody objected that
it would make gram.y needlessly harder to read.

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at


Reply via email to