Emmanuel Charpentier <charpent@bacbuc.dyndns.org> writes:
> [ much snipped ]
> This seems to me proof enough that the behaviour of PostgreSQL (or
> ODBC driver) related to case sensitivity is not coherent.
> Could some kind soul shed some light on this ?
It's hard to tell what your driver is doing, but the underlying backend
behavior is simple enough.
A table or field name written in an SQL query is forced to lowercase
*unless* it is written with double-quotes around it:
SELECT * FROM Table; -- refers to "table"
SELECT * FROM "Table"; -- refers to "Table"
Your debugging output shows that the CREATE TABLE statement is being
sent as-is, so the name is lowercased before the CREATE happens.
You didn't show what was being sent for your other queries like
sqlColumns(). I speculate that the driver is translating those into
SQL queries in which the provided name is quoted...
regards, tom lane