Thread: Bug #425: Upper(), Lower() bug

Bug #425: Upper(), Lower() bug

From
pgsql-bugs@postgresql.org
Date:
Dmitry Bezgodov (dimabezg@europe.com) reports a bug with a severity of 2
The lower the number the more severe it is.

Short Description
Upper(), Lower() bug

Long Description
The functions Lower amd Upper doesn't work with cyrillic, but
works fine with latin (a-z A-Z).

Tested on psql (PostgreSQL) 7.1.3 with
PostgreSQL 7.1.3 on i686-pc-cygwin, compiled by GCC 2.95.3-5.
System: MS Windows 98 2nd russian edition.
I tryed work via PostgreSQL ODBC 7.01.00.06 in pgAdmin and Active Perl 5.6 DBD-ODBC -  it was the same result.
Regards,
Dmitry Bezgodov


Sample Code

$psql --version
psql (PostgreSQL) 7.1.3
contains readline, history, multibyte support
Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
Portions Copyright (c) 1996 Regents of the University of California
Read the file COPYRIGHT or use the command \copyright to see the
usage and distribution terms.

$createdb -T template1 -E LATIN5 -U DMYL -W ldb

$psql -l
      List of databases
 Database  | Owner | Encoding
-----------+-------+----------
 ldb       | DMYL  | LATIN5
 template0 | DMYL  | LATIN5
 template1 | DMYL  | LATIN5
(3 rows)

$psql -c 'SELECT VERSION()' ldb
                           version
--------------------------------------------------------------
 PostgreSQL 7.1.3 on i686-pc-cygwin, compiled by GCC 2.95.3-5
(1 row)
=== Some code
SET CLIENT_ENCODING TO 'WIN'
-- WIN is shortcut of Windows 1251 codepage ( Windows Cyrillic )

CREATE TABLE mytable (
  id      int4 primary key,
  name    varchar(80) not null)

INSERT INTO product VALUES(
  1,
  'Windows cp1251 encoding cyrillic text')

SELECT name, Upper(name), Lower(name) from mytable
-- Output of those fields are equal, Lower and Upper functions don't
-- change a value of field 'name'.


No file was uploaded with this report

Re: Bug #425: Upper(), Lower() bug

From
Tom Lane
Date:
pgsql-bugs@postgresql.org writes:
> The functions Lower amd Upper doesn't work with cyrillic, but
> works fine with latin (a-z A-Z).

upper/lowercase conversions are driven by LOCALE setting, not
by multibyte character set.  As far as I can tell, you have not
done anything to select a cyrillic locale.

            regards, tom lane