From 187b98fbda5e5ab95dce1e2117b0fc26af67be03 Mon Sep 17 00:00:00 2001 From: Neal Hu Date: Thu, 7 Jun 2018 23:52:13 +0800 Subject: [PATCH 1/2] Boolean Type support. https://github.com/alibaba/canal/issues/631 --- .../canal/parse/inbound/mysql/dbsync/LogEventConvert.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/dbsync/LogEventConvert.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/dbsync/LogEventConvert.java index fe34e199..772043bb 100644 --- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/dbsync/LogEventConvert.java +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/dbsync/LogEventConvert.java @@ -634,11 +634,14 @@ public class LogEventConvert extends AbstractCanalLifeCycle implements BinlogPar // fixed issue // https://github.com/alibaba/canal/issues/66,特殊处理binary/varbinary,不能做编码处理 boolean isBinary = false; + boolean isSingleBit = false; if (fieldMeta != null) { if (StringUtils.containsIgnoreCase(fieldMeta.getColumnType(), "VARBINARY")) { isBinary = true; } else if (StringUtils.containsIgnoreCase(fieldMeta.getColumnType(), "BINARY")) { isBinary = true; + } else if (StringUtils.containsIgnoreCase(fieldMeta.getColumnType(), "tinyint(1)")) { + isSingleBit = true; } } buffer.nextValue(info.type, info.meta, isBinary); @@ -648,6 +651,9 @@ public class LogEventConvert extends AbstractCanalLifeCycle implements BinlogPar } int javaType = buffer.getJavaType(); + if (isSingleBit && javaType == Types.TINYINT) { + javaType = Types.BIT; + } if (buffer.isNull()) { columnBuilder.setIsNull(true); } else { From 4022aa8b5ab1ae3299906c140896c9f7805f42c3 Mon Sep 17 00:00:00 2001 From: Neal Hu Date: Fri, 8 Jun 2018 00:00:29 +0800 Subject: [PATCH 2/2] stopRunning in example --- .../otter/canal/example/AbstractCanalClientTest.java | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/example/src/main/java/com/alibaba/otter/canal/example/AbstractCanalClientTest.java b/example/src/main/java/com/alibaba/otter/canal/example/AbstractCanalClientTest.java index 6b30b98b..33ea6550 100644 --- a/example/src/main/java/com/alibaba/otter/canal/example/AbstractCanalClientTest.java +++ b/example/src/main/java/com/alibaba/otter/canal/example/AbstractCanalClientTest.java @@ -96,13 +96,7 @@ public class AbstractCanalClientTest { if (!running) { return; } - running = false; - if (waiting) { - if (connector instanceof ClusterCanalConnector) { - ((ClusterCanalConnector) connector).setRetryTimes(-1); - } - thread.interrupt(); - } + connector.stopRunning(); if (thread != null) { try { thread.join();