Существуют ли библиотеки с открытым исходным кодом (любой язык, предпочтительный для python/PHP), который будет tokenize/parse строку ANSI SQL в ее различные компоненты?Анализ или маркировка строки, содержащей команду SQL
То есть, если бы я имел следующую строку
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 отдельно, чтобы движок знал, что с ним делать. Поиск в Интернете приводит к большим результатам о том, как разбирать строку WITH SQL. Я этого не хочу.
Я понимаю, что я мог бы glop через код открытой базы данных-источника, чтобы найти то, что я хочу, но я надеялся на что-то более готовый, (хотя, если вы знаете где в MySQL, PostgreSQL, источник SQLite к смотрите, не стесняйтесь передавать его вместе)
Спасибо!
http://stackoverflow.com/questions/1394998/parsing-sql-with-python – bernie