问问题
1103 次
1 回答
2
这有点棘手,因为您正在处理对聚合函数的调用,而这些不是普通的表达式。请注意AggCall
,使用的RelBuilder
a 既不是 aSqlNode
也不是 a RexNode
。
因此,最简单的事情可能是将您的表达式字符串转换为有效的查询字符串。例如“ SUM(x) / SUM(y) as myRatio"
”变成“ SELECT SUM(x) / SUM(y) as myRatio FROM (VALUES (0, 0)) AS t(x, y)
”。然后解析它并将其转换为RelNode
. PlannerTest.testParseAndConvert
正是这样做的;它只使用几行代码,因此您可以从该方法复制粘贴。
于 2016-06-27T19:22:27.237 回答