Re: [SQL] Case Preservation disregarding case

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Jim Nasby <jim(at)nasby(dot)net>
Cc: Simon Riggs <simon(at)2ndquadrant(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Chuck McDevitt <cmcdevitt(at)greenplum(dot)com>, Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com>, beau hargis <beauh(at)bluefrogmobile(dot)com>, pgsql-sql(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [SQL] Case Preservation disregarding case
Date: 2006-11-15 17:58:15
Message-ID: 455B5537.3060905@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-sql

Jim Nasby wrote:
> On Nov 14, 2006, at 2:42 PM, Simon Riggs wrote:
>> On Thu, 2006-11-02 at 10:51 -0500, Tom Lane wrote:
>>> "Simon Riggs" <simon(at)2ndquadrant(dot)com> writes:
>>>> We have namespaces to differentiate between two sources of object
>>>> names,
>>>> so anybody who creates a schema where MyColumn is not the same
>>>> thing as
>>>> myColumn is not following sensible rules for conceptual distance.
>>>
>>> I'd agree that that is not a good design practice, but the fact remains
>>> that they *are* different per spec.
>>>
>>>> Would be better to make this behaviour a userset
>>>> switchable between the exactly compliant and the more intuitive.
>>>
>>> That's certainly not happening --- if you make any changes in the
>>> semantics of equality of type name, it would have to be frozen no
>>> later than initdb time, for exactly the same reasons we freeze
>>> locale then (hint: index ordering).
>>
>> [Re-read all of this after Bruce's post got me thinking.]
>>
>> My summary of the thread, with TODO items noted:
>>
>> 1. PostgreSQL doesn't follow the spec, but almost does, with regard to
>> comparison of unquoted and quoted identifiers. DB2 does this per spec.
>>
>> 2. TODO: We could follow the spec, but it would need an initdb option;
>> some non-SQL:2003 standard PostgreSQL programs would not work as they do
>> now. This is considered a minor, low priority item, though.
>>
>> 3. TODO: We could set column headers better if we wanted to (rather
>> than ?column? we could use e.g. Sum_ColumnName etc)
>
> Did the idea of preserving the original case and using that for output
> column names, /d, etc. get shot down? I thought it would be a useful
> addition...

I think there is broad agreement that we need to provide optional
minimally spec compliant behaviour (fold unquoted to upper case,
otherwise as now). I am not sure how invasive either the "case preserved
+ case insensitive comparison" or the "case preserved + case sensitive
comparison" option would be. I don't know that anything has been ruled
out. Until someone produces a patch or a definite design and analysis we
are a bit in the dark. Personally, I would like to see all of these as
options ;-)

I think Simon's item 3 above is a separate issue.

cheers

andrew

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2006-11-15 19:45:48 Re: [HACKERS] Replication documentation addition
Previous Message Oleg Bartunov 2006-11-15 17:38:52 building postgresql documentation

Browse pgsql-sql by date

  From Date Subject
Next Message chrisj 2006-11-15 18:45:38 recursive SQL and with clause
Previous Message Luca Ferrari 2006-11-15 16:59:58 Re: sql problem with join