Как применить правила к проанализированному запросу SQL? - PullRequest
0 голосов
/ 04 апреля 2020



У меня есть требование, чтобы в SQL запросе нужно было выполнить синтаксический анализ и обойти его, и при прохождении проанализированного запроса я должен проверить, соблюдено ли какое-либо правило, если это необходимо выполнить некоторые логи c. Есть много SQL парсеров, таких как ANTLR, General SQL Parser et c, которые действительно полезны при разборе и обходе запроса.

Однако сложность заключается в выполнении правила при обходе запроса. Правило может выглядеть примерно так: «Если у запроса есть подзапрос, а подзапрос содержит таблицу A, объединенную с таблицей B, добавить / удалить что-либо во внешнем запросе».

Выполнение действия при соблюдении правила (добавить / удалить что-либо во внешнем запросе) является второстепенным, прежде всего мы должны иметь возможность эффективно выполнять саму проверку правил.

Существуют ли какие-либо проверенные шаблоны или механизмы правил, которые полезны при определении и выполнении таких правил, как выше, на SQL Query?

Если правило не может быть действительно выражено в компактном представлении, которое можно где-то сохранить, и если оно должно быть полностью программным c, существуют ли проверенные шаблоны, структуры данных, которые полезны?

Я также думал о том, как реализованы средства проверки синтаксиса базы данных и Semanti c, оптимизаторы на основе правил, которые могут иметь аналогичную функциональность / требования?

Я пытаюсь получить некоторую перспективу.

Любая информация будет полезна.




Спасибо и С уважением,
Свати Десаи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...