Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Я в полном ауте... SELECT вместо результатов показывает год рождения Чингиз-хана...
|
|||
|---|---|---|---|
|
#18+
Я в полном ауте... SELECT вместо результатов показывает год рождения Чингиз-хана... Есть вот такие элементарные таблицы: create table parent ( pid serial8, valid varchar(8) default 'v', tstamp timestamp without time zone default now(), dbuser varchar(200) default getpgusername() ); create table posts ( pstid serial8 primary key, post varchar(200) not null ) inherits (parent); Забиваю в них данные: touch sampledata.sql insert into posts (post) values ('Генеральный директор'); insert into posts (post) values ('Системный администратор'); insert into posts (post) values ('Начальник отдела'); insert into posts (post) values ('Заместитель генерального директора'); insert into posts (post) values ('Рабочий'); insert into posts (post) values ('Менеджер'); insert into posts (post) values ('Бухгалтер'); insert into posts (post) values ('Главный бухгалтер'); sudo -u pgsql /usr/local/bin/psql mailbook < sampledata.sql B пытаюсь выполнить простые SELECT. Результат превосходит все ожидания: Добро пожаловать в psql 8.0.4 - Интерактивный Терминал PostgreSQL. mailbook=# select * from posts; LOG: statement: select * from posts; LOG: duration: 2.631 ms pid | valid | tstamp | dbuser | pstid | post -----+-------+----------------------------+--------+-------+-------------------------------------------- 2 | v | 2006-07-22 01:43:56.301282 | pgsql | 1 | Генеральный директор 3 | v | 2006-07-22 01:44:01.541886 | pgsql | 2 | Системный администратор 4 | v | 2006-07-22 01:44:07.024343 | pgsql | 3 | Начальник отдела 11 | v | 2006-07-22 01:45:13.304819 | pgsql | 4 | Заместитель генерального директора 12 | v | 2006-07-22 01:45:20.067468 | pgsql | 5 | Рабочий 13 | v | 2006-07-22 01:45:24.935647 | pgsql | 6 | Менеджер 14 | v | 2006-07-22 01:45:29.543318 | pgsql | 7 | Бухгалтер 15 | v | 2006-07-22 01:45:35.491483 | pgsql | 8 | Главный бухгалтер (записей: 8) mailbook=# select * from posts where post = 'Генеральный директор'; LOG: statement: select * from posts where post = 'Генеральный директор'; LOG: duration: 1.985 ms pid | valid | tstamp | dbuser | pstid | post -----+-------+----------------------------+--------+-------+------------------------------ 2 | v | 2006-07-22 01:43:56.301282 | pgsql | 1 | Генеральный директор (1 запись) mailbook=# select * from posts where post = 'Заместитель генерального директора'; LOG: statement: select * from posts where post = 'Заместитель генерального директора'; LOG: duration: 1.660 ms pid | valid | tstamp | dbuser | pstid | post -----+-------+--------+--------+-------+------ (записей: 0) Единственное, что удалось выясниь за целый день - эта беда не возникает, если данные загонять через pctl. Если ввожу данные в таблицу через веб-форму или в пакетном режиме через psql mailbook < file.sql Не зависти ни от кодировки, ни от пользователя, под которым работаешь. Что за беда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 17:54 |
|
||
|
Я в полном ауте... SELECT вместо результатов показывает год рождения Чингиз-хана...
|
|||
|---|---|---|---|
|
#18+
shrdluЧто за беда? Действительно, что за беда-то? Вопрос в чем? Почему записи не нашел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 19:08 |
|
||
|
Я в полном ауте... SELECT вместо результатов показывает год рождения Чингиз-хана...
|
|||
|---|---|---|---|
|
#18+
pamir shrdluЧто за беда? Действительно, что за беда-то? Вопрос в чем? Почему записи не нашел? Вот именно, почему? Точнее, почему часть записей находит, а часть нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 19:59 |
|
||
|
Я в полном ауте... SELECT вместо результатов показывает год рождения Чингиз-хана...
|
|||
|---|---|---|---|
|
#18+
Из опыта известно, что чудес не бывает. Попробуй найти запись по ID, если найдется, значит сравнивай строку, которая в базе и которую ты ставишь ограничителем. Возможно где-то лишний пробел или еще какой-то символ. Бывают засады с одинаково пишущимися русскими и английскими буквами. (Буква С меня вообще убивает - они на одной клавише). Попробуй из общей выборки скопировать текстовую строку и подставить в ограничение - найдет или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 21:16 |
|
||
|
Я в полном ауте... SELECT вместо результатов показывает год рождения Чингиз-хана...
|
|||
|---|---|---|---|
|
#18+
Да, и еще, какая кодировка в базе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 21:18 |
|
||
|
Я в полном ауте... SELECT вместо результатов показывает год рождения Чингиз-хана...
|
|||
|---|---|---|---|
|
#18+
pamirДа, и еще, какая кодировка в базе? KOI-8R Что чудес не бывает, в курсе, но до сих пор разбираюсь. По id ищет без проблем. Засада в том, что в ряде случаев надо искать как раз id по имени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 21:36 |
|
||
|
Я в полном ауте... SELECT вместо результатов показывает год рождения Чингиз-хана...
|
|||
|---|---|---|---|
|
#18+
Да, и еще, к вопросу о чудесах и возможных ошибках с лишними пробелами/совпадающими в кириллице и латинице символами. Провел вот такой эксперимент только что: mailbook=# select * from posts where post = 'Заместитель генерального директора'; LOG: statement: select * from posts where post = 'Заместитель генерального директора'; LOG: duration: 1.541 ms pid | valid | tstamp | dbuser | pstid | post -----+-------+--------+--------+-------+------ (записей: 0) Записей ноль. А теперь вызываю предыдущий select и меняю знак равенства на LIKE: mailbook=# select * from posts where post like 'Заместитель генерального директора'; LOG: statement: select * from posts where post like 'Заместитель генерального директора'; LOG: duration: 2.004 ms pid | valid | tstamp | dbuser | pstid | post -----+-------+----------------------------+---------+-------+------------------------------------ 11 | v | 2006-07-22 01:45:13.304819 | pgsql | 4 | Заместитель генерального директора (1 запись) И запись есть! Помнится, то ли в interbase то ли где-то еще был такой глюк, что для текстовых полей надо было использовать исключительно конструкции like - но postgres этим вроде не страдает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 21:52 |
|
||
|
Я в полном ауте... SELECT вместо результатов показывает год рождения Чингиз-хана...
|
|||
|---|---|---|---|
|
#18+
В качестве бреда: клиент занимаица конвертацией строки при = и не занимаица - при Like например после Set client_encoding = 'WIN1250'; и вставки, а после того Set client_encoding = 'UTF8'; и выборке "только что вставленного" - вы не найдете того, что "только что вставили". зы. поянтно, что предположение достаточно бредовое. но почему бы причине не быть где-то рядом? не столь бредовым но из того же разряда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 11:47 |
|
||
|
Я в полном ауте... SELECT вместо результатов показывает год рождения Чингиз-хана...
|
|||
|---|---|---|---|
|
#18+
Может дело в не очень хорошей поддержке постгресом koi8-r. Обновитесь до 8.1.4 зы С точки зрения конструирования бд, вынести все должности в справочник. Это было бы правильно и позволило бы поднять быстродействие и избавило бы от подобных недразумений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 12:17 |
|
||
|
Я в полном ауте... SELECT вместо результатов показывает год рождения Чингиз-хана...
|
|||
|---|---|---|---|
|
#18+
Опс. извиняйте, не вник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 12:23 |
|
||
|
Я в полном ауте... SELECT вместо результатов показывает год рождения Чингиз-хана...
|
|||
|---|---|---|---|
|
#18+
lower/upper нормально с кириллицей работают? всмысле initdb выполнена в koi8 локали или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 12:38 |
|
||
|
Я в полном ауте... SELECT вместо результатов показывает год рождения Чингиз-хана...
|
|||
|---|---|---|---|
|
#18+
Попробовал ваш пример в 8ю1ю4. Запись выбирается в обоих случаях Код: plaintext 1. У меня случались похожие проблемы, но это отдельная тема. Попытайтесь привести искомую строку к тому же типу, что и поле, т.е. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 13:25 |
|
||
|
Я в полном ауте... SELECT вместо результатов показывает год рождения Чингиз-хана...
|
|||
|---|---|---|---|
|
#18+
st_serglower/upper нормально с кириллицей работают? всмысле initdb выполнена в koi8 локали или нет? С lower/upper проблем не замечал, а вот в какой локали последний раз делалось iniddb - уже не помню, надо взять это на заметку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 14:00 |
|
||
|
Я в полном ауте... SELECT вместо результатов показывает год рождения Чингиз-хана...
|
|||
|---|---|---|---|
|
#18+
IgorNKПопробовал ваш пример в 8ю1ю4. Запись выбирается в обоих случаях Код: plaintext 1. У меня случались похожие проблемы, но это отдельная тема. Попытайтесь привести искомую строку к тому же типу, что и поле, т.е. Код: plaintext К сожалению, сейчас нет возможности обновить постгрес. Сделаю при первой возможности. За совет с приведением типов спасибо, пойду пробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 14:02 |
|
||
|
Я в полном ауте... SELECT вместо результатов показывает год рождения Чингиз-хана...
|
|||
|---|---|---|---|
|
#18+
В общем, проблема решилась. Видимо, в последний раз initdb выполнялся из под кого-то нерусского. Снес весь кластер, проинициализировал заново, теперь все ищет как миленький. Всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 15:12 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33874782&tid=2006212]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 393ms |

| 0 / 0 |
