Спасибо вам за это видео! Ещё столкнулся с проблемой, что если создавать дополнительный столбец под индекс ALTER TABLE mail_messages ADD search_vector tsvector GENERATED ALWAYS AS ( to_tsvector('english',subject) || to_tsvector('english',body_plain) ) STORED; Если не прописать 'english' в to_tsvector(), то выдаётся ошибка не иммутабельности данных, почему так происходит, не понятно
@PostgresProfessional
3 жыл бұрын
Рады, что материал оказался полезен! Дело в том, что вариант функции to_tsvector без явного указания конфигурации (english в вашем случае) зависит от значения параметра default_text_search_config. Представьте себе, что у вас в таблице уже есть строки, для которых GENERATED ALWAYS сгенерировал значения, и тут вы поменяете параметр - все созданные ранее значения станут неправильными. Именно поэтому нельзя использовать такую функцию в GENERATE ALWAYS, нельзя создавать индекс по выражению, содержащему такую функцию и т. п. Это свойство называется категорией изменчивости: postgrespro.ru/docs/postgresql/10/xfunc-volatility
Пікірлер: 3
Спасибо вам за это видео! Ещё столкнулся с проблемой, что если создавать дополнительный столбец под индекс ALTER TABLE mail_messages ADD search_vector tsvector GENERATED ALWAYS AS ( to_tsvector('english',subject) || to_tsvector('english',body_plain) ) STORED; Если не прописать 'english' в to_tsvector(), то выдаётся ошибка не иммутабельности данных, почему так происходит, не понятно
@PostgresProfessional
3 жыл бұрын
Рады, что материал оказался полезен! Дело в том, что вариант функции to_tsvector без явного указания конфигурации (english в вашем случае) зависит от значения параметра default_text_search_config. Представьте себе, что у вас в таблице уже есть строки, для которых GENERATED ALWAYS сгенерировал значения, и тут вы поменяете параметр - все созданные ранее значения станут неправильными. Именно поэтому нельзя использовать такую функцию в GENERATE ALWAYS, нельзя создавать индекс по выражению, содержащему такую функцию и т. п. Это свойство называется категорией изменчивости: postgrespro.ru/docs/postgresql/10/xfunc-volatility
@Gard_0
3 жыл бұрын
@@PostgresProfessional спасибо за разъяснение!