我正在寻找一个 C/C++ SQL 解析库,它能够为我提供查询所依赖的表的名称。
我的期望:
SELECT * FROM TABLEA NATURAL JOIN TABLEB
结果:TABLEA、TABLEB
当然提供的例子非常简单。我已经编写了自己的解析器(基于 Boost.Spirit)来处理 SQL 语法的一个子集,但我需要的是一个能够处理复杂(递归等)查询的解析器。
你知道什么有用的吗?
我发现的是http://www.sqlparser.com - 它是商业的,但正是我需要的。我还深入研究了 PostgreSQL 源代码,但没有任何效果。