У меня есть требование, чтобы в SQL запросе нужно было выполнить синтаксический анализ и обойти его, и при прохождении проанализированного запроса я должен проверить, соблюдено ли какое-либо правило, если это необходимо выполнить некоторые логи c. Есть много SQL парсеров, таких как ANTLR, General SQL Parser et c, которые действительно полезны при разборе и обходе запроса.
Однако сложность заключается в выполнении правила при обходе запроса. Правило может выглядеть примерно так: «Если у запроса есть подзапрос, а подзапрос содержит таблицу A, объединенную с таблицей B, добавить / удалить что-либо во внешнем запросе».
Выполнение действия при соблюдении правила (добавить / удалить что-либо во внешнем запросе) является второстепенным, прежде всего мы должны иметь возможность эффективно выполнять саму проверку правил.
Существуют ли какие-либо проверенные шаблоны или механизмы правил, которые полезны при определении и выполнении таких правил, как выше, на SQL Query?
Если правило не может быть действительно выражено в компактном представлении, которое можно где-то сохранить, и если оно должно быть полностью программным c, существуют ли проверенные шаблоны, структуры данных, которые полезны?
Я также думал о том, как реализованы средства проверки синтаксиса базы данных и Semanti c, оптимизаторы на основе правил, которые могут иметь аналогичную функциональность / требования?
Я пытаюсь получить некоторую перспективу.
Любая информация будет полезна.
Спасибо и С уважением,
Свати Десаи