The following bug has been logged online:
Bug reference: 2293
Logged by: Sergey Rosenfeld
Email address: serg@ung.ru
PostgreSQL version: 8.1.3
Operating system: Debian GNU/Linux (sid)
Description: primary key and cyrillic
Details:
postgres:~$ /usr/lib/postgresql/8.1/bin/pg_controldata
/var/lib/postgresql/8.1/main
<...skipped cyrillic koi8-r output ...>
LC_COLLATE: ru_RU.koi8r
LC_CTYPE: ru_RU.koi8r
postmaster works in same locale environment
postgres:~$ psql
Welcome to psql 8.1.3, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
postgres=# select version();
version
----------------------------------------------------------------------------
----------------------------------
PostgreSQL 8.1.3 on i486-pc-linux-gnu, compiled by GCC cc (GCC) 4.0.3
20060212 (prerelease) (Debian 4.0.2-9)
(1 запиÑÑ)
postgres=# show server_encoding;
server_encoding
-----------------
KOI8
(1 запиÑÑ)
postgres=# show client_encoding;
client_encoding
-----------------
KOI8
(1 запиÑÑ)
postgres=# create table test( s varchar(20) primary key );
NOTICE: CREATE TABLE / PRIMARY KEY ÑоздаÑÑ
подÑазÑмеваемÑй Ð¸Ð½Ð´ÐµÐºÑ "test_pkey" длÑ
ÑаблиÑÑ "test"
CREATE TABLE
postgres=# \d test
ТаблиÑа "public.test"
Ðолонка | Тип | ÐодиÑикаÑоÑÑ
---------+-----------------------+--------------
s | character varying(20) | not null
ÐндекÑÑ:
"test_pkey" PRIMARY KEY, btree (s)
postgres=# insert into test values( 'ÑÑва ÑÑва' );
INSERT 0 1
postgres=# insert into test values( 'ÑÑва ÑÑва' );
INSERT 0 1
postgres=# select * from test;
s
-----------
ÑÑва ÑÑва
ÑÑва ÑÑва
(запиÑей: 2)
What about PRIMARY KEY? If i use ascii symbols, all works fine:
postgres=# insert into test values( 'asdf asdf' );
INSERT 0 1
postgres=# insert into test values( 'asdf asdf' );
ERROR: повÑоÑнÑй клÑÑ Ð½Ð°ÑÑÑÐ°ÐµÑ ÐºÐ¾Ð½ÑÑÑейнÑ
UNIQUE "test_pkey"