Справочник по языку SQL для Calcite (https://calcite.apache.org/docs/reference.html) говорит следующее:
В Calcite при сопоставлении идентификаторов с именем объекта, на который имеется ссылка, учитывается регистр. Но помните, что идентификаторы без кавычекперед сопоставлением неявно преобразуются в верхний регистр, и если объект, на который он ссылается, был создан с использованием идентификатора без кавычек для его имени, то его имя будет также преобразовано в верхний регистр.
Есть ли некоторыеконфигурация, чтобы сделать создание объекта и регистр нечувствительным к регистру? Например, если у меня есть таблица с именем countries
, можно ли настроить валидатор запроса так, чтобы он принимал идентификаторы либо COUNTRIES
, либо countries
в запросе SQL?
Я попытался настроить SqlParser
с учетом регистра false
в следующем:
Frameworks.newConfigBuilder().parserConfig(SqlParser.configBuilder().setCaseSensitive(false).build()).build()
, а затем передал эту конфигурацию фреймворка в PlannerImpl
, используемый в SqlToRelConverter
, ноВалидатор SQL по-прежнему не работает, когда я не заключаю идентификатор в кавычки для принудительного применения регистра.