BUG #1069: functions "lower()" and "upper()" not characterset-aware
The following bug has been logged online:
Bug reference: 1069
Logged by: Interzone
Email address: info@interzone.gr
PostgreSQL version: 7.4
Operating system: Linux 2.4.24
Description: functions "lower()" and "upper()" not characterset-aware
Details:
the functions "lower()" and "upper()" do not seem to work correctly with
ISO_8859_7 values
Test case:
CREATE DATABASE mediagrk WITH TEMPLATE = template0 ENCODING = 'ISO_8859_7';
CREATE TABLE test1 (
code serial NOT NULL,
compname character varying(100) NOT NULL
);
INSERT INTO test1 VALUES (1, '��������');
SELECT lower(compname) from test1;
if there is a problem (there might be) with the greek characters above, just
remember that this is a iso-8859-7 encoded text (and I changed the encoding
of the form-page to iso-8859-7 before sending).
"PostgreSQL Bugs List" <pgsql-bugs@postgresql.org> writes:
the functions "lower()" and "upper()" do not seem to work correctly with
ISO_8859_7 values
CREATE DATABASE mediagrk WITH TEMPLATE = template0 ENCODING = 'ISO_8859_7';
upper/lower are driven by the database locale, not the encoding.
They are presently broken for multi-byte encodings, but I don't think
ISO_8859_7 is multi-byte.
regards, tom lane
Tom Lane wrote:
"PostgreSQL Bugs List" <pgsql-bugs@postgresql.org> writes:
the functions "lower()" and "upper()" do not seem to work correctly with
ISO_8859_7 valuesCREATE DATABASE mediagrk WITH TEMPLATE = template0 ENCODING = 'ISO_8859_7';
upper/lower are driven by the database locale, not the encoding.
They are presently broken for multi-byte encodings, but I don't think
ISO_8859_7 is multi-byte.
Well, ISO_8859_7 is not multi-byte, and you're right:
I had:
LC_COLLATE: C
LC_CTYPE: C
I tried
initdb -E ISO_8859_7 --locale=el_GR data1
and it all worked wonderfully.
regards, tom lane
Thanks a lot and sorry for the false alarm.
Regards
Interzone