fix: v1.1.5-snapshot rdb-adapter 由关键字引起的异常 (#3026 #2783)#3020
fix: v1.1.5-snapshot rdb-adapter 由关键字引起的异常 (#3026 #2783)#3020XuDaojie wants to merge 6 commits intoalibaba:masterfrom
Conversation
Codecov Report
@@ Coverage Diff @@
## master #3020 +/- ##
===========================================
+ Coverage 4.76% 4.81% +0.04%
Complexity 239 239
===========================================
Files 392 396 +4
Lines 35709 35717 +8
Branches 5562 5555 -7
===========================================
+ Hits 1702 1720 +18
+ Misses 33758 33746 -12
- Partials 249 251 +2
Continue to review full report at Codecov.
|
|
这种写法不兼容postgresql |
- 或名字和关键字相同时抛异常(#3019)|
还有一处忘记修改了哦。 |
这里不是忘了,就是特意没改,通过调整配置处理的,以postgres为例
|
第二种情况我认为应该使用targetDb和targetTable两个配置项来配置,这样表名带点号的也可以进行处理了。 题外话: |
你说的那个是可以那样处理,我也是习惯两个分开配置,这本来是可选项,但是代码里这样处理的话就变成必选项了 目前没遇到 |
adapter的配置重载都有问题,application时改了就无限重启,rdb映射文件改了要重启才能生效,后面那个找到原因了,第一个还没找到 |
|
麻烦重新提交一个PR,代码有冲突 |
# Conflicts: # client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/support/SyncUtil.java
已重新提交PR。 |
|
你好,我按你的分支改了源码重新编译后,adapter起不来,报这个错,能帮忙看下吗? |
应该是 |
|
谢谢,就像你所说的,然后我按最新的1.1.5的模板来配置就可以了👍 |
|
hello,我升级到最新的版本用了你的分支,运行一段时间没什么问题,就是在canal重启的时候会丢数据,这个版本不能够断点重连吗? |
我这是没问题的,用zk存储的进度。 |
|
我引用的是canal.instance.global.spring.xml = classpath:spring/file-instance.xml这个配置,meta.dat在运行时记录消费位点信息,每次停止adapter,meta.dat的内容就变成了{"clientDatas":[],"destination":"example"}了,你知道为什么吗? |
|
其他PR提交已经支持,#3984 |
fix #3026
fix #2783
问题描述
当库名或表名包含关键字或 - 时抛异常 #3019 问题已关闭,第一个commit原本是解决这个问题的,后面发现可以通过调整配置解决postgres:12.4升级驱动为42.2.16此pull request最初是想解决当库名或表名包含关键字或 - 时抛异常 #3019,后经@yansheng105 提醒这种实现不能兼容postgres,查看文档后发现rdb-adapter原本设计的是支持多种rdb数据库,#2358中兼容了mysql关键字后导致rdb-adapter只能兼容MySQL
解决过程
目前选的第二种方案,主要考虑不同数据库标识符不同,出现了未知的数据库也可以自行配置
新增配置