How pg_query rewrites, deparses & formats any valid Postgres query (PConf.dev 2026)
How pg_query rewrites, deparses & formats any valid Postgres query (PConf.dev 2026)
**Как pg_query переписывает, депарсит и форматирует любой корректный запрос Postgres (How pg_query rewrites, deparses & formats any valid Postgres query)** PGConf.dev 2026 Представлено Кейко Одой (Keiko Oda) и Лукасом Фиттлом (Lukas Fittl) на PGConf.dev 2026 (https://2026.pgconf.dev) В этом докладе мы подробно расскажем о том, как мы расширили pg_query — парсер Postgres в виде библиотеки, — чтобы включить новые варианты использования для переписывания запросов Postgres. Переписывание стало возможным благодаря двум компонентам: AST-представлению на основе Protobuf, полученному из сырых деревьев разбора Postgres, и привязкам к языкам программирования, которые предоставляют удобные функции для обхода и изменения дерева. Мы также обсудим конкретные примеры того, где это полезно, например, для преобразования некоторых OR-запросов в UNION или материализации сканирований по таблице. Вы также узнаете подробности о депарсере pg_query, который поддерживает полный спектр синтаксиса запросов Postgres (включая DDL!), и имеет опциональный режим форматирования, который может красиво выводить сгенерированный запрос. https://2026.pgconf.dev/session/648