Thread: BUG #15516: Identifier not quoted with uppercase letter (spanish Ñ) doesn't get transformed to lowercase (ñ)
BUG #15516: Identifier not quoted with uppercase letter (spanish Ñ) doesn't get transformed to lowercase (ñ)
From
PG Bug reporting form
Date:
The following bug has been logged on the website: Bug reference: 15516 Logged by: Paco Calvo Email address: fcaa@tragsa.es PostgreSQL version: 9.5.15 Operating system: MS Windows Server 2012 R2 Description: Hi list, When using an identifier not quoted which includes an uppercase letter (Spanish Ñ, Unicode U+00D1), it doesn't get transformed to lowercase (ñ, Unicode U+00F1) as expected. For instance, using a database with UTF-8 encoding and both LC_COLLATE and LC_CTYPE as 'Spanish_Spain.1252', the following sentence which uses 2 identifiers with a Ñ uppercase letter CREATE TABLE AÑO (CaÑo integer) creates the table maintaining both Ñ letters as uppercase and forcing to quote both identifiers as CREATE TABLE "aÑo" ("caÑo" integer) instead of all lowercase and no quoting as expected CREATE TABLE año (caño integer) This quirk in lowercasing identifiers forces to use a different, quoted identifier or manually change afterwards every identifier. NB: Reproduced also with PostgreSQL 9.6.9 on MS Windows Server 2012 R2 and PostgreSQL 11.1 on MS Windows Server 2008 R2. Waiting to test it under Linux and MacOS.
Re: BUG #15516: Identifier not quoted with uppercase letter (spanish Ñ) doesn't get transformed to lowercase (ñ)
From
Tom Lane
Date:
=?utf-8?q?PG_Bug_reporting_form?= <noreply@postgresql.org> writes: > When using an identifier not quoted which includes an uppercase letter > (Spanish Ñ, Unicode U+00D1), it doesn't get transformed to lowercase (ñ, > Unicode U+00F1) as expected. PG's downcasing transform is only applied to single-byte characters. So Ñ could be transformed in LATIN1 encoding, but not UTF8. There are various practical reasons why this is unlikely to change soon. regards, tom lane
RE: BUG #15516: Identifier not quoted with uppercase letter (spanish Ñ) doesn't get transformed to lowercase (ñ)
From
"Calvo Arias, Francisco"
Date:
Thank you very much for your clarification, Tom. (Also, I'm very sorry for not ending and signing my previous message properly.Shame on me, having being Thanksgivig Day!) I think I'll submit a correction mentioning that ("PG's downcasing transform is only applied to single-byte characters")for last paragraph on "4.1.1. Identifiers and Key Words" in the documentation which states: - "[...] unquoted names are always folded to lower case" - "If you want to write portable applications you are advised to always quote a particular name or never quote it" Regards, Paco Calvo -----Mensaje original----- De: Tom Lane [mailto:tgl@sss.pgh.pa.us] Enviado el: jueves, 22 de noviembre de 2018 18:02 Para: Calvo Arias, Francisco <fcaa@tragsa.es> CC: pgsql-bugs@lists.postgresql.org Asunto: Re: BUG #15516: Identifier not quoted with uppercase letter (spanish Ñ) doesn't get transformed to lowercase (ñ) =?utf-8?q?PG_Bug_reporting_form?= <noreply@postgresql.org> writes: > When using an identifier not quoted which includes an uppercase letter > (Spanish Ñ, Unicode U+00D1), it doesn't get transformed to lowercase > (ñ, Unicode U+00F1) as expected. PG's downcasing transform is only applied to single-byte characters. So Ñ could be transformed in LATIN1 encoding, but not UTF8. There are various practical reasons why this is unlikely tochange soon. regards, tom lane ********************************************************************************************** El consumo de papel es perjudicial para el medio ambiente. Por favor, téngalo en cuenta antes de imprimir este mensaje. AVISOLEGAL: Este mensaje y sus anexos pueden contener información confidencial o legalmente protegida. Está dirigido únicamentea la persona o entidad indicada como destinatarios del mensaje. Si este mensaje le hubiera llegado por error, porfavor elimínelo sin revisarlo ni reenviarlo y notifíquelo inmediatamente al remitente. **********************************************************************************************