简单三步为Calcite的SqlParser增加配置

本文介绍了如何为Calcite的SqlParser添加自定义配置,包括定义接口方法、实现接口方法以及在解析过程中使用配置。以设置identifier最大长度为例,详细阐述了在Parser.jj、SqlAbstractParserImpl和配置获取与更新的步骤。注意,从1.26版本开始,Calcite使用ImmutableBeans进行注入,而ConfigBuilder将在2.0版本中移除。
摘要由CSDN通过智能技术生成

前言

Calcite使用JavaCC进行Parse,有着自己独特的parse语法。如果想对其进行修改,而又不影响原生的语法,通常会加一个配置参数——参数关闭的时候保持Calcite原生的Parse逻辑,开启后用自己写的逻辑。
下面总结了增加配置的几个步骤

步骤

以配置identifier的长度为例子,来看看应该怎么修改

定义接口方法

setIdentifierMaxLength可以配置最大的长度,自己新增的配置项也可以在这里添加一个set方法
在这里插入图片描述

实现接口方法

方法的实现定义在Parser.jj的解析器类,${parser.class}只是模版,SqlAbstractParserImpl有三个实现:SqlParserImpl、SqlDdlParserImpl、SqlBabelParserImpl(都是JavaCC根据模版生成的)
在这里插入图片描述
需要实现SqlAbstractParserImpl定义的setIdentifierMaxLength方法,identifierMaxLength已经在上图的中声明了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值