0

Calcite を使用して SQL クエリを変更したいと考えています。例えば

SELECT values FROM data

SELECT values as v FROM data

SqlVisiter 実装を使用して、select 識別子の 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、 a にキャストするSqlIdentifier必要があり、それから を呼び出すことができます.setName(0, "NEW_NAME")。この後、元のルート ノードを呼び出しunparseて、新しいクエリを取得します。

于 2018-11-04T22:07:17.807 に答える