开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC中calcite的问题,calcite 怎么配置才能支持双引号字符串字面量呀?

Flink CDC中calcite的问题,calcite 怎么配置才能支持双引号字符串字面量呀?
select * from users where username = "ming"

展开
收起
十一0204 2023-08-09 10:12:48 171 0
1 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    Flink的Calcite默认不支持双引号字符串字面量,需要在配置中添加如下规则支持:

    在配置文件中添加以下规则:
    Copy
    alter system add sql rule quotation-mark-string-literal
    AS ('STRING_LITERAL -> "\"" STRING_LITERAL_CONTENT "\""')
    说明:
    STRING_LITERAL_CONTENT 表示字符串内容,不包含双引号
    这个规则将双引号字符串识别为字符串字面量
    重启任务后生效

    也可以在代码中添加:

    java
    Copy
    List rules = ImmutableList.of(
    QuotationMarkStringLiteral.INSTANCE
    );

    RelBuilder builder = RelBuilder.create(catalog).configure(rules);
    然后使用这个builder构建逻辑查询计划
    加上这个规则后,Calcite将能正确解析并支持像"abc"这样的双引号字符串输入。

    2023-08-10 22:40:12
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载