0

我想使用 Calcite 修改 SQL 查询。例如

SELECT values FROM data

SELECT values as v FROM data

我可以使用 SqlVisiter 实现访问选择标识符的 SqlNode。

public Object visit(SqlCall sqlCall) {
    SqlNodeList selectList = ((SqlSelect) sqlCall).getSelectList();
    for (SqlNode sqlNode : selectList) {
        System.out.println(sqlNode.toString());
    }

现在我应该怎么做才能更新 SqlNode?

4

1 回答 1

1

在这种情况下,选择列表中的SqlNode对象将是 的实例SqlIdentifier。所以你必须转换sqlNode为 aSqlIdentifier然后你可以调用.setName(0, "NEW_NAME"). 在此之后,您调用unparse原始根节点以获取新查询。

于 2018-11-04T22:07:17.807 回答