On Wed, 2006-07-12 at 22:26, Tom Lane wrote:
> Rich Shepard <rshepard@appl-ecosys.com> writes:
> > I'm trying to assist the XRMS developers port their application to
> > postgres (8.1.x on), and it's almost there. One (perhaps the only) stumbling
> > block is case for table and column (relation and attribute) names.
> > Apparently MySQL allows for mixed case, while postgres wants only lower
> > case. One of the development team asked me to enquire when postgres would be
> > fully compliant with the SQL standard in this reqard.
>
> It's probably worth pointing out here that the MySQL behavior they seem
> to be expecting is considerably further from the spec than Postgres's
> behavior. If I'm reading between the lines correctly, they are
> expecting foo and Foo (both written without double-quotes) to be
> distinct identifiers. But these are the same identifier per spec,
> because the spec *requires* case-folding of unquoted identifiers.
It's even worse than that. MySQL uses filenames to identify tables,
like PostgreSQL did back in the days when dinosaurs roamed the plains
and the British Police force drove sexy cars (ok, not that far back, but
anyway)...
This means that when installed in unix, table Foo and table foo are
unique and pretty flowers, but when installed on Windows, they are the
same name...
My recommendation is to either stick to one case, all the time, or to
quote, all the time. I prefer to just stick to one case all the time.