It is not supposed to work for Quoting.SINGLE. I don’t know any SQL dialect where identifiers (table and column names and such) are enclosed in single quotes (apostrophes) so why should we support that?
Julian > On Jun 2, 2024, at 3:59 PM, Yogendra Sharma <s...@live.com> wrote: > > Hello, > > I am using Calcite 1.36; and I stumbled upon an issue and seeking some > explanation on the code below in Calcite: > > While instantiating SqlParser, the constructor has following line: > > parser.switchTo(SqlAbstractParserImpl.LexicalState.forConfig(config)); > > Essentially it tries to acquire an initial lexical state. However the code > written inside LexicalState does not handle all the possible values of > Quoting. For instance, it does not handle Quoting.SINGLE_QUOTE which results > in assertion error from below code. > > > /** Returns the corresponding parser state with the given configuration > * (in particular, quoting style). */ > public static LexicalState forConfig(SqlParser.Config config) { > switch (config.quoting()) { > case BRACKET: > return DEFAULT; > case DOUBLE_QUOTE: > return DQID; > case BACK_TICK_BACKSLASH: > return BQID; > case BACK_TICK: > if (config.conformance().allowHyphenInUnquotedTableName() > && config.charLiteralStyles().equals( > EnumSet.of(CharLiteralStyle.BQ_SINGLE, > CharLiteralStyle.BQ_DOUBLE))) { > return BQID; > } > if (!config.conformance().allowHyphenInUnquotedTableName() > && config.charLiteralStyles().equals( > EnumSet.of(CharLiteralStyle.STANDARD))) { > return BTID; > } > // fall through > default: > throw new AssertionError(config); > } > } > } > > So how is it supposed to work for Quoting values other than specified in > above switch case? > > I am sure I am missing something basic here. Please help. > > Thanks, > Yogi > > >