Re: [BUGS] BUG #5845: Postgres does not seem to handle unquoted upper cased object identifiers

2011-01-25 Thread Alvaro Herrera
Excerpts from Kasia Tuszynska's message of lun ene 24 16:48:21 -0300 2011:

 Basic issue:
 In the documentation Postgres states that it's identifiers (table, column
 names etc)are case insensitive and thus it stores everything in lower case.
 To preserve case of a identifier, the name needs to be quoted.


 But it's handing of incoming upper cased identifiers seems to be
 inconsistent.
 We have observed the following:
 create table á007 (objectid integer);
 select * from á007;Found
 select * from Á007;Not Found

Yes, this is a known limitation, but previous discussions about it
haven't led to finding a solution to the problem.

-- 
Álvaro Herrera alvhe...@commandprompt.com
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs


[BUGS] BUG #5845: Postgres does not seem to handle unquoted upper cased object identifiers

2011-01-24 Thread Kasia Tuszynska

The following bug has been logged online:

Bug reference:  5845
Logged by:  Kasia Tuszynska
Email address:  ktuszyn...@esri.com
PostgreSQL version: 9.0.2
Operating system:   Windows 2008 R2 (64bit)
Description:Postgres does not seem to handle unquoted upper cased
object identifiers
Details: 

This issue was reported by a customer in Spain, the original examples with
table and column names specific to the Spanish language. 

Basic issue:
In the documentation Postgres states that it's identifiers (table, column
names etc)are case insensitive and thus it stores everything in lower case.
To preserve case of a identifier, the name needs to be quoted.

So, in the example:
create table TESTá007 (objectid integer);
create table testá007 (objectid integer);
- the second statement should fail with a table exists error.

But it's handing of incoming upper cased identifiers seems to be
inconsistent.
We have observed the following:
create table á007 (objectid integer);
select * from á007;Found
select * from Á007;Not Found

create table Á008 (objectid integer);
select * from Á008;Found
select * from á008;Not Found

This inability to ignore the case causes problems when trying to delete the
table. 

It seems that the upper and lower functions are not working as expected:
select upper('ñ006'),lower('Ñ005');
ñ006;Ñ005

Environments Tested:
Version 8.3.8 (codepage win1252 and Spain locale):
--all query return records correctly with upper and lower case.
Version 9.0.0:
--error trying to delete table á008
Version 9.0.2(codepage win1252 and Spanish locale)
--error trying to delete table á008

-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs