Требуется ли цитата в анализаторе кальцита sql? - PullRequest
0 голосов
/ 24 февраля 2020

Из конфига есть несколько опций, \", [ et c.

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

select * from a.b?

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

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

, и это немного раздражает.

1 Ответ

0 голосов
/ 24 февраля 2020

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

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

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