klink0v (klink0v) wrote,
klink0v
klink0v

Category:

Редкий баг в PostgreSQL (на самом деле нет)

... Перетащили в бинарном виде базу данных PostgreSQL 12 с RHEL 7.7 на Ubuntu 20.04 LTS. На первый взгляд всё завелось без проблем. А вот на второй... приходит ко мне удивлённый разработчик и показывает:

SELECT id,client_id FROM блаблабла WHERE client_id = 'Abrakadabra';
 id | client_id
----+-----------
(0 rows)

но при этом

SELECT id,client_id FROM блаблабла WHERE client_id like '%Abrakadabra';
 id  |  client_id   
-----+--------------
 123 | Abrakadabra
(1 row)

Долго думали. Потом разработчик на всякий случай решил сделать REINDEX. Как ни странно, помогло. Ну и я в чатик "https://t.me/pgsql" с криком "Нафа-а-а-аня!". Там мне быстро ответили. Говорят, да, есть такая багофича. Проявляется крайне редко, поэтому во всяких там change log-ах и прочих мануалах её нет. Преимущественно репортят подобное те, кто сидят на красной шапке и её клонах. После обновления glibc (откуда Postgres берёт локали) что-то ломается в индексах, если в них задействованы текстовые поля. Поэтому их нужно ручками перестраивать после подобного обновления glibc. Что мы, собственно, и сделали.

М-дя. "Редкие грабли". Но я не мог на них не наступить!

Tags: sql, баги, трудовыебудни
Subscribe

  • ОколоITшный дыбр #23

    ... Есть такое замечательное упражнение с bash quoting. Когда тебе хочется выполнить какую-нибудь цепочку команд в шелле из-под sudo на удаленной…

  • ОколоITшный дыбр #22

    ... Строили очередной IPSec-тоннель с очередным контрагентом из бывшей союзной республики. И вот ведь какая засада. Когда при IKE-обмене его сторона…

  • Багофича с recovery_min_apply_delay (PostgreSQL)

    Допустим, мы хотим иметь так называемый "запаздывающий slave" PostgreSQL в качестве одной из степеней защиты от человеческого фактора…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 5 comments