@makondo

Как отследить преобразование полей в разветвленной цепочке запросов SQL?

Есть большое количество таблиц и большое количество SQL-вставок из одной в другую вида INSERT as SELECT.
В SELECT'ах нет звездочек, все поля перечисляются явно, но используются вьюхи, код которых тоже доступен.
В запросах есть многократно вложенные подзапросы, INNER/LEFT JOINs, CROSS JOIN, WITH, UNION ALL, но нет коррелированных подзапросов с EXISTS\IN.

Преобразования, перенос данных образуют сложное дерево , где в одну таблицу заходит поля из многих, в которые в свою очередь заливаются данные из других. итд.

Хочется написать инструмент, который отслеживал бы для конкретного поля в конечной таблице, какие поля в него пишутся из прямых таблиц-источников, и так далее , до самого начала. То есть надо провести рекурсивный парсинг или синтаксический разбор всех запросов, которые льют данные в таблицу и отследить преобразования полей, на выходе получить дерево для одного конечного поля.

Я уверен, что задача много раз вставала раньше перед другими и есть инструменты, но сходу нагуглить не получилось.
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы