Изменить идентификаторы выбора в Sql Query с помощью кальцита

Я хочу изменить запрос SQL, используя Calcite. Например

SELECT values FROM data в

SELECT values as v FROM data

Я мог получить доступ к SqlNode выбора идентификатора, используя реализацию SqlVisiter.

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

Что мне делать, чтобы обновить SqlNode?

1 ответ

SqlNode объекты в списке выбора будут экземплярами SqlIdentifier в этом случае. Так что вам придется бросить sqlNode к SqlIdentifier и тогда вы можете позвонить .setName(0, "NEW_NAME"), После этого вы звоните unparse на исходном корневом узле, чтобы получить новый запрос обратно.

Другие вопросы по тегам