使用方解石修改Sql查询中的选择标识符

时间:2018-10-31 09:02:35

标签: sql apache-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?

1 个答案:

答案 0 :(得分:0)

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