ТРЕБУЕТСЯ ли цитата в синтаксическом анализаторе кальцита sql?

Из конфига есть несколько вариантов, \", [ и т.д.

Однако может ли кальцит анализировать идентификаторы без кавычек? как

select * from a.b?

Теперь я должен написать

select * from \"a\".\"b\"

и это как-то раздражает.


person PeiSong    schedule 24.02.2020    source источник


Ответы (1)


Кавычки никогда не требуются, но вам может понадобиться изменить то, как Calcite обрабатывает регистр идентификаторов в зависимости от вашего приложения. По умолчанию идентификаторы без кавычек преобразуются в верхний регистр, а идентификаторы в кавычках остаются без изменений. Поэтому, если у вас есть идентификаторы в нижнем регистре, они должны быть заключены в кавычки по умолчанию.

Чтобы изменить это поведение, вам нужно изменить конфигурацию, которую вы передаете SqlParser, чтобы случай идентификаторов без кавычек также не изменился.

SqlParser.Config = SqlParser.configBuilder().setUnquotedCasing(Casing.Unchanged);
SqlParser parser = SqlParser.create(/* what you're parsing here */, config);
person Michael Mior    schedule 24.02.2020