We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
看楼主实现的表达式 AST 实现已经比较成熟了,是否考虑支持 SQL 这一更通用场景?
支持 SQL AST 和多种 SQL方言(PL/SQL / TSQL / SQL Standard / )将会获得更广泛的用途和用户。
The text was updated successfully, but these errors were encountered:
你好,感谢建议! 这个库的初衷是实现通用的底层算术和逻辑操作,而不囿于具体的数据结构。 至于上层的语法,我的原意是通过额外的语法解释器实现。
就 SQL 而言,如果要实现所有的关键字,那核心问题恐怕就不在于 AST,而是实现自己的数据库了。 但如果只需要用到简单的 WHERE 条件,那么倒是可以根据具体的数据表结构进行语法解释,也就是将 SQL 语句翻译成 libast 支持的字符串。
WHERE
例如,SQL 语句
SELECT * FROM Customers WHERE age >= 18 AND city='Beijing'
中的条件可以翻译为
$1 >= 18 && $2 == "Beijing"
利用这一字符串建立了布尔类型的 AST 实例以后,只需要把表 Customers 中的 age 和 city 这两列的值赋予变量 $1 与 $2 ,就可以使用 ast_eval 这一函数进行条件筛选了。
Customers
age
city
$1
$2
ast_eval
因这里的 SQL 实现依赖于具体的表结构,似乎独立于 libast,而在具体的应用场景中单独实现为宜。
Sorry, something went wrong.
貌似我们想的不一样,我的意思是:支持把 SQL 语句解析成 AST 的形式,支持遍历和重建 SQL,JavasScript 这类库很多,C 方面的库很少,所以有此想法;
明白了,你说的是对 SQL 语句进行语法解析。 因为我们的工作重点在于数值计算,所以暂时不会增加对非数学表达式的支持,只能敬谢不敏了。 不论如何,还是感谢你的建议。将来若有余力,我会重新考虑这一意见 :-)
No branches or pull requests
看楼主实现的表达式 AST 实现已经比较成熟了,是否考虑支持 SQL 这一更通用场景?
支持 SQL AST 和多种 SQL方言(PL/SQL / TSQL / SQL Standard / )将会获得更广泛的用途和用户。
The text was updated successfully, but these errors were encountered: