-
Notifications
You must be signed in to change notification settings - Fork 7.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: v1.1.5-snapshot rdb-adapter 由关键字引起的异常 (#3026 #2783) #3020
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
解决过程
目前选的第二种方案,主要考虑不同数据库标识符不同,出现了未知的数据库也可以自行配置
新增配置