"scott.marlowe" <scott.marlowe@ihs.com> writes:
> Now that catalogs live in the
> pg_catalog schema, I could just treat anything in the pg_catalog to be
> fold to lower, while everything else would fold to upper.
And you will determine whether something is in pg_catalog how, when you
haven't yet done a catalog lookup for it?
Keep in mind that the problem exists not only for system catalog names,
but for column names in those catalogs, not to mention built-in
functions. So looking at whether the name starts with "pg_" really
doesn't get you far as a way of deciding which way to fold.
Possibly you could make something of "fold to upper case originally,
but refold to lower case before looking in pg_catalog". I have no idea
how to implement that in a way that's not a horrid kluge though. Also,
it'd likely have unpleasant failure modes in some non-ASCII locales
where upcasing and downcasing aren't quite inverses. (Check the
archives for past problems with keywords in Turkish...)
regards, tom lane