сам postgres использует для парсинга текста запросов в синтаксическое дерево? Если нет, то насколько сложно будет в коде выделить эту часть и сделать такую библиотеку? Давно хотел как-нибудь поконтрибьютить, отдать долг сообществу, так сказать, но для начала хотел бы удостовериться, что цель реализуема.
Такое тут уже спрашивали, поищите в истории чата (там и что-то находили, и давали ссылки разной степени "свежести"). Вкратце: 1) в самом проекте такого нет 2) некоторые другие проекты экспортируют, адаптируют и используют этот код 3) а некоторые используют свои (альтернативные) реализации.
2 и 3 я смотрел и понимаю о чем вы говорите. Меня больше 1 интересует. В проекте нет, это я понял. Насколько сложно это в проект добавить? Я-то готов этим заняться, если это навскидку будет реализуемо
По моему мнению, это почти невозможно. Зачем это может быть нужно проекту PostgreSQL, какая для него в этом выгода?
По моему мнению выгода в том, что код (sql, pl/pgsql) для Postgres можно будет инструментировать. В том числе написать нормальный поддерживаемый форматер, который можно будет применять при комите кода в репозиторий. А также для того, чтобы выгрузить код из БД, отформатировать его и сравнить с тем, что лежит в репозитории. То есть, разрабатывать решения на базе Postgres станет _удобней_. Если не затруднит, не могли бы вы пояснить в двух словах, почему “почти не возможно”?
> По моему мнению выгода в том, что код (sql, pl/pgsql) для Postgres можно будет инструментировать. Нет, нельзя. Как есть, он для этого не подходит (я уже неоднократно об этом писал тут, кажется). Т.е. для этого этот код нужно усложнить, внеся в него то, что не нужно ни для одного компонента PostgreSQL (сервера / клиента / ECPG / где там ещё это используется). Т.е. в минус мы получаем увеличение сложности, возможные bugs и вполне вероятное падение производительности системы в целом. А в плюс для вышеупомянутого мы получаем... что? > А также для того, чтобы выгрузить код из БД, отформатировать его и сравнить с тем, что лежит в репозитории. И для этого уже существуют средства, в т.ч. сторонние, нет?
Понял. Тогда подумаю о других вариантах. > И для этого уже существуют средства, в т.ч. сторонние, нет? буду признателен за названия. Из тех, что я знаю инструменты мне не очень нравятся
Так Вы в истории чата искали / гуглили? А так слишком общий вопрос получается...
Да, там упоминаются те же инструменты, о которых я читал ранее и про которые я сказал, что они мне не очень нравятся. Похоже варинат с написанием с нуля парсера на базе грамматики из исходников pg самый рабочий.
Обсуждают сегодня