Недавно попался на глаза примерно такой кусок запроса, и тут прекрасно примерно все:• множество чтений из CTE (хоть и единственной записи, но все же);• извлечение по каждому ключу текста с раскастовкой в jsonb;• извлечение каждого отдельного json-ключа в каждое отдельное одноименное поле;• "ручное" преобразование текстового представления массива в json в текстовое представление PostgreSQL.А как - правильно? Читать далее
В PostgreSQL есть "волшебный" тип индекса GiST, который позволяет быстро искать разные сложные вещи - от интервалов до массивов и даже реализовывать полнотекстовый поиск.Про его внутреннее устройство и возможности подробно рассказывал Егор Рогов, а я в статье "PostgreSQL Antipatterns: работаем с…
Статья на Хабре "PostgreSQL Antipatterns: отказ от агрегатных функций = кратное ускорение" послужила отправной точкой для данного исследования. После ее изучения возникла гипотеза о возможности значительного повышения производительности PostgreSQL через замену агрегатных функций на конструкции ARRAY. Читать далее
JSON в PostgreSQL давно перестал быть экзотикой, но работать с ним по-реляционному до сих пор приходилось не самым изящным способом: jsonb_array_elements, LATERAL, ручные касты, обработка ошибок на честном слове. В PostgreSQL 17 появился JSON_TABLE — стандартный SQL/JSON-механизм, который превращает JSON-документ в…