apache-calcite - 是否可以将 Apache Calcite 标识符配置为不区分大小写?
问题描述
Calcite SQL 语言参考 ( https://calcite.apache.org/docs/reference.html ) 说明如下:
在 Calcite 中,将标识符与引用对象的名称匹配是区分大小写的。但是请记住,不带引号的标识符在匹配之前会隐式转换为大写,如果它所引用的对象是使用不带引号的标识符作为其名称创建的,那么它的名称也将被转换为大写。
是否有一些配置可以使对象创建和查询不区分大小写?例如,如果我有一个名为的表,是否countries
可以将查询验证器配置为接受标识符COUNTRIES
或countries
在 SQL 查询中接受标识符?
我尝试将以下配置SqlParser
为区分大小写false
:
Frameworks.newConfigBuilder().parserConfig(SqlParser.configBuilder().setCaseSensitive(false).build()).build()
然后将此框架配置传递给PlannerImpl
使用的 in SqlToRelConverter
,但是当我没有将标识符括在引号中以强制大小写时,SQL 验证器仍然失败。
解决方案
我相信解析器的大小写敏感性在这里无关紧要。您需要在正在使用的目录阅读器上设置区分大小写。例如,如果您使用,则需要在配置期间传入的对象上CalciteCatalogReader
设置CalciteConnectionProperty.CASE_SENSITIVE
为。true
CalciteConnectionConfig
推荐阅读
- javascript - Bootstrap v3 DateTimePicker 未在编辑视图中显示值
- c++ - 后缀评估,为什么推送函数不更新堆栈变量的顶部?
- javascript - 如何修复此导航菜单汉堡按钮?
- wpf - 当代码从主 UI 线程移动到类时,UI 组件在当前上下文中不存在
- javascript - 如何在 jQuery for is clicked 中创建 if 和 else-if 语句
- gradle - 如何让我的自定义 gradle 任务运行?
- php - 删除 PHP 扩展而不丢失数据发布
- linux-kernel - 如果内核升级与模块不兼容,有没有办法限制它?
- excel - 使用powershell将行附加到excel文件时出错
- python - 在一个功能模型中组合两个 keras 顺序模型时出错:AttributeError: 'NoneType' object has no attribute '_inbound_nodes'