ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] postgresql 8.1.8 и  трабл с ILIKE
@ 2008-06-05 10:36 Anatoliy Lisjutin
  2008-06-05 10:55 ` Anatoliy Lisjutin
  0 siblings, 1 reply; 14+ messages in thread
From: Anatoliy Lisjutin @ 2008-06-05 10:36 UTC (permalink / raw)
  To: ALT Linux Community general discussions

Здравствуйте!
Перенес я базу с M2.4 на  Server , postgresql 8.1.8.
Запрос где ILIKE '%Красн%' - не выдает ничего, а запрос где ILIKE '%КРАСН%'  
выдает кучу . 
В таблицах оно действительно все большими буковками вписано , но я же 
специально , что бы не различать большие малые ILIKE применяю. Так чего же 
оно не работает?  Решил кучу трабл с переносом старого кода php а здесь 
влип. 
Помогите люди добрые! 
Это база http://rgantd.ru/grad/index.html , сами убедитесь. 

-- 
With my best regards to you !!
http://rusarchives.ru http://rgantd.ru http://victory.rusarchives.ru
SilverFox@mail.rgantd.ru

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] postgresql 8.1.8 и  трабл с ILIKE
  2008-06-05 10:36 [Comm] postgresql 8.1.8 и трабл с ILIKE Anatoliy Lisjutin
@ 2008-06-05 10:55 ` Anatoliy Lisjutin
  2008-06-05 12:26   ` Michael Bochkaryov
  0 siblings, 1 reply; 14+ messages in thread
From: Anatoliy Lisjutin @ 2008-06-05 10:55 UTC (permalink / raw)
  To: ALT Linux Community general discussions

В сообщении от 5 июня 2008 Anatoliy Lisjutin написал(a):
>
> Помогите люди добрые!
> Это база http://rgantd.ru/grad/index.html , сами убедитесь.
Я там и весь запрос на echo вывел. Так что все видно.


-- 
With my best regards to you !!
http://rusarchives.ru http://rgantd.ru http://victory.rusarchives.ru
SilverFox@mail.rgantd.ru

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] postgresql 8.1.8 и  трабл с ILIKE
  2008-06-05 10:55 ` Anatoliy Lisjutin
@ 2008-06-05 12:26   ` Michael Bochkaryov
  2008-06-06  7:37     ` Anatoliy Lisjutin
  0 siblings, 1 reply; 14+ messages in thread
From: Michael Bochkaryov @ 2008-06-05 12:26 UTC (permalink / raw)
  To: ALT Linux Community general discussions

Anatoliy Lisjutin пишет:
> В сообщении от 5 июня 2008 Anatoliy Lisjutin написал(a):
>> Помогите люди добрые!
>> Это база http://rgantd.ru/grad/index.html , сами убедитесь.
> Я там и весь запрос на echo вывел. Так что все видно.

1. Какая кодировка установлена для базы?
Посмотреть можно в psql командой \l.

2. Какая локаль установлена для кластера БД?
grep -i lc_ /var/lib/pgsql/data/postgresql.conf

Подозреваю, что в несовпадении этих параметров все дело.

Ну, или клиент заявляет одну кодировку, а использует другую.


-- 
Michael Bochkaryov


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] postgresql 8.1.8 и  трабл с ILIKE
  2008-06-05 12:26   ` Michael Bochkaryov
@ 2008-06-06  7:37     ` Anatoliy Lisjutin
  2008-06-06  8:02       ` Anatoliy Lisjutin
  0 siblings, 1 reply; 14+ messages in thread
From: Anatoliy Lisjutin @ 2008-06-06  7:37 UTC (permalink / raw)
  To: ALT Linux Community general discussions

В сообщении от 5 июня 2008 Michael Bochkaryov написал(a):
> Anatoliy Lisjutin пишет:
> > В сообщении от 5 июня 2008 Anatoliy Lisjutin написал(a):
> >> Помогите люди добрые!
> >> Это база http://rgantd.ru/grad/index.html , сами убедитесь.
> >
> > Я там и весь запрос на echo вывел. Так что все видно.
>
> 1. Какая кодировка установлена для базы?
> Посмотреть можно в psql командой \l.
sfox=# \l
        List of databases
   Name    |  Owner   | Encoding
-----------+----------+----------
 grad      | sfox     | WIN1251
 postgres  | postgres | UTF8
 sfox      | postgres | UTF8
 template0 | postgres | UTF8
 template1 | postgres | UTF8

>
> 2. Какая локаль установлена для кластера БД?
> grep -i lc_ /var/lib/pgsql/data/postgresql.conf
# grep -i lc_ /var/lib/pgsql/data/postgresql.conf
lc_messages = 'ru_RU.UTF-8'                     # locale for system error 
message
lc_monetary = 'ru_RU.UTF-8'                     # locale for monetary 
formatting
lc_numeric = 'ru_RU.UTF-8'                      # locale for number 
formatting
lc_time = 'ru_RU.UTF-8'                         # locale for time 
formatting
>
> Подозреваю, что в несовпадении этих параметров все дело.
Вы правы . Это так.    А для конкретной базы grad  я не могу все эти lc_ 
проставить? Из psql я их всех пытался устанавливать , но они  глобально 
для всеех баз из конфига ставятся ? А только для одной базы можно? По show 
all tot некоторые lc_ видятся. Пытался их переставлять в WIN1251 , потом 
посмотрю - опять UTF.

>
> Ну, или клиент заявляет одну кодировку, а использует другую.



-- 
With my best regards to you !!
http://rusarchives.ru http://rgantd.ru http://victory.rusarchives.ru
SilverFox@mail.rgantd.ru

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] postgresql 8.1.8 и  трабл с ILIKE
  2008-06-06  7:37     ` Anatoliy Lisjutin
@ 2008-06-06  8:02       ` Anatoliy Lisjutin
  2008-06-06  8:11         ` Anatoliy Lisjutin
  0 siblings, 1 reply; 14+ messages in thread
From: Anatoliy Lisjutin @ 2008-06-06  8:02 UTC (permalink / raw)
  To: ALT Linux Community general discussions

В сообщении от 6 июня 2008 Anatoliy Lisjutin написал(a):
> В сообщении от 5 июня 2008 Michael Bochkaryov написал(a):
> > Anatoliy Lisjutin пишет:
> > > В сообщении от 5 июня 2008 Anatoliy Lisjutin написал(a):
> > >> Помогите люди добрые!
> > >> Это база http://rgantd.ru/grad/index.html , сами убедитесь.
> > >
> > > Я там и весь запрос на echo вывел. Так что все видно.
> >
> > 1. Какая кодировка установлена для базы?
> > Посмотреть можно в psql командой \l.
>
> sfox=# \l
>         List of databases
>    Name    |  Owner   | Encoding
> -----------+----------+----------
>  grad      | sfox     | WIN1251
>  postgres  | postgres | UTF8
>  sfox      | postgres | UTF8
>  template0 | postgres | UTF8
>  template1 | postgres | UTF8
>
> > 2. Какая локаль установлена для кластера БД?
> > grep -i lc_ /var/lib/pgsql/data/postgresql.conf
>
> # grep -i lc_ /var/lib/pgsql/data/postgresql.conf
> lc_messages = 'ru_RU.UTF-8'                     # locale for system
> error message
> lc_monetary = 'ru_RU.UTF-8'                     # locale for monetary
> formatting
> lc_numeric = 'ru_RU.UTF-8'                      # locale for number
> formatting
> lc_time = 'ru_RU.UTF-8'                         # locale for time
> formatting
>
> > Подозреваю, что в несовпадении этих параметров все дело.
>
> Вы правы . Это так.    А для конкретной базы grad  я не могу все эти lc_
> проставить? Из psql я их всех пытался устанавливать , но они  глобально
> для всеех баз из конфига ставятся ? А только для одной базы можно? По
> show all tot некоторые lc_ видятся. Пытался их переставлять в WIN1251 ,
> потом посмотрю - опять UTF.
>
> > Ну, или клиент заявляет одну кодировку, а использует другую.

В конфиге  исправил, postgresql перезапустил , но что-то результата нет. 
По show all видится lc_ctype и она все одно в UTF.
\set  lc_ctype "ru_RU.CP2151" ; ничего не дал . Она все равно в UTF;

-- 
With my best regards to you !!
http://rusarchives.ru http://rgantd.ru http://victory.rusarchives.ru
SilverFox@mail.rgantd.ru

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] postgresql 8.1.8 и  трабл с ILIKE
  2008-06-06  8:02       ` Anatoliy Lisjutin
@ 2008-06-06  8:11         ` Anatoliy Lisjutin
  2008-06-06  9:27           ` Alex Gorbachenko
  0 siblings, 1 reply; 14+ messages in thread
From: Anatoliy Lisjutin @ 2008-06-06  8:11 UTC (permalink / raw)
  To: ALT Linux Community general discussions

В сообщении от 6 июня 2008 Anatoliy Lisjutin написал(a):
> По show all видится lc_ctype и она все одно в UTF.
> \set  lc_ctype "ru_RU.CP2151" ; ничего не дал . Она все равно в UTF;
Попытался вставить в конфиг lc_ctype, так выдало при рестарте
Adjusting environment for postgresql:                                   [ 
DONE ]
Starting postmaster service: FATAL:  parameter "lc_ctype" cannot be changed

-- 
With my best regards to you !!
http://rusarchives.ru http://rgantd.ru http://victory.rusarchives.ru
SilverFox@mail.rgantd.ru

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] postgresql 8.1.8 и  трабл с  ILIKE
  2008-06-06  8:11         ` Anatoliy Lisjutin
@ 2008-06-06  9:27           ` Alex Gorbachenko
  2008-06-06  9:48             ` Anatoliy Lisjutin
  0 siblings, 1 reply; 14+ messages in thread
From: Alex Gorbachenko @ 2008-06-06  9:27 UTC (permalink / raw)
  To: community

[-- Attachment #1: Type: text/plain, Size: 408 bytes --]

On Fri, 6 Jun 2008 12:11:05 +0400
Anatoliy wrote:

>Попытался вставить в конфиг lc_ctype, так выдало при рестарте
>Adjusting environment for
>postgresql:                                   [ DONE ]
>Starting postmaster service: FATAL:  parameter "lc_ctype" cannot be
>changed

эти вещи не меняются через конфиг. кодировку кластера можно задать
только при initdb.

-- 
np: Dream Theater - Voices

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] postgresql 8.1.8 и  трабл с ILIKE
  2008-06-06  9:27           ` Alex Gorbachenko
@ 2008-06-06  9:48             ` Anatoliy Lisjutin
  2008-06-06 11:22               ` Alex Gorbachenko
  0 siblings, 1 reply; 14+ messages in thread
From: Anatoliy Lisjutin @ 2008-06-06  9:48 UTC (permalink / raw)
  To: ALT Linux Community general discussions

В сообщении от 6 июня 2008 Alex Gorbachenko написал(a):
> On Fri, 6 Jun 2008 12:11:05 +0400
>
> Anatoliy wrote:
> >Попытался вставить в конфиг lc_ctype, так выдало при рестарте
> >Adjusting environment for
> >postgresql:                                   [ DONE ]
> >Starting postmaster service: FATAL:  parameter "lc_ctype" cannot be
> >changed
>
> эти вещи не меняются через конфиг. кодировку кластера можно задать
> только при initdb.
То есть все базы  тоже должны быть в одной кодировке?
Если нет , то какие параметры можно для конкретной базы изменять?
Ну кодировку клиента можно же менять? А кодировку базы отличать от 
кодировки при инсталации нельзя? Раньше, вроде, было можно. Все в кои8 
было , а эта база в WIN1251 работала и не тужила.


-- 
With my best regards to you !!
http://rusarchives.ru http://rgantd.ru http://victory.rusarchives.ru
SilverFox@mail.rgantd.ru

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] postgresql 8.1.8 и  трабл с  ILIKE
  2008-06-06  9:48             ` Anatoliy Lisjutin
@ 2008-06-06 11:22               ` Alex Gorbachenko
  2008-06-06 13:30                 ` Michael Bochkaryov
  2008-06-11  9:04                 ` Anatoliy Lisjutin
  0 siblings, 2 replies; 14+ messages in thread
From: Alex Gorbachenko @ 2008-06-06 11:22 UTC (permalink / raw)
  To: community

[-- Attachment #1: Type: text/plain, Size: 876 bytes --]

On Fri, 6 Jun 2008 13:48:38 +0400
Anatoliy wrote:

>То есть все базы  тоже должны быть в одной кодировке?
>Если нет , то какие параметры можно для конкретной базы изменять?
>Ну кодировку клиента можно же менять? А кодировку базы отличать от 
>кодировки при инсталации нельзя? Раньше, вроде, было можно. Все в кои8 
>было , а эта база в WIN1251 работала и не тужила.

если initdb создал кластер в koi8-r, то базы будут работать в любой
кодировке, отличной от koi-8r. но некоторые операции будут вылполняться
некорректно. например, order by по char() или text() полям. like/ilike
тоже попадают в число "некоторых".

в вашем случае все базы нужно держать в utf8, а для тех, которым нужны
другие кодировки для хранения данных, выделять другие серверы. и на
этих серверах инициализировать кластер в нужной однобайтной кодировке.

-- 
np: Dream Theater - Voices

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] postgresql 8.1.8 и  трабл с  ILIKE
  2008-06-06 11:22               ` Alex Gorbachenko
@ 2008-06-06 13:30                 ` Michael Bochkaryov
  2008-06-09  4:24                   ` Alexey Novikov
  2008-06-10 10:33                   ` Anatoliy Lisjutin
  2008-06-11  9:04                 ` Anatoliy Lisjutin
  1 sibling, 2 replies; 14+ messages in thread
From: Michael Bochkaryov @ 2008-06-06 13:30 UTC (permalink / raw)
  To: ALT Linux Community general discussions

Alex Gorbachenko пишет:
> On Fri, 6 Jun 2008 13:48:38 +0400
> Anatoliy wrote:
> 
>> То есть все базы  тоже должны быть в одной кодировке?
>> Если нет , то какие параметры можно для конкретной базы изменять?
>> Ну кодировку клиента можно же менять? А кодировку базы отличать от 
>> кодировки при инсталации нельзя? Раньше, вроде, было можно. Все в кои8 
>> было , а эта база в WIN1251 работала и не тужила.
> 
> если initdb создал кластер в koi8-r, то базы будут работать в любой
> кодировке, отличной от koi-8r. но некоторые операции будут вылполняться
> некорректно. например, order by по char() или text() полям. like/ilike
> тоже попадают в число "некоторых".

В принципе, можно еще использовать функции из подключаемой библиотеки 
nls_strings, но я даже не уверен, что под 8.3 она успешно соберется.

Когда-то мне пришлось воспользоваться этой либой, чтобы работать с БД, 
которую в кодировке, отличной от дефолтной, создали.

> в вашем случае все базы нужно держать в utf8, а для тех, которым нужны
> другие кодировки для хранения данных, выделять другие серверы. и на
> этих серверах инициализировать кластер в нужной однобайтной кодировке.

От себя добавлю, что клиентское приложение может вполне нормально 
работать в WIN1251, если после коннекта скомандовать "set 
client_encoding to 'WIN1251'".


-- 
Michael Bochkaryov


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] postgresql 8.1.8 и  трабл с ILIKE
  2008-06-06 13:30                 ` Michael Bochkaryov
@ 2008-06-09  4:24                   ` Alexey Novikov
  2008-06-10 11:05                     ` Anatoliy Lisjutin
  2008-06-10 10:33                   ` Anatoliy Lisjutin
  1 sibling, 1 reply; 14+ messages in thread
From: Alexey Novikov @ 2008-06-09  4:24 UTC (permalink / raw)
  To: ALT Linux Community general discussions

On Fri, Jun 06, 2008 at 04:30:08PM +0300, Michael Bochkaryov wrote:
> 
> От себя добавлю, что клиентское 
> приложение может вполне нормально 
> работать в WIN1251, если после коннекта 
> скомандовать "set client_encoding to 'WIN1251'".
> 
Также будет нормально работать, если на стороне клиента выставить
PGCLIENTENCODING=WIN1251

-- 
WBR, Alexey Novikov
XMPP: alex-novikov@jabber.ru, shader@ya.ru


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] postgresql 8.1.8 и  трабл с ILIKE
  2008-06-06 13:30                 ` Michael Bochkaryov
  2008-06-09  4:24                   ` Alexey Novikov
@ 2008-06-10 10:33                   ` Anatoliy Lisjutin
  1 sibling, 0 replies; 14+ messages in thread
From: Anatoliy Lisjutin @ 2008-06-10 10:33 UTC (permalink / raw)
  To: ALT Linux Community general discussions

В сообщении от 6 июня 2008 Michael Bochkaryov написал(a):
> Alex Gorbachenko пишет:
> > On Fri, 6 Jun 2008 13:48:38 +0400
> >

> От себя добавлю, что клиентское приложение может вполне нормально
> работать в WIN1251, если после коннекта скомандовать "set
> client_encoding to 'WIN1251'".

Это мной как раз делается в скрипте подключения к базе.

-- 
With my best regards to you !!
http://rusarchives.ru http://rgantd.ru http://victory.rusarchives.ru
SilverFox@mail.rgantd.ru

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] postgresql 8.1.8 и  трабл с ILIKE
  2008-06-09  4:24                   ` Alexey Novikov
@ 2008-06-10 11:05                     ` Anatoliy Lisjutin
  0 siblings, 0 replies; 14+ messages in thread
From: Anatoliy Lisjutin @ 2008-06-10 11:05 UTC (permalink / raw)
  To: ALT Linux Community general discussions

В сообщении от 9 июня 2008 Alexey Novikov написал(a):
> On Fri, Jun 06, 2008 at 04:30:08PM +0300, Michael Bochkaryov wrote:
> > От себя добавлю, что клиентское
> > приложение может вполне нормально
> > работать в WIN1251, если после коннекта
> > скомандовать "set client_encoding to 'WIN1251'".
>
> Также будет нормально работать, если на стороне клиента выставить
> PGCLIENTENCODING=WIN1251
Делается set client_encoding to 'WIN1251'. Но не работает. Раньше работало. 
А в новой, видимо, только так как написал   Alex Gorbachenko. 
Переинициализировать с однобайтовой кодироовкой. Или дамп перекодировать в 
UTF-8 , но могут начаться проблемы , там длины имен таблиц и колонок   
может не хватить для моих имен, а они на русском и длинные. Не знаю как 
сейчас , а было когда я интересовался перекодировкой всего 15 байт что ли 
под имя. Короче была у меня идея и раньше дамп перекодировать, база старая 
и каждый раз при перетаскивании какие-нибуть траблы.

-- 
With my best regards to you !!
http://rusarchives.ru http://rgantd.ru http://victory.rusarchives.ru
SilverFox@mail.rgantd.ru

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] postgresql 8.1.8 и  трабл с ILIKE
  2008-06-06 11:22               ` Alex Gorbachenko
  2008-06-06 13:30                 ` Michael Bochkaryov
@ 2008-06-11  9:04                 ` Anatoliy Lisjutin
  1 sibling, 0 replies; 14+ messages in thread
From: Anatoliy Lisjutin @ 2008-06-11  9:04 UTC (permalink / raw)
  To: ALT Linux Community general discussions

В сообщении от 6 июня 2008 Alex Gorbachenko написал(a):
> On Fri, 6 Jun 2008 13:48:38 +0400
>
> Anatoliy wrote:
> >То есть все базы  тоже должны быть в одной кодировке?
> >Если нет , то какие параметры можно для конкретной базы изменять?
> >Ну кодировку клиента можно же менять? А кодировку базы отличать от
> >кодировки при инсталации нельзя? Раньше, вроде, было можно. Все в кои8
> >было , а эта база в WIN1251 работала и не тужила.
>
> если initdb создал кластер в koi8-r, то базы будут работать в любой
> кодировке, отличной от koi-8r. но некоторые операции будут вылполняться
> некорректно. например, order by по char() или text() полям. like/ilike
> тоже попадают в число "некоторых".
>
> в вашем случае все базы нужно держать в utf8, а для тех, которым нужны
> другие кодировки для хранения данных, выделять другие серверы. и на
> этих серверах инициализировать кластер в нужной однобайтной кодировке.

Я сделал проще . Поскольку в базе все заглавными буквами прописано то 
записал в хелп к базе типа искать только заглавными буквами (включить 
CapsLock) и выделил цветом. 

Всем высказавшимся огромное СПАСИБО!

-- 
With my best regards to you !!
http://rusarchives.ru http://rgantd.ru http://victory.rusarchives.ru
SilverFox@mail.rgantd.ru

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2008-06-11  9:04 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-06-05 10:36 [Comm] postgresql 8.1.8 и трабл с ILIKE Anatoliy Lisjutin
2008-06-05 10:55 ` Anatoliy Lisjutin
2008-06-05 12:26   ` Michael Bochkaryov
2008-06-06  7:37     ` Anatoliy Lisjutin
2008-06-06  8:02       ` Anatoliy Lisjutin
2008-06-06  8:11         ` Anatoliy Lisjutin
2008-06-06  9:27           ` Alex Gorbachenko
2008-06-06  9:48             ` Anatoliy Lisjutin
2008-06-06 11:22               ` Alex Gorbachenko
2008-06-06 13:30                 ` Michael Bochkaryov
2008-06-09  4:24                   ` Alexey Novikov
2008-06-10 11:05                     ` Anatoliy Lisjutin
2008-06-10 10:33                   ` Anatoliy Lisjutin
2008-06-11  9:04                 ` Anatoliy Lisjutin

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git