Parcourir la source

fixed issue #1046, tinyint(1) unsigned with value 255

七锋 il y a 6 ans
Parent
commit
2d930894ff

+ 4 - 3
parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/dbsync/LogEventConvert.java

@@ -671,9 +671,6 @@ public class LogEventConvert extends AbstractCanalLifeCycle implements BinlogPar
             }
             }
 
 
             int javaType = buffer.getJavaType();
             int javaType = buffer.getJavaType();
-            if (isSingleBit && javaType == Types.TINYINT) {
-                javaType = Types.BIT;
-            }
             if (buffer.isNull()) {
             if (buffer.isNull()) {
                 columnBuilder.setIsNull(true);
                 columnBuilder.setIsNull(true);
             } else {
             } else {
@@ -722,6 +719,10 @@ public class LogEventConvert extends AbstractCanalLifeCycle implements BinlogPar
                             // 对象为number类型,直接valueof即可
                             // 对象为number类型,直接valueof即可
                             columnBuilder.setValue(String.valueOf(value));
                             columnBuilder.setValue(String.valueOf(value));
                         }
                         }
+
+                        if (isSingleBit && javaType == Types.TINYINT) {
+                            javaType = Types.BIT;
+                        }
                         break;
                         break;
                     case Types.REAL: // float
                     case Types.REAL: // float
                     case Types.DOUBLE: // double
                     case Types.DOUBLE: // double