-
Notifications
You must be signed in to change notification settings - Fork 19
Open
Description
关于方言规则列表中没有pg的问题
translate.py
中一共有三种转换方式,第一种便是sqlglot提供的转换方式,正如这个官方文件https://github.com/tobymao/sqlglot/blob/main/sqlglot/dialects/__init__.py,里面所示,也定义了一个列表,是为了判断方言在不在列表中,进而去正确使用sqlglot方法
为了和官方sqlglot的方言列表完全一致,这里不是选择加入“pg”
,因为原来的列表中已经存在“postgres”
,甚至还有多余的“postgresql”
修改如下:在utils/constants.py
中加入一个映射DIALECT_ABBREVIATIONS
来临时转换,并删除原来DIALECT_LIST_RULE
列表中冗余的的“postgresql”
对应的translate.py
中也需要做对应的修改,即用临时转换映射去暂时把pg变换一下,且不影响后面的其他两种方言转换方式
关于使用rule_rewrite
的情况
我认为原来代码translate.py
下图的这个地方或许有些错误?应该是源方言和目的方言都在方言规则列表中,才会进行rule_rewrite
,修改为如上图所示的and
运算符
最后运行结果如下所示,没有问题
Metadata
Metadata
Assignees
Labels
No labels