From 3a7223e460a92c6eee690b2308175fa9958deff4 Mon Sep 17 00:00:00 2001 From: "jianghang.loujh" Date: Mon, 28 Jul 2025 14:37:47 +0800 Subject: [PATCH] merge from github --- .../tddl/dbsync/binlog/event/QueryLogEvent.java | 4 ++-- .../canal/parse/driver/mysql/MysqlConnector.java | 2 +- .../inbound/mysql/tsdb/FastsqlSchemaTest.java | 14 +++++++++----- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/dbsync/src/main/java/com/taobao/tddl/dbsync/binlog/event/QueryLogEvent.java b/dbsync/src/main/java/com/taobao/tddl/dbsync/binlog/event/QueryLogEvent.java index 8bbb8a42..946ab930 100644 --- a/dbsync/src/main/java/com/taobao/tddl/dbsync/binlog/event/QueryLogEvent.java +++ b/dbsync/src/main/java/com/taobao/tddl/dbsync/binlog/event/QueryLogEvent.java @@ -885,9 +885,9 @@ public class QueryLogEvent extends LogEvent { return "Q_DEFAULT_TABLE_ENCRYPTION"; case Q_OPT_FLASHBACK_AREA: // or Q_DDL_SKIP_REWRITE - return "Q_DDL_SKIP_REWRITE"; + return "Q_OPT_FLASHBACK_AREA"; case Q_OPT_INDEX_FORMAT_GPP_ENABLED: - return "Q_DDL_SKIP_REWRITE"; + return "Q_OPT_INDEX_FORMAT_GPP_ENABLED"; case Q_HRNOW: // or Q_WSREP_SKIP_READONLY_CHECKS return "Q_HRNOW"; diff --git a/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/MysqlConnector.java b/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/MysqlConnector.java index e4646056..7e29e91e 100644 --- a/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/MysqlConnector.java +++ b/driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/MysqlConnector.java @@ -306,7 +306,7 @@ public class MysqlConnector { byte[] scramble = authData; try { encryptedPassword = MySQLPasswordEncrypter.scrambleCachingSha2(getPassword().getBytes(), - scramble); + scramble); } catch (DigestException e) { throw new RuntimeException("can't encrypt password that will be sent to MySQL server.", e); } 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 05a8b7ef..92fb0182 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 @@ -20,7 +20,10 @@ public class FastsqlSchemaTest { String sql1 = "CREATE TABLE `table_x1` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, " + "`key1` longtext NOT NULL COMMENT 'key1', `value1` longtext NOT NULL COMMENT 'value1', PRIMARY KEY (`id`) )" + "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"; + String sql2 = " CREATE TABLE IF NOT EXISTS `table_x1` ( `id` bigint(20) NOT NULL AUTO_INCREMENT," + + "`key1` longtext NOT NULL COMMENT 'key1',PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"; repository.console(sql1); + repository.console(sql2); repository.setDefaultSchema("test"); SchemaObject table = repository.findTable("table_x1"); System.out.println(table.getStatement().toString()); @@ -45,7 +48,7 @@ public class FastsqlSchemaTest { SchemaRepository repository = new SchemaRepository(JdbcConstants.MYSQL); String sql = " CREATE TABLE `articles` ( `article_id` bigint NOT NULL AUTO_INCREMENT," + " `tags` json DEFAULT NULL, PRIMARY KEY (`article_id`)," - + " KEY `articles_tags` ((cast(json_extract(`tags`,_utf8mb4'$[*]') as char(40))))" + + " KEY `articles_tags` ((cast(json_extract(`tags`,_utf8mb4'$[*]') as char(40) array)))" + ") ENGINE=InnoDB AUTO_INCREMENT=1054 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"; repository.console(sql); repository.setDefaultSchema("test"); @@ -59,7 +62,7 @@ public class FastsqlSchemaTest { SchemaRepository repository = new SchemaRepository(JdbcConstants.MYSQL); String sql = " CREATE TABLE `proposal_order_info` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT," + "`created_at` timestamp NULL DEFAULT NULL, " + "PRIMARY KEY (`id`) , " - + "KEY `idx_create_time` (`created_at`)" + + "KEY `idx_create_time` (`created_at`) /*!80000 INVISIBLE */" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 BLOCK_FORMAT=ENCRYPTED"; repository.console(sql); repository.setDefaultSchema("test"); @@ -73,7 +76,7 @@ public class FastsqlSchemaTest { SchemaRepository repository = new SchemaRepository(JdbcConstants.MYSQL); String sql = " create table example_vc_tbl( c1 int not null auto_increment primary key," + "c2 varchar(70), vc1 int as (length(c2)) virtual," - + "DIM_SUM varchar(128) AS (MD5(UPPER(CONCAT(c2, c1)))) STORED)"; + + "DIM_SUM varchar(128) AS (MD5(UPPER(CONCAT(c2, c1)))) PERSISTENT)"; repository.console(sql); repository.setDefaultSchema("test"); SchemaObject table = repository.findTable("example_vc_tbl"); @@ -114,7 +117,7 @@ public class FastsqlSchemaTest { + " name varchar(32) \n" + " )\n" + " partition by range(id) (\n" + " partition p1 values less than (10),\n" + " partition px values less than MAXVALUE\n" + " );"; - String sql2 = "alter table test add partition ( partition p2 VALUES LESS THAN (738552) ENGINE = InnoDB, PARTITION pmax VALUES LESS THAN MAXVALUE ENGINE = InnoDB)"; + String sql2 = "alter table test add partition ( partition 2 VALUES LESS THAN (738552) ENGINE = InnoDB, PARTITION pmax VALUES LESS THAN MAXVALUE ENGINE = InnoDB)"; repository.console(sql1); repository.console(sql2); repository.setDefaultSchema("test"); @@ -133,7 +136,7 @@ public class FastsqlSchemaTest { + "avg_frequency decimal(12,4) DEFAULT NULL,\n" + "hist_size tinyint(3) unsigned DEFAULT NULL,\n" + "hist_type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB') COLLATE utf8_bin DEFAULT NULL,\n" + "histogram varbinary(255) DEFAULT NULL,\n" + "PRIMARY KEY (db_name,table_name,column_name)\n" - + ") ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin"; + + ") ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=0"; repository.console(sql1); repository.setDefaultSchema("test"); SchemaObject table = repository.findTable("test"); @@ -336,4 +339,5 @@ public class FastsqlSchemaTest { SchemaObject table = repository.findTable("test1"); Assert.assertTrue(table != null); } + }