【发布时间】:2019-03-27 19:58:51
【问题描述】:
方解石 SQL 语言参考 (https://calcite.apache.org/docs/reference.html) 说明如下:
在 Calcite 中,将标识符与引用对象的名称匹配是区分大小写的。但是请记住,不带引号的标识符在匹配之前会隐式转换为大写,如果它引用的对象是使用不带引号的标识符作为其名称创建的,那么它的名称也会被转换为大写。
是否有一些配置可以使对象创建和查询不区分大小写?例如,如果我有一个名为 countries 的表,是否可以将查询验证器配置为接受 SQL 查询中的 COUNTRIES 或 countries 标识符?
我尝试在下面将SqlParser 配置为区分大小写的false:
Frameworks.newConfigBuilder().parserConfig(SqlParser.configBuilder().setCaseSensitive(false).build()).build()
然后将此框架配置传递给SqlToRelConverter 中使用的PlannerImpl,但是当我没有将标识符括在引号中以强制大小写时,SQL 验证器仍然失败。
【问题讨论】: