Существуют ли какие-либо библиотеки с открытым исходным кодом (любой язык, предпочтительно python / PHP), которые будут разбивать / анализировать строку SQL ANSI в ее различных компонентах?
То есть, если бы у меня была следующая строка
SELECT a.foo, b.baz, a.bar
FROM TABLE_A a
LEFT JOIN TABLE_B b
ON a.id = b.id
WHERE baz = 'snafu';
Я бы вернул структуру данных / объект, похожий на
//fake PHPish
$results['select-columns'] = Array[a.foo,b.baz,a.bar];
$results['tables'] = Array[TABLE_A,TABLE_B];
$results['table-aliases'] = Array[a=>TABLE_A, b=>TABLE_B];
//etc...
Повторно, я ищу код в пакете базы данных, который дразнит команду SQL, чтобы механизм знал, что с ней делать. Поиск в Интернете приводит к большому количеству результатов о том, как анализировать строку с помощью SQL. Это не то, что я хочу.
Я понимаю, что могу пролистать код базы данных с открытым исходным кодом, чтобы найти то, что хочу, но я надеялся на что-то более готовое (хотя, если вы знаете , где в MySQL, PostgreSQL, SQLite источник, чтобы посмотреть, не стесняйтесь передать его)
Спасибо!