From 5d55c7ac00d6ba2fb46767a69a25d420e5b22c14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=83=E9=94=8B?= Date: Wed, 17 Oct 2018 15:43:26 +0800 Subject: [PATCH 1/3] fixed fastsql upgrade --- .../inbound/mysql/tsdb/FastsqlSchemaTest.java | 12 ++++++++---- .../mysql/tsdb/MemoryTableMeta_DDL_Test.java | 15 +++++++++++++++ parse/src/test/resources/ddl/ddl_test2.sql | 8 ++++++++ pom.xml | 2 +- 4 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 parse/src/test/resources/ddl/ddl_test2.sql diff --git a/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/FastsqlSchemaTest.java b/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/FastsqlSchemaTest.java index c7e25607..70eab24c 100644 --- a/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/FastsqlSchemaTest.java +++ b/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/FastsqlSchemaTest.java @@ -18,13 +18,17 @@ public class FastsqlSchemaTest { @Test public void testSimple() throws FileNotFoundException, IOException { SchemaRepository repository = new SchemaRepository(JdbcConstants.MYSQL); - String sql = "create table yushitai_test.card_record ( id bigint auto_increment) auto_increment=256 " - + "; alter table yushitai_test.card_record add column customization_id bigint unsigned NOT NULL COMMENT 'TEST' ;" - + "; rename table yushitai_test.card_record to yushitai_test._card_record_del;"; + String sql = "create table yushitai_test.card_record ( id bigint auto_increment, name varchar(32) DEFAULT NULL) auto_increment=256 " + + "alter table yushitai_test.card_record add index index_name(name) ;" + + "alter table yushitai_test.card_record add index index_name(name) ;" + + "alter table yushitai_test.card_record add Constraint pk_id PRIMARY KEY (id);" + + "alter table yushitai_test.card_record add Constraint pk_id PRIMARY KEY (id);" + + "alter table yushitai_test.card_record add Constraint UNIQUE index uk_name(name);" + + "alter table yushitai_test.card_record add Constraint UNIQUE index uk_name(name);"; repository.console(sql); repository.setDefaultSchema("yushitai_test"); - SchemaObject table = repository.findTable("_card_record_del"); + SchemaObject table = repository.findTable("card_record"); System.out.println(table.getStatement().toString()); } } diff --git a/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta_DDL_Test.java b/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta_DDL_Test.java index e3005b62..fa0999fe 100644 --- a/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta_DDL_Test.java +++ b/parse/src/test/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/MemoryTableMeta_DDL_Test.java @@ -37,4 +37,19 @@ public class MemoryTableMeta_DDL_Test { meta = memoryTableMeta.find("yushitai_test", "_card_record_gho"); Assert.assertNull(meta); } + + @Test + public void test2() throws Throwable { + MemoryTableMeta memoryTableMeta = new MemoryTableMeta(); + URL url = Thread.currentThread().getContextClassLoader().getResource("dummy.txt"); + File dummyFile = new File(url.getFile()); + File create = new File(dummyFile.getParent() + "/ddl", "ddl_test2.sql"); + String sql = StringUtils.join(IOUtils.readLines(new FileInputStream(create)), "\n"); + memoryTableMeta.apply(null, "test", sql, null); + + TableMeta meta = memoryTableMeta.find("yushitai_test", "card_record"); + System.out.println(meta); + Assert.assertEquals(meta.getFieldMetaByName("id").isKey(), true); + Assert.assertEquals(meta.getFieldMetaByName("name").isUnique(), true); + } } diff --git a/parse/src/test/resources/ddl/ddl_test2.sql b/parse/src/test/resources/ddl/ddl_test2.sql new file mode 100644 index 00000000..aaf7d286 --- /dev/null +++ b/parse/src/test/resources/ddl/ddl_test2.sql @@ -0,0 +1,8 @@ +CREATE TABLE yushitai_test.card_record ( + id bigint AUTO_INCREMENT, + name varchar(32) DEFAULT NULL, + alias varchar(32) DEFAULT NULL, + INDEX index_name(name), + CONSTRAINT pk_id PRIMARY KEY (id), + UNIQUE uk_name (name,alias) +) AUTO_INCREMENT = 256 diff --git a/pom.xml b/pom.xml index 4d74caa7..7ab33d04 100644 --- a/pom.xml +++ b/pom.xml @@ -247,7 +247,7 @@ com.alibaba.fastsql fastsql - 2.0.0_preview_617 + 2.0.0_preview_630 com.alibaba From a823b909ad53c6985fca10c3c7990fd902f9fbfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=83=E9=94=8B?= Date: Wed, 17 Oct 2018 18:35:32 +0800 Subject: [PATCH 2/3] upgrade spring version 3.2.18 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7ab33d04..dc200785 100644 --- a/pom.xml +++ b/pom.xml @@ -99,7 +99,7 @@ 1.7 1.7 UTF-8 - 3.2.9.RELEASE + 3.2.18.RELEASE From c16037122b9f4b1a3961f8b1cef4bd169b7c932e Mon Sep 17 00:00:00 2001 From: winger Date: Fri, 19 Oct 2018 10:27:50 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=80=9A=E8=BF=87`show?= =?UTF-8?q?=20master=20status`=E8=8E=B7=E5=8F=96=E5=88=B0=E5=A4=9A?= =?UTF-8?q?=E4=B8=AAGTID=20=E6=97=B6=EF=BC=8C=E5=9B=9E=E8=BD=A6=E7=AC=A6?= =?UTF-8?q?=E5=AF=BC=E8=87=B4UUID=20=E8=A7=A3=E6=9E=90=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../otter/canal/parse/driver/mysql/packets/MysqlGTIDSet.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/packets/MysqlGTIDSet.java b/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/packets/MysqlGTIDSet.java index 35872370..f5128e23 100644 --- a/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/packets/MysqlGTIDSet.java +++ b/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/packets/MysqlGTIDSet.java @@ -86,7 +86,8 @@ public class MysqlGTIDSet implements GTIDSet { if (gtidData == null || gtidData.length() < 1) { m = new HashMap(); } else { - String[] uuidStrs = gtidData.split(","); + // 存在多个GTID时会有回车符 + String[] uuidStrs = gtidData.replaceAll("\n", "").split(","); m = new HashMap(uuidStrs.length); for (int i = 0; i < uuidStrs.length; i++) { UUIDSet uuidSet = UUIDSet.parse(uuidStrs[i]);