我想在非关系数据存储上创建一个SQL接口。非关系数据存储,但以关系方式访问数据是有意义的。用Python解析SQL
我正在研究使用ANTLR来产生一个表示SQL作为关系代数表达式的AST。然后通过评估/行走树来返回数据。
我从来没有实现过一个解析器,因此我想就如何最好地实现SQL解析器和评估器提供一些建议。
更新:
我使用pyparsing实现了一个简单的SQL语法分析程序。结合对我的数据存储实现关系操作的Python代码,这非常简单。
正如我在其中一条评论中所说的,练习的要点是使数据可用于报告引擎。为此,我可能需要实现一个ODBC驱动程序。这可能是很多工作。
为什么对对象施加SQL限制?会得到什么? OQL有什么问题? http://en.wikipedia.org/wiki/Object_Query_Language – 2009-09-08 20:00:16
待获得:大量报告工具可以使用的查询界面。我打算在客户端上实现一个ODBC驱动程序。因此,业务用户可以使用Crystal Reports,Excel等从数据存储中获取数据。 OQL虽然可能是一种很好的查询语言(我从来没有用过),但它并不像SQL那样广泛。 – codeape 2009-09-09 11:29:19
+1两者:OO数据库最大的问题之一就是缺乏报表引擎:( – van 2009-09-19 11:43:27