docs: static int mysqlToJavaType(int type, final int meta, boolean isBinary) {
          int javaType;
  
          if (type == LogEvent.MYSQL_TYPE_STRING) {
              if (meta >= 256) {
                  int byte0 = meta >> 8;
                  if ((byte0 & 0x30) != 0x30) {
                      /* a long CHAR() field: see #37426 */
                      type = byte0 | 0x30;
                  } else {
                      switch (byte0) {
                          case LogEvent.MYSQL_TYPE_SET:
                          case LogEvent.MYSQL_TYPE_ENUM:
                          case LogEvent.MYSQL_TYPE_STRING:
                              type = byte0;
                      }
                  }
              }
          }
  
          switch (type) {
              case LogEvent.MYSQL_TYPE_LONG:
                  javaType = Types.INTEGER;
                  break;
  
              case LogEvent.MYSQL_TYPE_TINY:
                  javaType = Types.TINYINT;
                  break;
  
              case LogEvent.MYSQL_TYPE_SHORT:
                  javaType = Types.SMALLINT;
                  break;
  
              case LogEvent.MYSQL_TYPE_INT24:
                  javaType = Types.INTEGER;
                  break;
  
              case LogEvent.MYSQL_TYPE_LONGLONG:
                  javaType = Types.BIGINT;
                  break;
  
              case LogEvent.MYSQL_TYPE_DECIMAL:
                  javaType = Types.DECIMAL;
                  break;
  
              case LogEvent.MYSQL_TYPE_NEWDECIMAL:
                  javaType = Types.DECIMAL;
                  break;
  
              case LogEvent.MYSQL_TYPE_FLOAT:
                  javaType = Types.REAL; // Types.FLOAT;
                  break;
  
              case LogEvent.MYSQL_TYPE_DOUBLE:
                  javaType = Types.DOUBLE;
                  break;
  
              case LogEvent.MYSQL_TYPE_BIT:
                  javaType = Types.BIT;
                  break;
  
              case LogEvent.MYSQL_TYPE_TIMESTAMP:
              case LogEvent.MYSQL_TYPE_DATETIME:
              case LogEvent.MYSQL_TYPE_TIMESTAMP2:
              case LogEvent.MYSQL_TYPE_DATETIME2:
                  javaType = Types.TIMESTAMP;
                  break;
  
              case LogEvent.MYSQL_TYPE_TIME:
              case LogEvent.MYSQL_TYPE_TIME2:
                  javaType = Types.TIME;
                  break;
  
              case LogEvent.MYSQL_TYPE_NEWDATE:
              case LogEvent.MYSQL_TYPE_DATE:
                  javaType = Types.DATE;
                  break;
  
              case LogEvent.MYSQL_TYPE_YEAR:
                  javaType = Types.VARCHAR;
                  break;
  
              case LogEvent.MYSQL_TYPE_ENUM:
                  javaType = Types.INTEGER;
                  break;
  
              case LogEvent.MYSQL_TYPE_SET:
                  javaType = Types.BINARY;
                  break;
  
              case LogEvent.MYSQL_TYPE_TINY_BLOB:
              case LogEvent.MYSQL_TYPE_MEDIUM_BLOB:
              case LogEvent.MYSQL_TYPE_LONG_BLOB:
              case LogEvent.MYSQL_TYPE_BLOB:
                  if (meta == 1) {
                      javaType = Types.VARBINARY;
                  } else {
                      javaType = Types.LONGVARBINARY;
                  }
                  break;
  
              case LogEvent.MYSQL_TYPE_VARCHAR:
              case LogEvent.MYSQL_TYPE_VAR_STRING:
                  if (isBinary) {
                      // varbinary在binlog中为var_string类型
                      javaType = Types.VARBINARY;
                  } else {
                      javaType = Types.VARCHAR;
                  }
                  break;
  
              case LogEvent.MYSQL_TYPE_STRING:
                  if (isBinary) {
                      // binary在binlog中为string类型
                      javaType = Types.BINARY;
                  } else {
                      javaType = Types.CHAR;
                  }
                  break;
  
              case LogEvent.MYSQL_TYPE_GEOMETRY:
                  javaType = Types.BINARY;
                  break;
  
              // case LogEvent.MYSQL_TYPE_BINARY:
              // javaType = Types.BINARY;
              // break;
              //
              // case LogEvent.MYSQL_TYPE_VARBINARY:
              // javaType = Types.VARBINARY;
              // break;
  
              default:
                  javaType = Types.OTHER;
          }
  
          return javaType;
      }