From e5c4c0842d0a11b9919efcda09377083a4a0d69a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 19 Dec 2024 14:05:16 +0200 Subject: [PATCH 01/31] MDEV-35443: opt_search_plan_for_table() may degrade to full table scan MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit opt_calc_index_goodness(): Correct an inaccurate condition. We can very well use a clustered index of a table that is subject to online rebuild. But we must not choose an index that has not been committed (it is a secondary index that was not fully created) or that is corrupted or not a normal B-tree index. opt_search_plan_for_table(): Remove some redundant code, now that opt_calc_index_goodness() checks against corrupted indexes. The test case allows this code to be exercised. The main observation in the following: ./mtr --rr innodb.stats_persistent rr replay var/log/mysqld.1.rr/latest-trace should be that when opt_search_plan_for_table() is being invoked by dict_stats_update_persistent() on the being-altered statistics table in the 2nd call after ha_innobase::inplace_alter_table(), and the fix in opt_calc_index_goodness() is absent, it would choose the code path if (n_fields == 0), that is, a full table scan, instead of searching for the record. The GDB commands to execute in "rr replay" would be as follows: break ha_innobase::inplace_alter_table continue break opt_search_plan_for_table continue continue next next … Reviewed by: Vladislav Lesin --- mysql-test/suite/innodb/r/stats_persistent.result | 9 +++++++++ mysql-test/suite/innodb/t/stats_persistent.test | 11 +++++++++++ storage/innobase/include/dict0mem.h | 8 ++++++++ storage/innobase/pars/pars0opt.cc | 13 +++++-------- 4 files changed, 33 insertions(+), 8 deletions(-) diff --git a/mysql-test/suite/innodb/r/stats_persistent.result b/mysql-test/suite/innodb/r/stats_persistent.result index 7e9c038d6f7..2752811a07c 100644 --- a/mysql-test/suite/innodb/r/stats_persistent.result +++ b/mysql-test/suite/innodb/r/stats_persistent.result @@ -6,14 +6,23 @@ SET DEBUG_SYNC='dict_stats_update_persistent SIGNAL stop WAIT_FOR go'; ANALYZE TABLE t1; connect con1, localhost, root; SET DEBUG_SYNC='now WAIT_FOR stop'; +connect con2, localhost, root; +SET DEBUG_SYNC='innodb_inplace_alter_table_enter SIGNAL astop WAIT_FOR ago'; +ALTER TABLE mysql.innodb_index_stats FORCE; +connection con1; SELECT SUM(DATA_LENGTH+INDEX_LENGTH) FROM information_schema.TABLES WHERE ENGINE='InnoDB'; SUM(DATA_LENGTH+INDEX_LENGTH) SUM +SET DEBUG_SYNC='now WAIT_FOR astop'; SET DEBUG_SYNC='now SIGNAL go'; disconnect con1; connection default; Table Op Msg_type Msg_text test.t1 analyze status Engine-independent statistics collected test.t1 analyze status OK +SET DEBUG_SYNC='now SIGNAL ago'; +connection con2; +disconnect con2; +connection default; SET DEBUG_SYNC= 'RESET'; DROP TABLE t1; diff --git a/mysql-test/suite/innodb/t/stats_persistent.test b/mysql-test/suite/innodb/t/stats_persistent.test index 8561298c4d3..870808993f4 100644 --- a/mysql-test/suite/innodb/t/stats_persistent.test +++ b/mysql-test/suite/innodb/t/stats_persistent.test @@ -14,14 +14,25 @@ SET DEBUG_SYNC='dict_stats_update_persistent SIGNAL stop WAIT_FOR go'; --connect(con1, localhost, root) SET DEBUG_SYNC='now WAIT_FOR stop'; +--connect(con2, localhost, root) +SET DEBUG_SYNC='innodb_inplace_alter_table_enter SIGNAL astop WAIT_FOR ago'; +send ALTER TABLE mysql.innodb_index_stats FORCE; + +--connection con1 --replace_column 1 SUM SELECT SUM(DATA_LENGTH+INDEX_LENGTH) FROM information_schema.TABLES WHERE ENGINE='InnoDB'; +SET DEBUG_SYNC='now WAIT_FOR astop'; SET DEBUG_SYNC='now SIGNAL go'; --disconnect con1 --connection default --reap +SET DEBUG_SYNC='now SIGNAL ago'; +--connection con2 +reap; +--disconnect con2 +--connection default SET DEBUG_SYNC= 'RESET'; DROP TABLE t1; diff --git a/storage/innobase/include/dict0mem.h b/storage/innobase/include/dict0mem.h index 5cebfe6710d..5ec2273ef65 100644 --- a/storage/innobase/include/dict0mem.h +++ b/storage/innobase/include/dict0mem.h @@ -1203,6 +1203,14 @@ public: /** @return whether this is the change buffer */ bool is_ibuf() const { return UNIV_UNLIKELY(type & DICT_IBUF); } + /** @return whether this is a normal, non-virtual B-tree index + (not the change buffer, not SPATIAL or FULLTEXT) */ + bool is_normal_btree() const noexcept { + return UNIV_LIKELY(!(type & (DICT_IBUF | DICT_SPATIAL + | DICT_FTS | DICT_CORRUPT + | DICT_VIRTUAL))); + } + /** @return whether the index includes virtual columns */ bool has_virtual() const { return type & DICT_VIRTUAL; } diff --git a/storage/innobase/pars/pars0opt.cc b/storage/innobase/pars/pars0opt.cc index e1a913b0179..a5ab15b74d4 100644 --- a/storage/innobase/pars/pars0opt.cc +++ b/storage/innobase/pars/pars0opt.cc @@ -340,9 +340,7 @@ opt_calc_index_goodness( ulint op; ulint j; - /* At least for now we don't support using FTS indexes for queries - done through InnoDB's own SQL parser. */ - if (dict_index_is_online_ddl(index) || (index->type & DICT_FTS)) { + if (!index->is_normal_btree() || !index->is_committed()) { return(0); } @@ -572,11 +570,10 @@ opt_search_plan_for_table( /* Calculate goodness for each index of the table */ index = dict_table_get_first_index(table); - best_index = index; /* Eliminate compiler warning */ + best_index = index; best_goodness = 0; - /* should be do ... until ? comment by Jani */ - while (index) { + do { goodness = opt_calc_index_goodness(index, sel_node, i, index_plan, &last_op); if (goodness > best_goodness) { @@ -590,8 +587,8 @@ opt_search_plan_for_table( best_last_op = last_op; } - dict_table_next_uncorrupted_index(index); - } + index = dict_table_get_next_index(index); + } while (index); plan->index = best_index; From f2ffcd949b797dd04c6277e5a8939279dd0a107c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 19 Dec 2024 14:18:55 +0200 Subject: [PATCH 02/31] MDEV-35657: Add work-arounds for clang 11 --- extra/mariabackup/fil_cur.cc | 1 + extra/mariabackup/xtrabackup.cc | 1 + 2 files changed, 2 insertions(+) diff --git a/extra/mariabackup/fil_cur.cc b/extra/mariabackup/fil_cur.cc index 2383e3a03a7..4d0e99332a2 100644 --- a/extra/mariabackup/fil_cur.cc +++ b/extra/mariabackup/fil_cur.cc @@ -187,6 +187,7 @@ xb_fil_cur_open( } #else err = fstat(cursor->file.m_file, &cursor->statinfo); + MSAN_STAT_WORKAROUND(&cursor->statinfo); #endif if (max_file_size < (ulonglong)cursor->statinfo.st_size) { cursor->statinfo.st_size = (ulonglong)max_file_size; diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc index d8015a0e331..a59e8f0858f 100644 --- a/extra/mariabackup/xtrabackup.cc +++ b/extra/mariabackup/xtrabackup.cc @@ -3648,6 +3648,7 @@ next_file: return(-1); } + MSAN_STAT_WORKAROUND(&statinfo); info->size = statinfo.st_size; if (S_ISDIR(statinfo.st_mode)) { From d878d80bc4a3ee6f044c0dd68601d86cd435332e Mon Sep 17 00:00:00 2001 From: Eric Herman Date: Thu, 19 Dec 2024 16:40:18 +0100 Subject: [PATCH 03/31] MDEV-35695: mtr failure suggests wrong url When running the ./mtr tests and getting failures, rather than provide a dead-link to mysql.com, this points developers to the Jira instance. Signed-off-by: Eric Herman --- mysql-test/lib/mtr_report.pm | 5 ++--- mysql-test/lib/v1/mtr_report.pl | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/mysql-test/lib/mtr_report.pm b/mysql-test/lib/mtr_report.pm index 308dbb77a3e..ff239d676a9 100644 --- a/mysql-test/lib/mtr_report.pm +++ b/mysql-test/lib/mtr_report.pm @@ -454,9 +454,8 @@ sub mtr_report_stats ($$$$) { # Print info about reporting the error print "The log files in var/log may give you some hint of what went wrong.\n\n", - "If you want to report this error, please read first ", - "the documentation\n", - "at http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html\n\n"; + "If you want to report this error, MariaDB's bug tracker is found at\n", + "https://jira.mariadb.org\n\n"; } else diff --git a/mysql-test/lib/v1/mtr_report.pl b/mysql-test/lib/v1/mtr_report.pl index 8964b0f8077..6f8677110ba 100644 --- a/mysql-test/lib/v1/mtr_report.pl +++ b/mysql-test/lib/v1/mtr_report.pl @@ -198,9 +198,8 @@ sub mtr_report_stats ($) { print "The log files in var/log may give you some hint\n", "of what went wrong.\n", - "If you want to report this error, please read first ", - "the documentation at\n", - "http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html\n"; + "If you want to report this error, MariaDB's bug tracker is found at\n", + "https://jira.mariadb.org\n" } if (!$::opt_extern) { From 24e5d564005904bc589fc869ea2f913eec8e6c3a Mon Sep 17 00:00:00 2001 From: Oleg Smirnov Date: Fri, 20 Dec 2024 14:58:33 +0700 Subject: [PATCH 04/31] MDEV-35680 Table number > MAX_TABLES causes overflow of table_map at main.join test Fix a regression introduced by commit d98ac851 (MDEV-29935, MDEV-26247) causing MAX_TABLES overflow in `setup_table_map()`. The check for MAX_TABLES was moved outside of the loop that increments table numbers, allowing overflows during loop iterations. Since setup_table_map() operates on a 64-bit bitmap, table numbers exceeding 64 triggered the UBSAN check. This commit returns the overflow check within the loop and adds a debug assertion to `setup_table_map()` to ensure no bitmap overrun occurs. --- sql/sql_base.cc | 14 +++++++++----- sql/sql_base.h | 1 + 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/sql/sql_base.cc b/sql/sql_base.cc index bcab54ac1ec..5c03ba3d42d 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -7862,11 +7862,15 @@ bool setup_tables(THD *thd, Name_resolution_context *context, DBUG_RETURN(1); } tablenr++; - } - if (tablenr > MAX_TABLES) - { - my_error(ER_TOO_MANY_TABLES,MYF(0), static_cast(MAX_TABLES)); - DBUG_RETURN(1); + /* + Test MAX_TABLES overflow here inside the loop as setup_table_map() + called in each iteration is sensitive for this + */ + if (tablenr > MAX_TABLES) + { + my_error(ER_TOO_MANY_TABLES, MYF(0), static_cast(MAX_TABLES)); + DBUG_RETURN(1); + } } if (select_insert && !is_insert_tables_num_set) { diff --git a/sql/sql_base.h b/sql/sql_base.h index 894c8213e66..90c47e69d94 100644 --- a/sql/sql_base.h +++ b/sql/sql_base.h @@ -353,6 +353,7 @@ inline void setup_table_map(TABLE *table, TABLE_LIST *table_list, uint tablenr) table->maybe_null= embedding->outer_join; embedding= embedding->embedding; } + DBUG_ASSERT(tablenr <= MAX_TABLES); table->tablenr= tablenr; table->map= (table_map) 1 << tablenr; table->force_index= table_list->force_index; From 52c29f3bdc8afd1f4f4b91956d233c500f21ae5a Mon Sep 17 00:00:00 2001 From: Monty Date: Thu, 21 Nov 2024 12:28:57 +0200 Subject: [PATCH 05/31] MDEV-35469 Heap tables are calling mallocs to often Heap tables are allocated blocks to store rows according to my_default_record_cache (mapped to the server global variable read_buffer_size). This causes performance issues when the record length is big (> 1000 bytes) and the my_default_record_cache is small. Changed to instead split the default heap allocation to 1/16 of the allowed space and not use my_default_record_cache anymore when creating the heap. The allocation is also aligned to be just under a power of 2. For some test that I have been running, which was using record length=633, the speed of the query doubled thanks to this change. Other things: - Fixed calculation of max_records passed to hp_create() to take into account padding between records. - Updated calculation of memory needed by heap tables. Before we did not take into account internal structures needed to access rows. - Changed block sized for memory_table from 1 to 16384 to get less fragmentation. This also avoids a problem where we need 1K to manage index and row storage which was not counted for before. - Moved heap memory usage to a separate test for 32 bit. - Allocate all data blocks in heap in powers of 2. Change reported memory usage for heap to reflect this. Reviewed-by: Sergei Golubchik --- include/heap.h | 1 + include/my_global.h | 2 +- mysql-test/main/count_distinct.result | 4 + mysql-test/main/derived_opt.result | 2 +- mysql-test/main/derived_opt.test | 2 +- mysql-test/main/derived_view.result | 2 + mysql-test/main/distinct.result | 2 + mysql-test/main/error_simulation.result | 17 ++- mysql-test/main/error_simulation.test | 19 ++-- mysql-test/main/order_by.result | 2 + mysql-test/main/set_operation.result | 6 +- mysql-test/main/set_operation.test | 4 +- mysql-test/main/union.result | 2 +- mysql-test/main/union.test | 2 +- mysql-test/main/update.result | 4 +- mysql-test/main/update.test | 2 +- mysql-test/main/variables.result | 2 +- mysql-test/main/variables.test | 2 +- mysql-test/suite/heap/heap.result | 52 --------- mysql-test/suite/heap/heap.test | 54 +--------- .../suite/heap/heap_memory_used,32bit.rdiff | 40 +++++++ mysql-test/suite/heap/heap_memory_used.result | 55 ++++++++++ mysql-test/suite/heap/heap_memory_used.test | 50 +++++++++ .../suite/maria/aria_sort_buffer.result | 2 + mysql-test/suite/maria/repair-big-sort.result | 2 + .../suite/sys_vars/r/maximum_basic.result | 2 +- .../sys_vars/r/sysvars_server_embedded.result | 4 +- .../r/sysvars_server_notembedded.result | 4 +- .../r/tmp_disk_table_size_func.result | 2 +- .../transaction_alloc_block_size_basic.result | 1 - .../suite/sys_vars/t/maximum_basic-master.opt | 2 +- .../sys_vars/t/tmp_disk_table_size_func.test | 2 +- .../t/transaction_alloc_block_size_basic.test | 2 - .../suite/versioning/r/partition.result | 4 +- mysql-test/suite/versioning/t/partition.test | 4 +- sql/sql_select.cc | 2 +- sql/sys_vars.cc | 4 +- storage/heap/ha_heap.cc | 14 ++- storage/heap/heapdef.h | 3 + storage/heap/hp_block.c | 4 +- storage/heap/hp_create.c | 101 ++++++++++++++---- storage/heap/hp_write.c | 27 ++--- 42 files changed, 316 insertions(+), 198 deletions(-) create mode 100644 mysql-test/suite/heap/heap_memory_used,32bit.rdiff create mode 100644 mysql-test/suite/heap/heap_memory_used.result create mode 100644 mysql-test/suite/heap/heap_memory_used.test diff --git a/include/heap.h b/include/heap.h index 2e0e9357a3b..3fac752abd0 100644 --- a/include/heap.h +++ b/include/heap.h @@ -105,6 +105,7 @@ typedef struct st_heap_block uint recbuffer; /* Length of one saved record */ ulong records_in_block; /* Records in one heap-block */ ulong last_allocated; /* number of records there is allocated space for */ + size_t alloc_size; /* Allocate blocks of this size */ } HP_BLOCK; struct st_heap_info; /* For reference */ diff --git a/include/my_global.h b/include/my_global.h index 6d5085b79a5..043a20b216f 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -670,7 +670,7 @@ typedef SOCKET_SIZE_TYPE size_socket; How much overhead does malloc have. The code often allocates something like 1024-MALLOC_OVERHEAD bytes */ -#define MALLOC_OVERHEAD 8 +#define MALLOC_OVERHEAD (8+24) /* get memory in huncs */ #define ONCE_ALLOC_INIT (uint) 4096 diff --git a/mysql-test/main/count_distinct.result b/mysql-test/main/count_distinct.result index 760b2710586..4454dcc524a 100644 --- a/mysql-test/main/count_distinct.result +++ b/mysql-test/main/count_distinct.result @@ -97,6 +97,8 @@ drop view v1; create table t1 (user_id char(64) character set utf8); insert t1 values(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14),(15),(16),(17); set @@tmp_table_size = 1024; +Warnings: +Warning 1292 Truncated incorrect tmp_table_size value: '1024' select count(distinct user_id) from t1; count(distinct user_id) 17 @@ -126,6 +128,8 @@ insert into t1 values ( 2 , 13 ), ( 3 , 14 ); set @@tmp_table_size=1024; +Warnings: +Warning 1292 Truncated incorrect tmp_table_size value: '1024' select count(distinct a) from t1; count(distinct a) 10 diff --git a/mysql-test/main/derived_opt.result b/mysql-test/main/derived_opt.result index cf0c1cb617f..c235027d556 100644 --- a/mysql-test/main/derived_opt.result +++ b/mysql-test/main/derived_opt.result @@ -310,7 +310,7 @@ a char(2) NOT NULL DEFAULT '', PRIMARY KEY (a) ) ENGINE=MyISAM; INSERT INTO t4 VALUES ('CD'); -set @@tmp_table_size=8192; +set @@tmp_table_size=16384; EXPLAIN SELECT * FROM t3 AS tx JOIN t2 AS ty ON (tx.pk = ty.pk) WHERE diff --git a/mysql-test/main/derived_opt.test b/mysql-test/main/derived_opt.test index dee424559ee..57c97cc4071 100644 --- a/mysql-test/main/derived_opt.test +++ b/mysql-test/main/derived_opt.test @@ -245,7 +245,7 @@ CREATE TABLE t4 ( ) ENGINE=MyISAM; INSERT INTO t4 VALUES ('CD'); -set @@tmp_table_size=8192; +set @@tmp_table_size=16384; --replace_column 9 # EXPLAIN diff --git a/mysql-test/main/derived_view.result b/mysql-test/main/derived_view.result index 6ddcf97c676..cd71cd05eb0 100644 --- a/mysql-test/main/derived_view.result +++ b/mysql-test/main/derived_view.result @@ -2183,6 +2183,8 @@ INSERT INTO t3 VALUES ('Miami'); SET @save_optimizer_switch=@@optimizer_switch; SET optimizer_switch = 'derived_with_keys=on'; SET @@tmp_table_size=1024*4; +Warnings: +Warning 1292 Truncated incorrect tmp_table_size value: '4096' explain SELECT * FROM (SELECT t1.* FROM t1, t2) AS t JOIN t3 ON t3.a = t.b; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t3 system NULL NULL NULL NULL 1 diff --git a/mysql-test/main/distinct.result b/mysql-test/main/distinct.result index ec9253837be..4618b8962ad 100644 --- a/mysql-test/main/distinct.result +++ b/mysql-test/main/distinct.result @@ -1005,6 +1005,8 @@ DROP TABLE t1; # SET @tmp_table_size_save= @@tmp_table_size; SET @@tmp_table_size= 1024; +Warnings: +Warning 1292 Truncated incorrect tmp_table_size value: '1024' CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8); INSERT INTO t1 SELECT a+8 FROM t1; diff --git a/mysql-test/main/error_simulation.result b/mysql-test/main/error_simulation.result index 3b41e0bc5a4..c128ad88fa0 100644 --- a/mysql-test/main/error_simulation.result +++ b/mysql-test/main/error_simulation.result @@ -1,15 +1,12 @@ CREATE TABLE t1 ( -a varchar(32) character set utf8 collate utf8_bin NOT NULL, -b varchar(32) character set utf8 collate utf8_bin NOT NULL ) +a varchar(128) character set utf8 collate utf8_bin NOT NULL, +b varchar(128) character set utf8 collate utf8_bin NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -INSERT INTO t1 VALUES -('AAAAAAAAAA','AAAAAAAAAA'), ('AAAAAAAAAB','AAAAAAAAAB '), -('AAAAAAAAAB','AAAAAAAAAB'), ('AAAAAAAAAC','AAAAAAAAAC'), -('AAAAAAAAAD','AAAAAAAAAD'), ('AAAAAAAAAE','AAAAAAAAAE'), -('AAAAAAAAAF','AAAAAAAAAF'), ('AAAAAAAAAG','AAAAAAAAAG'), -('AAAAAAAAAH','AAAAAAAAAH'), ('AAAAAAAAAI','AAAAAAAAAI'), -('AAAAAAAAAJ','AAAAAAAAAJ'), ('AAAAAAAAAK','AAAAAAAAAK'); -set tmp_table_size=1024; +INSERT INTO t1 +select concat(repeat("A", 50),char(32+mod(seq,31)),char(32+mod(seq,29))), +concat(repeat("A", 50),char(32+mod(seq,31)),char(32+mod(seq,29))) +from seq_1_to_128; +set tmp_table_size=16384; SET @saved_dbug = @@SESSION.debug_dbug; set session debug_dbug="+d,raise_error"; SELECT MAX(a) FROM t1 GROUP BY a,b; diff --git a/mysql-test/main/error_simulation.test b/mysql-test/main/error_simulation.test index c4e2d442727..fc5d9c537c7 100644 --- a/mysql-test/main/error_simulation.test +++ b/mysql-test/main/error_simulation.test @@ -1,23 +1,20 @@ --source include/have_debug.inc --source include/not_embedded.inc - +--source include/have_sequence.inc # # Bug #28499: crash for grouping query when tmp_table_size is too small # CREATE TABLE t1 ( - a varchar(32) character set utf8 collate utf8_bin NOT NULL, - b varchar(32) character set utf8 collate utf8_bin NOT NULL ) + a varchar(128) character set utf8 collate utf8_bin NOT NULL, + b varchar(128) character set utf8 collate utf8_bin NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -INSERT INTO t1 VALUES - ('AAAAAAAAAA','AAAAAAAAAA'), ('AAAAAAAAAB','AAAAAAAAAB '), - ('AAAAAAAAAB','AAAAAAAAAB'), ('AAAAAAAAAC','AAAAAAAAAC'), - ('AAAAAAAAAD','AAAAAAAAAD'), ('AAAAAAAAAE','AAAAAAAAAE'), - ('AAAAAAAAAF','AAAAAAAAAF'), ('AAAAAAAAAG','AAAAAAAAAG'), - ('AAAAAAAAAH','AAAAAAAAAH'), ('AAAAAAAAAI','AAAAAAAAAI'), - ('AAAAAAAAAJ','AAAAAAAAAJ'), ('AAAAAAAAAK','AAAAAAAAAK'); +INSERT INTO t1 +select concat(repeat("A", 50),char(32+mod(seq,31)),char(32+mod(seq,29))), + concat(repeat("A", 50),char(32+mod(seq,31)),char(32+mod(seq,29))) + from seq_1_to_128; -set tmp_table_size=1024; +set tmp_table_size=16384; # Set debug flag so an error is returned when # tmp table in query is converted from heap to myisam diff --git a/mysql-test/main/order_by.result b/mysql-test/main/order_by.result index 3f52f276001..db8ffed8fe9 100644 --- a/mysql-test/main/order_by.result +++ b/mysql-test/main/order_by.result @@ -4331,6 +4331,8 @@ CREATE TABLE t1(a VARCHAR(1027), b INT); INSERT INTO t1 SELECT seq, seq from seq_1_to_34; SET @save_tmp_memory_table_size= @@tmp_memory_table_size; SET tmp_memory_table_size= 1056*2; +Warnings: +Warning 1292 Truncated incorrect tmp_memory_table_size value: '2112' SELECT COUNT(DISTINCT a) FROM t1; COUNT(DISTINCT a) 34 diff --git a/mysql-test/main/set_operation.result b/mysql-test/main/set_operation.result index dd3912629bb..601f7ed916d 100644 --- a/mysql-test/main/set_operation.result +++ b/mysql-test/main/set_operation.result @@ -1085,10 +1085,8 @@ select 1 union all select 2 union all select 3 union select 4; 3 4 # test with limited resource -set @@max_heap_table_size= 1024; -Warnings: -Warning 1292 Truncated incorrect max_heap_table_size value: '1024' -set @@tmp_table_size= 1024; +set @@max_heap_table_size= 16384; +set @@tmp_table_size= 16384; create table t1 (a int, b int); insert into t1 values (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(0,0); insert into t1 select * from t1; diff --git a/mysql-test/main/set_operation.test b/mysql-test/main/set_operation.test index c422042f371..11560d19008 100644 --- a/mysql-test/main/set_operation.test +++ b/mysql-test/main/set_operation.test @@ -457,8 +457,8 @@ select 1 union all select 2 union all select 3 union select 4; --echo # test with limited resource -set @@max_heap_table_size= 1024; -set @@tmp_table_size= 1024; +set @@max_heap_table_size= 16384; +set @@tmp_table_size= 16384; create table t1 (a int, b int); insert into t1 values (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(0,0); diff --git a/mysql-test/main/union.result b/mysql-test/main/union.result index 151ffdb4ad0..a0a38e2bd22 100644 --- a/mysql-test/main/union.result +++ b/mysql-test/main/union.result @@ -874,7 +874,7 @@ insert into t1 select * from t2; insert into t2 select * from t1; insert into t1 select * from t2; insert into t2 select * from t1; -set local tmp_table_size=1024; +set local tmp_table_size=16384; select count(*) from (select * from t1 union all select * from t2 order by 1) b; count(*) 21 diff --git a/mysql-test/main/union.test b/mysql-test/main/union.test index cabd1ad0b25..3ec933c6c08 100644 --- a/mysql-test/main/union.test +++ b/mysql-test/main/union.test @@ -503,7 +503,7 @@ insert into t1 select * from t2; insert into t2 select * from t1; insert into t1 select * from t2; insert into t2 select * from t1; -set local tmp_table_size=1024; +set local tmp_table_size=16384; select count(*) from (select * from t1 union all select * from t2 order by 1) b; select count(*) from t1; select count(*) from t2; diff --git a/mysql-test/main/update.result b/mysql-test/main/update.result index 9c91a4835fe..d91a74f9cef 100644 --- a/mysql-test/main/update.result +++ b/mysql-test/main/update.result @@ -491,7 +491,9 @@ a quux DROP TABLE t1; connect con1,localhost,root,,test; connection con1; -set tmp_table_size=1024; +set tmp_table_size=2048; +Warnings: +Warning 1292 Truncated incorrect tmp_table_size value: '2048' create table t1 (id int, a int, key idx(a)); create table t2 (id int unsigned not null auto_increment primary key, a int); insert into t2(a) values(1),(2),(3),(4),(5),(6),(7),(8); diff --git a/mysql-test/main/update.test b/mysql-test/main/update.test index 144f89b0053..9b329cce3c9 100644 --- a/mysql-test/main/update.test +++ b/mysql-test/main/update.test @@ -397,7 +397,7 @@ DROP TABLE t1; connect (con1,localhost,root,,test); connection con1; -set tmp_table_size=1024; +set tmp_table_size=2048; # Create the test tables create table t1 (id int, a int, key idx(a)); diff --git a/mysql-test/main/variables.result b/mysql-test/main/variables.result index 40fd69a321e..a16dcd2d44c 100644 --- a/mysql-test/main/variables.result +++ b/mysql-test/main/variables.result @@ -547,7 +547,7 @@ set global table_open_cache=100; set default_storage_engine=myisam; set global thread_cache_size=100; set timestamp=1, timestamp=default; -set tmp_table_size=1024; +set tmp_table_size=16384; set tx_isolation="READ-COMMITTED"; set wait_timeout=100; set log_warnings=1; diff --git a/mysql-test/main/variables.test b/mysql-test/main/variables.test index 1e5302e6d42..ff4d0c5ab3f 100644 --- a/mysql-test/main/variables.test +++ b/mysql-test/main/variables.test @@ -340,7 +340,7 @@ set global table_open_cache=100; set default_storage_engine=myisam; set global thread_cache_size=100; set timestamp=1, timestamp=default; -set tmp_table_size=1024; +set tmp_table_size=16384; set tx_isolation="READ-COMMITTED"; set wait_timeout=100; set log_warnings=1; diff --git a/mysql-test/suite/heap/heap.result b/mysql-test/suite/heap/heap.result index bef3913dcb1..583f4fc9b3f 100644 --- a/mysql-test/suite/heap/heap.result +++ b/mysql-test/suite/heap/heap.result @@ -798,58 +798,6 @@ id select_type table type possible_keys key key_len ref rows Extra 3 DERIVED t1 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using where DROP TABLE t1,t2,h1; DROP VIEW v1; -CREATE TABLE t1 (a int, index(a)) engine=heap min_rows=10 max_rows=100; -insert into t1 values(1); -select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; -data_length index_length -1600 2400 -drop table t1; -CREATE TABLE t1 (a int, index(a)) engine=heap min_rows=10 max_rows=10000; -insert into t1 values(1); -select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; -data_length index_length -16000 24000 -drop table t1; -CREATE TABLE t1 (a int, index(a)) engine=heap min_rows=3000 max_rows=3000; -insert into t1 values(1); -select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; -data_length index_length -48000 72000 -drop table t1; -CREATE TABLE t1 (a int, index(a)) engine=heap max_rows=15000; -insert into t1 values(1); -select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; -data_length index_length -24000 36000 -drop table t1; -create table t1 (c1 int, index(c1)) engine=heap max_rows=10000; -insert into t1 select rand(100000000); -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1 limit 488; -select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; -data_length index_length -16000 24000 -insert into t1 select rand(100000000) from t1 limit 1; -select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; -data_length index_length -33024 49024 -insert into t1 select rand(100000000) from t1 limit 1000; -select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; -data_length index_length -49024 73024 -insert into t1 select rand(100000000) from t1; -select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; -data_length index_length -81024 121024 -drop table t1; CREATE TABLE t1 (id INT); INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (2); diff --git a/mysql-test/suite/heap/heap.test b/mysql-test/suite/heap/heap.test index ef950da5484..fdda9d54e0e 100644 --- a/mysql-test/suite/heap/heap.test +++ b/mysql-test/suite/heap/heap.test @@ -546,7 +546,7 @@ CREATE TABLE t1 ( ); INSERT INTO t1 VALUES (19,5,'h'),(20,5,'h'); - + CREATE TABLE t2 (col_int_nokey INT); INSERT INTO t2 VALUES (1),(2); @@ -567,58 +567,6 @@ DROP TABLE t1,t2,h1; DROP VIEW v1; # End of 5.1 tests -# -# Show that MIN_ROWS and MAX_ROWS have an effect on how data_length -# and index_length are allocated. -# Result is different for 32 / 64 bit machines as pointer lengths are different -# - -CREATE TABLE t1 (a int, index(a)) engine=heap min_rows=10 max_rows=100; -insert into t1 values(1); ---replace_result 800 1600 1200 2400 -select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; -drop table t1; -CREATE TABLE t1 (a int, index(a)) engine=heap min_rows=10 max_rows=10000; -insert into t1 values(1); ---replace_result 8000 16000 12000 24000 -select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; -drop table t1; -CREATE TABLE t1 (a int, index(a)) engine=heap min_rows=3000 max_rows=3000; -insert into t1 values(1); ---replace_result 24000 48000 36000 72000 -select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; -drop table t1; -CREATE TABLE t1 (a int, index(a)) engine=heap max_rows=15000; -insert into t1 values(1); ---replace_result 12000 24000 18000 36000 -select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; -drop table t1; - -create table t1 (c1 int, index(c1)) engine=heap max_rows=10000; -insert into t1 select rand(100000000); -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1; -insert into t1 select rand(100000000) from t1 limit 488; ---replace_result 8000 16000 12000 24000 -select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; -insert into t1 select rand(100000000) from t1 limit 1; ---replace_result 16512 33024 24512 49024 -select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; -insert into t1 select rand(100000000) from t1 limit 1000; ---replace_result 24512 49024 36512 73024 -select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; -insert into t1 select rand(100000000) from t1; ---replace_result 40512 81024 60512 121024 -select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; -drop table t1; - # # MDEV-5905 Creating tmp. memory table kills the server # diff --git a/mysql-test/suite/heap/heap_memory_used,32bit.rdiff b/mysql-test/suite/heap/heap_memory_used,32bit.rdiff new file mode 100644 index 00000000000..19004c065c8 --- /dev/null +++ b/mysql-test/suite/heap/heap_memory_used,32bit.rdiff @@ -0,0 +1,40 @@ +--- suite/heap/heap_memory_used.result ++++ suite/heap/heap_memory_used.reject +@@ -17,13 +17,13 @@ + insert into t1 values(1); + select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; + data_length index_length +-65504 131040 ++32736 65504 + drop table t1; + CREATE TABLE t1 (a int, index(a)) engine=heap max_rows=15000; + insert into t1 values(1); + select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; + data_length index_length +-16352 32736 ++16352 16352 + drop table t1; + create table t1 (c1 int, index(c1)) engine=heap max_rows=10000; + insert into t1 select rand(100000000); +@@ -39,17 +39,17 @@ + insert into t1 select rand(100000000) from t1 limit 488; + select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; + data_length index_length +-32704 32704 ++16352 16352 + insert into t1 select rand(100000000) from t1 limit 1; + select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; + data_length index_length +-32704 32704 ++16352 16352 + insert into t1 select rand(100000000) from t1 limit 1000; + select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; + data_length index_length +-49056 65408 ++32704 32704 + insert into t1 select rand(100000000) from t1; + select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; + data_length index_length +-81760 114464 ++49056 65408 + drop table t1; diff --git a/mysql-test/suite/heap/heap_memory_used.result b/mysql-test/suite/heap/heap_memory_used.result new file mode 100644 index 00000000000..c09755fed88 --- /dev/null +++ b/mysql-test/suite/heap/heap_memory_used.result @@ -0,0 +1,55 @@ +# +# Test of heap table memory usage +# +CREATE TABLE t1 (a int, index(a)) engine=heap min_rows=10 max_rows=100; +insert into t1 values(1); +select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; +data_length index_length +16352 16352 +drop table t1; +CREATE TABLE t1 (a int, index(a)) engine=heap min_rows=10 max_rows=10000; +insert into t1 values(1); +select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; +data_length index_length +16352 16352 +drop table t1; +CREATE TABLE t1 (a int, index(a)) engine=heap min_rows=3000 max_rows=3000; +insert into t1 values(1); +select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; +data_length index_length +65504 131040 +drop table t1; +CREATE TABLE t1 (a int, index(a)) engine=heap max_rows=15000; +insert into t1 values(1); +select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; +data_length index_length +16352 32736 +drop table t1; +create table t1 (c1 int, index(c1)) engine=heap max_rows=10000; +insert into t1 select rand(100000000); +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1 limit 488; +select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; +data_length index_length +32704 32704 +insert into t1 select rand(100000000) from t1 limit 1; +select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; +data_length index_length +32704 32704 +insert into t1 select rand(100000000) from t1 limit 1000; +select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; +data_length index_length +49056 65408 +insert into t1 select rand(100000000) from t1; +select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; +data_length index_length +81760 114464 +drop table t1; diff --git a/mysql-test/suite/heap/heap_memory_used.test b/mysql-test/suite/heap/heap_memory_used.test new file mode 100644 index 00000000000..c9b8578e2d5 --- /dev/null +++ b/mysql-test/suite/heap/heap_memory_used.test @@ -0,0 +1,50 @@ +--echo # +--echo # Test of heap table memory usage +--echo # + +--source include/word_size.inc + +# +# Show that MIN_ROWS and MAX_ROWS have an effect on how data_length +# and index_length are allocated. +# Result is different for 32 / 64 bit machines as pointer lengths are different +# + +CREATE TABLE t1 (a int, index(a)) engine=heap min_rows=10 max_rows=100; +insert into t1 values(1); +select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; +drop table t1; + +CREATE TABLE t1 (a int, index(a)) engine=heap min_rows=10 max_rows=10000; +insert into t1 values(1); +select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; +drop table t1; +CREATE TABLE t1 (a int, index(a)) engine=heap min_rows=3000 max_rows=3000; +insert into t1 values(1); +select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; +drop table t1; +CREATE TABLE t1 (a int, index(a)) engine=heap max_rows=15000; +insert into t1 values(1); +select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; +drop table t1; + +create table t1 (c1 int, index(c1)) engine=heap max_rows=10000; +insert into t1 select rand(100000000); +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1; +insert into t1 select rand(100000000) from t1 limit 488; +select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; +insert into t1 select rand(100000000) from t1 limit 1; +select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; +insert into t1 select rand(100000000) from t1 limit 1000; +select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; +insert into t1 select rand(100000000) from t1; +select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1"; +drop table t1; diff --git a/mysql-test/suite/maria/aria_sort_buffer.result b/mysql-test/suite/maria/aria_sort_buffer.result index 5db9b9d7d44..a9e06cc3db3 100644 --- a/mysql-test/suite/maria/aria_sort_buffer.result +++ b/mysql-test/suite/maria/aria_sort_buffer.result @@ -5,6 +5,8 @@ Note 1105 Cast to unsigned converted negative integer to it's positive complemen Note 1105 Cast to unsigned converted negative integer to it's positive complement Warning 1292 Truncated incorrect aria_sort_buffer_size value: '18446744073709551615' SET SESSION tmp_table_size=65535; +Warnings: +Warning 1292 Truncated incorrect tmp_table_size value: '65535' CREATE TABLE t1 (a VARCHAR(255)); insert into t1 (a) select seq from seq_1_to_1000; UPDATE t1 SET a=( (SELECT MAX(a) FROM t1)); diff --git a/mysql-test/suite/maria/repair-big-sort.result b/mysql-test/suite/maria/repair-big-sort.result index a650a3872d3..d1dfe3f7c2f 100644 --- a/mysql-test/suite/maria/repair-big-sort.result +++ b/mysql-test/suite/maria/repair-big-sort.result @@ -2,6 +2,8 @@ SET sql_mode=''; CREATE TEMPORARY TABLE t1 (a tinyINT,b CHAR(1)) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; INSERT INTO t1 VALUES (1,1),(3,3),(2,2); SET SESSION tmp_table_size=True; +Warnings: +Warning 1292 Truncated incorrect tmp_table_size value: '1' CREATE TABLE t2 (c INT, d DATE) ENGINE=InnoDB PARTITION BY RANGE (YEAR (d)) SUBPARTITION BY HASH (TO_DAYS (d)) (PARTITION p0 VALUES LESS THAN (1990) (SUBPARTITION s0, SUBPARTITION s1), PARTITION p1 VALUES LESS THAN MAXVALUE (SUBPARTITION s4, SUBPARTITION s5)); SET SESSION aria_sort_buffer_size=CAST(-1 AS UNSIGNED INT); Warnings: diff --git a/mysql-test/suite/sys_vars/r/maximum_basic.result b/mysql-test/suite/sys_vars/r/maximum_basic.result index becd6da91f4..2a5c3e2a70c 100644 --- a/mysql-test/suite/sys_vars/r/maximum_basic.result +++ b/mysql-test/suite/sys_vars/r/maximum_basic.result @@ -9,7 +9,7 @@ Warnings: Warning 1292 Truncated incorrect tmp_table_size value: '40960' SELECT @@session.tmp_table_size; @@session.tmp_table_size -8192 +16384 SET @@session.max_join_size=40960; Warnings: Warning 1292 Truncated incorrect max_join_size value: '40960' diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result index 18fceb52b8f..21ddf0a85f4 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result @@ -3718,7 +3718,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If an internal in-memory temporary table exceeds this size, MariaDB will automatically convert it to an on-disk MyISAM or Aria table. Same as tmp_table_size. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 18446744073709551615 -NUMERIC_BLOCK_SIZE 1 +NUMERIC_BLOCK_SIZE 16384 ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED @@ -3728,7 +3728,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Alias for tmp_memory_table_size. If an internal in-memory temporary table exceeds this size, MariaDB will automatically convert it to an on-disk MyISAM or Aria table. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 18446744073709551615 -NUMERIC_BLOCK_SIZE 1 +NUMERIC_BLOCK_SIZE 16384 ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result index 3f22a7cd968..f09ff460807 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result @@ -4498,7 +4498,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If an internal in-memory temporary table exceeds this size, MariaDB will automatically convert it to an on-disk MyISAM or Aria table. Same as tmp_table_size. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 18446744073709551615 -NUMERIC_BLOCK_SIZE 1 +NUMERIC_BLOCK_SIZE 16384 ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED @@ -4508,7 +4508,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Alias for tmp_memory_table_size. If an internal in-memory temporary table exceeds this size, MariaDB will automatically convert it to an on-disk MyISAM or Aria table. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 18446744073709551615 -NUMERIC_BLOCK_SIZE 1 +NUMERIC_BLOCK_SIZE 16384 ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED diff --git a/mysql-test/suite/sys_vars/r/tmp_disk_table_size_func.result b/mysql-test/suite/sys_vars/r/tmp_disk_table_size_func.result index 7b26106384b..c0866cfec6a 100644 --- a/mysql-test/suite/sys_vars/r/tmp_disk_table_size_func.result +++ b/mysql-test/suite/sys_vars/r/tmp_disk_table_size_func.result @@ -3,7 +3,7 @@ SET @start_tmp_memory_table_size=@@session.tmp_memory_table_size; SET @start_tmp_disk_table_size=@@session.tmp_disk_table_size; -set @@session.tmp_memory_table_size=1000; +set @@session.tmp_memory_table_size=16384; set @@session.tmp_disk_table_size=3000000; create table t1 (a int primary key, b varchar(2000)); insert into t1 select seq,repeat(char(mod(seq,62)+64),seq) from seq_1_to_2000; diff --git a/mysql-test/suite/sys_vars/r/transaction_alloc_block_size_basic.result b/mysql-test/suite/sys_vars/r/transaction_alloc_block_size_basic.result index 8d36354a7bb..4049e7e8c3a 100644 --- a/mysql-test/suite/sys_vars/r/transaction_alloc_block_size_basic.result +++ b/mysql-test/suite/sys_vars/r/transaction_alloc_block_size_basic.result @@ -168,7 +168,6 @@ SET @@global.transaction_alloc_block_size = @start_global_value; SELECT @@global.transaction_alloc_block_size; @@global.transaction_alloc_block_size 8192 -SET @@session.tmp_table_size = @start_session_value; SELECT @@session.transaction_alloc_block_size; @@session.transaction_alloc_block_size 1024 diff --git a/mysql-test/suite/sys_vars/t/maximum_basic-master.opt b/mysql-test/suite/sys_vars/t/maximum_basic-master.opt index 16e365d491c..db0ee8b60c4 100644 --- a/mysql-test/suite/sys_vars/t/maximum_basic-master.opt +++ b/mysql-test/suite/sys_vars/t/maximum_basic-master.opt @@ -1,5 +1,5 @@ --maximum-auto-increment-increment=8192 ---maximum-tmp-table-size=8192 +--maximum-tmp-table-size=16384 --maximum-max-join-size=8192 --maximum-use-stat-tables=COMPLEMENTARY --maximum-sql-mode='REAL_AS_FLOAT,ANSI_QUOTES' diff --git a/mysql-test/suite/sys_vars/t/tmp_disk_table_size_func.test b/mysql-test/suite/sys_vars/t/tmp_disk_table_size_func.test index c78eac199c3..8eb4a2790fc 100644 --- a/mysql-test/suite/sys_vars/t/tmp_disk_table_size_func.test +++ b/mysql-test/suite/sys_vars/t/tmp_disk_table_size_func.test @@ -12,7 +12,7 @@ SET @start_tmp_memory_table_size=@@session.tmp_memory_table_size; SET @start_tmp_disk_table_size=@@session.tmp_disk_table_size; -set @@session.tmp_memory_table_size=1000; +set @@session.tmp_memory_table_size=16384; set @@session.tmp_disk_table_size=3000000; --disable_ps2_protocol diff --git a/mysql-test/suite/sys_vars/t/transaction_alloc_block_size_basic.test b/mysql-test/suite/sys_vars/t/transaction_alloc_block_size_basic.test index 0faa95c8fe6..64452ad3f36 100644 --- a/mysql-test/suite/sys_vars/t/transaction_alloc_block_size_basic.test +++ b/mysql-test/suite/sys_vars/t/transaction_alloc_block_size_basic.test @@ -218,11 +218,9 @@ SELECT transaction_alloc_block_size = @@session.transaction_alloc_block_size; SET @@global.transaction_alloc_block_size = @start_global_value; SELECT @@global.transaction_alloc_block_size; -SET @@session.tmp_table_size = @start_session_value; SELECT @@session.transaction_alloc_block_size; ############################################################# # END OF transaction_alloc_block_size TESTS # ############################################################# - diff --git a/mysql-test/suite/versioning/r/partition.result b/mysql-test/suite/versioning/r/partition.result index 1ceb9c443a2..b0e8057b486 100644 --- a/mysql-test/suite/versioning/r/partition.result +++ b/mysql-test/suite/versioning/r/partition.result @@ -1117,7 +1117,7 @@ f varchar(45000) partition by system_time interval 1 year (partition p1 history, partition pn current); # fill the table until full -insert into t1 () values (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(); +insert into t1 () values (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(); insert into t1 (f) select f from t1; ERROR HY000: The table 't1' is full # leave space for exactly one record in current partition @@ -1133,7 +1133,7 @@ f varchar(45000) ) with system versioning engine=memory partition by system_time interval 1 year (partition p1 history, partition pn current); -insert into t1 () values (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(); +insert into t1 () values (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(); select * into outfile 'load.data' from t1; load data infile 'load.data' replace into table t1; load data infile 'load.data' replace into table t1; diff --git a/mysql-test/suite/versioning/t/partition.test b/mysql-test/suite/versioning/t/partition.test index ec27215b083..e662299bc22 100644 --- a/mysql-test/suite/versioning/t/partition.test +++ b/mysql-test/suite/versioning/t/partition.test @@ -977,7 +977,7 @@ create or replace table t1 ( partition pn current); --echo # fill the table until full -insert into t1 () values (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(); +insert into t1 () values (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(); --error ER_RECORD_FILE_FULL insert into t1 (f) select f from t1; --echo # leave space for exactly one record in current partition @@ -995,7 +995,7 @@ create or replace table t1 ( partition by system_time interval 1 year (partition p1 history, partition pn current); -insert into t1 () values (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(); +insert into t1 () values (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(); --disable_cursor_protocol --disable_ps2_protocol diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 206c924117e..7f282c597d6 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -20577,7 +20577,7 @@ bool Create_tmp_table::finalize(THD *thd, MY_MIN(thd->variables.tmp_memory_table_size, thd->variables.max_heap_table_size) : thd->variables.tmp_disk_table_size) / - share->reclength); + MY_ALIGN(share->reclength, sizeof(char*))); set_if_bigger(share->max_rows,1); // For dummy start options /* Push the LIMIT clause to the temporary table creation, so that we diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index 2eda3ce9c8f..9a7077e357b 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -4218,7 +4218,7 @@ static Sys_var_ulonglong Sys_tmp_table_size( "will automatically convert it to an on-disk MyISAM or Aria table.", SESSION_VAR(tmp_memory_table_size), CMD_LINE(REQUIRED_ARG), VALID_RANGE(0, (ulonglong)~(intptr)0), DEFAULT(16*1024*1024), - BLOCK_SIZE(1)); + BLOCK_SIZE(16384)); static Sys_var_ulonglong Sys_tmp_memory_table_size( "tmp_memory_table_size", @@ -4227,7 +4227,7 @@ static Sys_var_ulonglong Sys_tmp_memory_table_size( "Same as tmp_table_size.", SESSION_VAR(tmp_memory_table_size), CMD_LINE(REQUIRED_ARG), VALID_RANGE(0, (ulonglong)~(intptr)0), DEFAULT(16*1024*1024), - BLOCK_SIZE(1)); + BLOCK_SIZE(16384)); static Sys_var_ulonglong Sys_tmp_disk_table_size( "tmp_disk_table_size", diff --git a/storage/heap/ha_heap.cc b/storage/heap/ha_heap.cc index 404ad22a88a..3f4d1ab69ef 100644 --- a/storage/heap/ha_heap.cc +++ b/storage/heap/ha_heap.cc @@ -619,7 +619,7 @@ static int heap_prepare_hp_create_info(TABLE *table_arg, bool internal_table, case HA_KEY_ALG_UNDEF: case HA_KEY_ALG_HASH: keydef[key].algorithm= HA_KEY_ALG_HASH; - mem_per_row+= sizeof(char*) * 2; // = sizeof(HASH_INFO) + mem_per_row+= sizeof(HASH_INFO); break; case HA_KEY_ALG_BTREE: keydef[key].algorithm= HA_KEY_ALG_BTREE; @@ -688,7 +688,6 @@ static int heap_prepare_hp_create_info(TABLE *table_arg, bool internal_table, } } } - mem_per_row+= MY_ALIGN(MY_MAX(share->reclength, sizeof(char*)) + 1, sizeof(char*)); if (table_arg->found_next_number_field) { keydef[share->next_number_index].flag|= HA_AUTO_KEY; @@ -696,11 +695,18 @@ static int heap_prepare_hp_create_info(TABLE *table_arg, bool internal_table, } hp_create_info->auto_key= auto_key; hp_create_info->auto_key_type= auto_key_type; - hp_create_info->max_table_size=current_thd->variables.max_heap_table_size; + hp_create_info->max_table_size= MY_MAX(current_thd->variables.max_heap_table_size, sizeof(HP_PTRS)); hp_create_info->with_auto_increment= found_real_auto_increment; hp_create_info->internal_table= internal_table; - max_rows= (ha_rows) (hp_create_info->max_table_size / mem_per_row); + max_rows= hp_rows_in_memory(share->reclength, mem_per_row, + hp_create_info->max_table_size); +#ifdef GIVE_ERROR_IF_NOT_MEMORY_TO_INSERT_ONE_ROW + /* We do not give the error now but instead give an error on first insert */ + if (!max_rows) + return HA_WRONG_CREATE_OPTION; +#endif + if (share->max_rows && share->max_rows < max_rows) max_rows= share->max_rows; diff --git a/storage/heap/heapdef.h b/storage/heap/heapdef.h index ffd5382b6f7..e51fe88d8e2 100644 --- a/storage/heap/heapdef.h +++ b/storage/heap/heapdef.h @@ -100,6 +100,9 @@ extern void hp_clear(HP_SHARE *info); extern void hp_clear_keys(HP_SHARE *info); extern uint hp_rb_pack_key(HP_KEYDEF *keydef, uchar *key, const uchar *old, key_part_map keypart_map); +extern ha_rows hp_rows_in_memory(size_t reclength, size_t index_size, + size_t memory_limit); +extern size_t hp_memory_needed_per_row(size_t reclength); extern mysql_mutex_t THR_LOCK_heap; diff --git a/storage/heap/hp_block.c b/storage/heap/hp_block.c index 324efc8b4af..44bca363746 100644 --- a/storage/heap/hp_block.c +++ b/storage/heap/hp_block.c @@ -75,9 +75,11 @@ int hp_get_new_block(HP_SHARE *info, HP_BLOCK *block, size_t *alloc_length) Next time we allocate data for X rows. When level 1 is full, we allocate data for HP_PTRS_IN_NOD at level 2 and 1 + X rows at level 0. - */ + */ *alloc_length= (sizeof(HP_PTRS) * ((i == block->levels) ? i : i - 1) + (ulonglong)block->records_in_block * block->recbuffer); + /* Alloc in blocks of powers of 2 */ + *alloc_length= MY_MAX(*alloc_length, block->alloc_size); if (!(root=(HP_PTRS*) my_malloc(hp_key_memory_HP_PTRS, *alloc_length, MYF(MY_WME | (info->internal ? diff --git a/storage/heap/hp_create.c b/storage/heap/hp_create.c index c07a1e968c4..f35e8e3fac9 100644 --- a/storage/heap/hp_create.c +++ b/storage/heap/hp_create.c @@ -15,11 +15,23 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ #include "heapdef.h" +#include static int keys_compare(void *heap_rb, const void *key1, const void *key2); -static void init_block(HP_BLOCK *block,uint reclength,ulong min_records, +static void init_block(HP_BLOCK *block, size_t reclength, ulong min_records, ulong max_records); + +/* + In how many parts are we going to do allocations of memory and indexes + If we assigne 1M to the heap table memory, we will allocate roughly + (1M/16) bytes per allocaiton +*/ +static const int heap_allocation_parts= 16; + +/* min block allocation */ +static const ulong heap_min_allocation_block= 16384; + /* Create a heap table */ int heap_create(const char *name, HP_CREATE_INFO *create_info, @@ -170,7 +182,8 @@ int heap_create(const char *name, HP_CREATE_INFO *create_info, share->keydef= (HP_KEYDEF*) (share + 1); share->key_stat_version= 1; keyseg= (HA_KEYSEG*) (share->keydef + keys); - init_block(&share->block, visible_offset + 1, min_records, max_records); + init_block(&share->block, hp_memory_needed_per_row(reclength), + min_records, max_records); /* Fix keys */ memcpy(share->keydef, keydef, (size_t) (sizeof(keydef[0]) * keys)); for (i= 0, keyinfo= share->keydef; i < keys; i++, keyinfo++) @@ -266,44 +279,90 @@ static int keys_compare(void *heap_rb_, const void *key1_, heap_rb->search_flag, not_used); } -static void init_block(HP_BLOCK *block, uint reclength, ulong min_records, + +/* + Calculate length needed for storing one row +*/ + +size_t hp_memory_needed_per_row(size_t reclength) +{ + /* Data needed for storing record + pointer to records */ + reclength= MY_MAX(reclength, sizeof(char*)); + /* The + 1 below is for the delete marker at the end of record*/ + reclength= MY_ALIGN(reclength+1, sizeof(char*)); + return reclength; +} + +/* + Calculate the number of rows that fits into a given memory size +*/ + +ha_rows hp_rows_in_memory(size_t reclength, size_t index_size, + size_t memory_limit) +{ + reclength= hp_memory_needed_per_row(reclength); + if ((memory_limit < index_size + reclength + sizeof(HP_PTRS))) + return 0; /* Wrong arguments */ + return (ha_rows) ((memory_limit - sizeof(HP_PTRS)) / + (index_size + reclength)); +} + + +static void init_block(HP_BLOCK *block, size_t reclength, ulong min_records, ulong max_records) { - ulong i,recbuffer,records_in_block; + ulong i,records_in_block; + ulong recbuffer= (ulong) MY_ALIGN(reclength, sizeof(uchar*)); + ulong extra; + ulonglong memory_needed; + size_t alloc_size; /* If not min_records and max_records are given, optimize for 1000 rows */ if (!min_records) - min_records= MY_MIN(1000, max_records); + min_records= MY_MIN(1000, max_records / heap_allocation_parts); if (!max_records) max_records= MY_MAX(min_records, 1000); + min_records= MY_MIN(min_records, max_records); - /* + /* We don't want too few records_in_block as otherwise the overhead of of the HP_PTRS block will be too notable */ - records_in_block= MY_MAX(1000, min_records); - records_in_block= MY_MIN(records_in_block, max_records); - /* If big max_records is given, allocate bigger blocks */ - records_in_block= MY_MAX(records_in_block, max_records / 10); + records_in_block= MY_MAX(min_records, max_records / heap_allocation_parts); + + /* + Align allocation sizes to power of 2 to get less memory fragmentation from + system alloc(). + As long as we have less than 128 allocations, all but one of the + allocations will have an extra HP_PTRS size structure at the start + of the block. + + We ensure that the block is not smaller than heap_min_allocation_block + as otherwise we get strange results when max_records < + heap_allocation_parts) + */ + extra= sizeof(HP_PTRS) + MALLOC_OVERHEAD; + /* We don't want too few blocks per row either */ if (records_in_block < 10) - records_in_block= 10; + records_in_block= MY_MIN(10, max_records); + memory_needed= MY_MAX(((ulonglong) records_in_block * recbuffer + extra), + (ulonglong) heap_min_allocation_block); + + /* We have to limit memory to INT_MAX32 as my_round_up_to_next_power() is 32 bit */ + memory_needed= MY_MIN(memory_needed, (ulonglong) INT_MAX32); + alloc_size= my_round_up_to_next_power((uint32)memory_needed); + records_in_block= (ulong) ((alloc_size - extra)/ recbuffer); + + DBUG_PRINT("info", ("records_in_block: %lu" ,records_in_block)); - recbuffer= (uint) (reclength + sizeof(uchar**) - 1) & ~(sizeof(uchar**) - 1); - /* - Don't allocate more than my_default_record_cache_size per level. - The + 1 is there to ensure that we get at least 1 row per level (for - the exceptional case of very long rows) - */ - if ((ulonglong) records_in_block*recbuffer > - (my_default_record_cache_size-sizeof(HP_PTRS)*HP_MAX_LEVELS)) - records_in_block= (my_default_record_cache_size - sizeof(HP_PTRS) * - HP_MAX_LEVELS) / recbuffer + 1; block->records_in_block= records_in_block; block->recbuffer= recbuffer; block->last_allocated= 0L; + /* All alloctions are done with this size, if possible */ + block->alloc_size= alloc_size - MALLOC_OVERHEAD; for (i= 0; i <= HP_MAX_LEVELS; i++) block->level_info[i].records_under_level= diff --git a/storage/heap/hp_write.c b/storage/heap/hp_write.c index 5469784c8c1..cb079eac757 100644 --- a/storage/heap/hp_write.c +++ b/storage/heap/hp_write.c @@ -145,21 +145,22 @@ static uchar *next_free_record_pos(HP_SHARE *info) DBUG_PRINT("exit",("Used old position: %p", pos)); DBUG_RETURN(pos); } - if ((info->records > info->max_records && info->max_records) || - (info->data_length + info->index_length >= info->max_table_size)) - { - DBUG_PRINT("error", - ("record file full. records: %lu max_records: %lu " - "data_length: %llu index_length: %llu " - "max_table_size: %llu", - info->records, info->max_records, - info->data_length, info->index_length, - info->max_table_size)); - my_errno=HA_ERR_RECORD_FILE_FULL; - DBUG_RETURN(NULL); - } if (!(block_pos=(info->records % info->block.records_in_block))) { + if ((info->records > info->max_records && info->max_records) || + (info->data_length + info->index_length >= info->max_table_size)) + { + DBUG_PRINT("error", + ("record file full. records: %lu max_records: %lu " + "data_length: %llu index_length: %llu " + "max_table_size: %llu", + info->records, info->max_records, + info->data_length, info->index_length, + info->max_table_size)); + my_errno=HA_ERR_RECORD_FILE_FULL; + DBUG_RETURN(NULL); + } + if (hp_get_new_block(info, &info->block,&length)) DBUG_RETURN(NULL); info->data_length+=length; From f29762334588da5c76646eb8a9a2d6fddcdc61f4 Mon Sep 17 00:00:00 2001 From: Monty Date: Sun, 1 Dec 2024 16:05:58 +0200 Subject: [PATCH 06/31] Update my_default_record_cache_size if global.read_buff_size is changed Before this patch, my_default_record_cache_size was only updated on server start from global_read_buff.size --- sql/sys_vars.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index 9a7077e357b..b9d944ab3ee 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -2923,6 +2923,14 @@ static Sys_var_proxy_user Sys_proxy_user( static Sys_var_external_user Sys_exterenal_user( "external_user", "The external user account used when logging in"); + +static bool update_record_cache(sys_var *self, THD *thd, enum_var_type type) +{ + if (type == OPT_GLOBAL) + my_default_record_cache_size= global_system_variables.read_buff_size; + return false; +} + static Sys_var_ulong Sys_read_buff_size( "read_buffer_size", "Each thread that does a sequential scan allocates a buffer of " @@ -2930,7 +2938,8 @@ static Sys_var_ulong Sys_read_buff_size( "you may want to increase this value", SESSION_VAR(read_buff_size), CMD_LINE(REQUIRED_ARG), VALID_RANGE(IO_SIZE*2, INT_MAX32), DEFAULT(128*1024), - BLOCK_SIZE(IO_SIZE)); + BLOCK_SIZE(IO_SIZE), NO_MUTEX_GUARD, NOT_IN_BINLOG, + ON_CHECK(0), ON_UPDATE(update_record_cache)); static bool check_read_only(sys_var *self, THD *thd, set_var *var) { From e600f9aebb5606243550d8996161dc76696e8124 Mon Sep 17 00:00:00 2001 From: Monty Date: Fri, 22 Nov 2024 14:23:57 +0200 Subject: [PATCH 07/31] MDEV-35750 Change MEM_ROOT allocation sizes to reduse calls to malloc() and avoid memory fragmentation This commit updates default memory allocations size used with MEM_ROOT objects to minimize the number of calls to malloc(). Changes: - Updated MEM_ROOT block sizes in sql_const.h - Updated MALLOC_OVERHEAD to also take into account the extra memory allocated by my_malloc() - Updated init_alloc_root() to only take MALLOC_OVERHEAD into account as buffer size, not MALLOC_OVERHEAD + sizeof(USED_MEM). - Reset mem_root->first_block_usage if and only if first block was used. - Increase MEM_ROOT buffers sized used by my_load_defaults, plugin_init, Create_tmp_table, allocate_table_share, TABLE and TABLE_SHARE. This decreases number of malloc calls during queries. - Use a small buffer for THD->main_mem_root in THD::THD. This avoids multiple malloc() call for new connections. I tried the above changes on a complex select query with 12 tables. The following shows the number of extra allocations that where used to increase the size of the MEM_ROOT buffers. Original code: - Connection to MariaDB: 9 allocations - First query run: 146 allocations - Second query run: 24 allocations Max memory allocated for thd when using with heap table: 61,262,408 Max memory allocated for thd when using Aria tmp table: 419,464 After changes: Connection to MariaDB: 0 allocations - First run: 25 allocations - Second run: 7 allocations Max memory allocated for thd when using with heap table: 61,347,424 Max memory allocated for thd when using Aria table: 529,168 The new code uses slightly more memory, but avoids memory fragmentation and is slightly faster thanks to much fewer calls to malloc(). Reviewed-by: Sergei Golubchik --- include/my_global.h | 2 +- include/my_sys.h | 1 + mysql-test/main/mysqld--help.result | 4 +- mysql-test/main/variables.result | 12 +++--- .../r/aria_sort_buffer_size_basic.result | 6 +-- .../r/query_alloc_block_size_basic.result | 20 +++++----- .../r/query_prealloc_size_basic.result | 20 +++++----- .../suite/sys_vars/r/sysvars_aria.result | 2 +- .../sys_vars/r/sysvars_server_embedded.result | 2 +- .../r/sysvars_server_notembedded.result | 2 +- .../t/query_alloc_block_size_basic.test | 4 +- .../sys_vars/t/query_prealloc_size_basic.test | 4 +- mysys/my_alloc.c | 37 +++++++++++++------ mysys/my_default.c | 6 +-- sql/sql_class.cc | 3 +- sql/sql_class.h | 2 +- sql/sql_const.h | 21 +++++++---- sql/sql_plugin.cc | 6 +-- sql/sql_select.cc | 4 +- sql/table.cc | 16 ++++---- 20 files changed, 98 insertions(+), 76 deletions(-) diff --git a/include/my_global.h b/include/my_global.h index 043a20b216f..fd774bdac1f 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -667,7 +667,7 @@ typedef SOCKET_SIZE_TYPE size_socket; */ #define IO_SIZE 4096U /* - How much overhead does malloc have. The code often allocates + How much overhead does malloc/my_malloc have. The code often allocates something like 1024-MALLOC_OVERHEAD bytes */ #define MALLOC_OVERHEAD (8+24) diff --git a/include/my_sys.h b/include/my_sys.h index 02aef947d6f..4c371244ab9 100644 --- a/include/my_sys.h +++ b/include/my_sys.h @@ -878,6 +878,7 @@ extern void my_free_lock(void *ptr); #endif #define alloc_root_inited(A) ((A)->min_malloc != 0) #define ALLOC_ROOT_MIN_BLOCK_SIZE (MALLOC_OVERHEAD + sizeof(USED_MEM) + 8) +#define DEFAULT_ROOT_BLOCK_SIZE 1024 #define clear_alloc_root(A) do { (A)->free= (A)->used= (A)->pre_alloc= 0; (A)->min_malloc=0;} while(0) extern void init_alloc_root(PSI_memory_key key, MEM_ROOT *mem_root, size_t block_size, size_t pre_alloc_size, diff --git a/mysql-test/main/mysqld--help.result b/mysql-test/main/mysqld--help.result index 352063ece38..8857aff2fc2 100644 --- a/mysql-test/main/mysqld--help.result +++ b/mysql-test/main/mysqld--help.result @@ -1785,14 +1785,14 @@ profiling-history-size 15 progress-report-time 5 protocol-version 10 proxy-protocol-networks -query-alloc-block-size 16384 +query-alloc-block-size 32768 query-cache-limit 1048576 query-cache-min-res-unit 4096 query-cache-size 1048576 query-cache-strip-comments FALSE query-cache-type OFF query-cache-wlock-invalidate FALSE -query-prealloc-size 24576 +query-prealloc-size 32768 range-alloc-block-size 4096 read-binlog-speed-limit 0 read-buffer-size 131072 diff --git a/mysql-test/main/variables.result b/mysql-test/main/variables.result index a16dcd2d44c..73cfa0e613d 100644 --- a/mysql-test/main/variables.result +++ b/mysql-test/main/variables.result @@ -299,8 +299,8 @@ SHOW VARIABLES WHERE variable_name IN ('range_alloc_block_size', 'query_alloc_block_size', 'query_prealloc_size', 'transaction_alloc_block_size', 'transaction_prealloc_size'); Variable_name Value -query_alloc_block_size 16384 -query_prealloc_size 24576 +query_alloc_block_size 32768 +query_prealloc_size 32768 range_alloc_block_size 4096 transaction_alloc_block_size 8192 transaction_prealloc_size 4096 @@ -310,8 +310,8 @@ WHERE variable_name IN ('range_alloc_block_size', 'query_alloc_block_size', 'query_prealloc_size', 'transaction_alloc_block_size', 'transaction_prealloc_size') ORDER BY 1; VARIABLE_NAME VARIABLE_VALUE -QUERY_ALLOC_BLOCK_SIZE 16384 -QUERY_PREALLOC_SIZE 24576 +QUERY_ALLOC_BLOCK_SIZE 32768 +QUERY_PREALLOC_SIZE 32768 RANGE_ALLOC_BLOCK_SIZE 4096 TRANSACTION_ALLOC_BLOCK_SIZE 8192 TRANSACTION_PREALLOC_SIZE 4096 @@ -392,8 +392,8 @@ SHOW VARIABLES WHERE variable_name IN ('range_alloc_block_size', 'query_alloc_block_size', 'query_prealloc_size', 'transaction_alloc_block_size', 'transaction_prealloc_size'); Variable_name Value -query_alloc_block_size 16384 -query_prealloc_size 24576 +query_alloc_block_size 32768 +query_prealloc_size 32768 range_alloc_block_size 4096 transaction_alloc_block_size 8192 transaction_prealloc_size 4096 diff --git a/mysql-test/suite/sys_vars/r/aria_sort_buffer_size_basic.result b/mysql-test/suite/sys_vars/r/aria_sort_buffer_size_basic.result index 6da4c9bfe97..32e1c9965d6 100644 --- a/mysql-test/suite/sys_vars/r/aria_sort_buffer_size_basic.result +++ b/mysql-test/suite/sys_vars/r/aria_sort_buffer_size_basic.result @@ -22,13 +22,13 @@ Warnings: Warning 1292 Truncated incorrect aria_sort_buffer_size value: '10' select @@global.aria_sort_buffer_size; @@global.aria_sort_buffer_size -16376 +16352 set session aria_sort_buffer_size=10; Warnings: Warning 1292 Truncated incorrect aria_sort_buffer_size value: '10' select @@session.aria_sort_buffer_size; @@session.aria_sort_buffer_size -16376 +16352 set global aria_sort_buffer_size=1.1; ERROR 42000: Incorrect argument type to variable 'aria_sort_buffer_size' set session aria_sort_buffer_size=1e1; @@ -40,7 +40,7 @@ Warnings: Warning 1292 Truncated incorrect aria_sort_buffer_size value: '0' select @@global.aria_sort_buffer_size; @@global.aria_sort_buffer_size -16376 +16352 set session aria_sort_buffer_size=cast(-1 as unsigned int); select @@session.aria_sort_buffer_size; @@session.aria_sort_buffer_size diff --git a/mysql-test/suite/sys_vars/r/query_alloc_block_size_basic.result b/mysql-test/suite/sys_vars/r/query_alloc_block_size_basic.result index accabb34dbe..2f49ab15705 100644 --- a/mysql-test/suite/sys_vars/r/query_alloc_block_size_basic.result +++ b/mysql-test/suite/sys_vars/r/query_alloc_block_size_basic.result @@ -1,11 +1,11 @@ SET @start_global_value = @@global.query_alloc_block_size; SELECT @start_global_value; @start_global_value -16384 +32768 SET @start_session_value = @@session.query_alloc_block_size; SELECT @start_session_value; @start_session_value -16384 +32768 '#--------------------FN_DYNVARS_130_01-------------------------#' SET @@global.query_alloc_block_size = 10000; Warnings: @@ -13,22 +13,22 @@ Warning 1292 Truncated incorrect query_alloc_block_size value: '10000' SET @@global.query_alloc_block_size = DEFAULT; SELECT @@global.query_alloc_block_size; @@global.query_alloc_block_size -16384 +32768 SET @@session.query_alloc_block_size = 20000; Warnings: Warning 1292 Truncated incorrect query_alloc_block_size value: '20000' SET @@session.query_alloc_block_size = DEFAULT; SELECT @@session.query_alloc_block_size; @@session.query_alloc_block_size -16384 +32768 '#--------------------FN_DYNVARS_130_02-------------------------#' SET @@global.query_alloc_block_size = DEFAULT; -SELECT @@global.query_alloc_block_size = 16384; -@@global.query_alloc_block_size = 16384 +SELECT @@global.query_alloc_block_size = 32768; +@@global.query_alloc_block_size = 32768 1 SET @@session.query_alloc_block_size = DEFAULT; -SELECT @@session.query_alloc_block_size = 16384; -@@session.query_alloc_block_size = 16384 +SELECT @@session.query_alloc_block_size = 32768; +@@session.query_alloc_block_size = 32768 1 '#--------------------FN_DYNVARS_130_03-------------------------#' SET @@global.query_alloc_block_size = 1024; @@ -177,8 +177,8 @@ ERROR 42S22: Unknown column 'query_alloc_block_size' in 'SELECT' SET @@global.query_alloc_block_size = @start_global_value; SELECT @@global.query_alloc_block_size; @@global.query_alloc_block_size -16384 +32768 SET @@session.query_alloc_block_size = @start_session_value; SELECT @@session.query_alloc_block_size; @@session.query_alloc_block_size -16384 +32768 diff --git a/mysql-test/suite/sys_vars/r/query_prealloc_size_basic.result b/mysql-test/suite/sys_vars/r/query_prealloc_size_basic.result index 23cb61f0849..9e02be78b8b 100644 --- a/mysql-test/suite/sys_vars/r/query_prealloc_size_basic.result +++ b/mysql-test/suite/sys_vars/r/query_prealloc_size_basic.result @@ -1,11 +1,11 @@ SET @start_global_value = @@global.query_prealloc_size ; SELECT @start_global_value; @start_global_value -24576 +32768 SET @start_session_value = @@session.query_prealloc_size ; SELECT @start_session_value; @start_session_value -24576 +32768 '#--------------------FN_DYNVARS_005_01-------------------------#' SET @@global.query_prealloc_size = 100; Warnings: @@ -13,22 +13,22 @@ Warning 1292 Truncated incorrect query_prealloc_size value: '100' SET @@global.query_prealloc_size = DEFAULT; SELECT @@global.query_prealloc_size ; @@global.query_prealloc_size -24576 +32768 SET @@session.query_prealloc_size = 200; Warnings: Warning 1292 Truncated incorrect query_prealloc_size value: '200' SET @@session.query_prealloc_size = DEFAULT; SELECT @@session.query_prealloc_size ; @@session.query_prealloc_size -24576 +32768 '#--------------------FN_DYNVARS_005_02-------------------------#' SET @@global.query_prealloc_size = DEFAULT; -SELECT @@global.query_prealloc_size = 24576; -@@global.query_prealloc_size = 24576 +SELECT @@global.query_prealloc_size = 32768; +@@global.query_prealloc_size = 32768 1 SET @@session.query_prealloc_size = DEFAULT; -SELECT @@session.query_prealloc_size = 24576; -@@session.query_prealloc_size = 24576 +SELECT @@session.query_prealloc_size = 32768; +@@session.query_prealloc_size = 32768 1 '#--------------------FN_DYNVARS_005_03-------------------------#' SET @@global.query_prealloc_size = 8192; @@ -163,8 +163,8 @@ ERROR 42S22: Unknown column 'query_prealloc_size' in 'SELECT' SET @@global.query_prealloc_size = @start_global_value; SELECT @@global.query_prealloc_size ; @@global.query_prealloc_size -24576 +32768 SET @@session.query_prealloc_size = @start_session_value; SELECT @@session.query_prealloc_size ; @@session.query_prealloc_size -24576 +32768 diff --git a/mysql-test/suite/sys_vars/r/sysvars_aria.result b/mysql-test/suite/sys_vars/r/sysvars_aria.result index 427eb83c949..58aae0fc664 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_aria.result +++ b/mysql-test/suite/sys_vars/r/sysvars_aria.result @@ -223,7 +223,7 @@ DEFAULT_VALUE 268434432 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The buffer that is allocated when sorting the index when doing a REPAIR or when creating indexes with CREATE INDEX or ALTER TABLE. -NUMERIC_MIN_VALUE 16376 +NUMERIC_MIN_VALUE 16352 NUMERIC_MAX_VALUE 1152921504606846975 NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result index 21ddf0a85f4..5a24c88f4ca 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result @@ -216,7 +216,7 @@ VARIABLE_NAME ARIA_SORT_BUFFER_SIZE VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The buffer that is allocated when sorting the index when doing a REPAIR or when creating indexes with CREATE INDEX or ALTER TABLE. -NUMERIC_MIN_VALUE 16376 +NUMERIC_MIN_VALUE 16352 NUMERIC_MAX_VALUE 1152921504606846975 NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result index f09ff460807..1cea5c34427 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result @@ -216,7 +216,7 @@ VARIABLE_NAME ARIA_SORT_BUFFER_SIZE VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The buffer that is allocated when sorting the index when doing a REPAIR or when creating indexes with CREATE INDEX or ALTER TABLE. -NUMERIC_MIN_VALUE 16376 +NUMERIC_MIN_VALUE 16352 NUMERIC_MAX_VALUE 1152921504606846975 NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL diff --git a/mysql-test/suite/sys_vars/t/query_alloc_block_size_basic.test b/mysql-test/suite/sys_vars/t/query_alloc_block_size_basic.test index 1793652397f..85c0c34f0ac 100644 --- a/mysql-test/suite/sys_vars/t/query_alloc_block_size_basic.test +++ b/mysql-test/suite/sys_vars/t/query_alloc_block_size_basic.test @@ -60,10 +60,10 @@ SELECT @@session.query_alloc_block_size; ################################################################### SET @@global.query_alloc_block_size = DEFAULT; -SELECT @@global.query_alloc_block_size = 16384; +SELECT @@global.query_alloc_block_size = 32768; SET @@session.query_alloc_block_size = DEFAULT; -SELECT @@session.query_alloc_block_size = 16384; +SELECT @@session.query_alloc_block_size = 32768; --echo '#--------------------FN_DYNVARS_130_03-------------------------#' diff --git a/mysql-test/suite/sys_vars/t/query_prealloc_size_basic.test b/mysql-test/suite/sys_vars/t/query_prealloc_size_basic.test index 1a6ed56c5f9..6122a288610 100644 --- a/mysql-test/suite/sys_vars/t/query_prealloc_size_basic.test +++ b/mysql-test/suite/sys_vars/t/query_prealloc_size_basic.test @@ -60,10 +60,10 @@ SELECT @@session.query_prealloc_size ; ######################################################################## SET @@global.query_prealloc_size = DEFAULT; -SELECT @@global.query_prealloc_size = 24576; +SELECT @@global.query_prealloc_size = 32768; SET @@session.query_prealloc_size = DEFAULT; -SELECT @@session.query_prealloc_size = 24576; +SELECT @@session.query_prealloc_size = 32768; --echo '#--------------------FN_DYNVARS_005_03-------------------------#' diff --git a/mysys/my_alloc.c b/mysys/my_alloc.c index e81509c9efc..1be03033424 100644 --- a/mysys/my_alloc.c +++ b/mysys/my_alloc.c @@ -64,7 +64,13 @@ void init_alloc_root(PSI_memory_key key, MEM_ROOT *mem_root, size_t block_size, mem_root->free= mem_root->used= mem_root->pre_alloc= 0; mem_root->min_malloc= 32; - mem_root->block_size= block_size - ALLOC_ROOT_MIN_BLOCK_SIZE; + /* + We remove MALLOC_OVERHEAD from blocksize to ensure that if the user + used a block size of power of 2, we will not allocate over it, + including the extra memory added by safe_malloc & malloc(). + */ + mem_root->block_size= (block_size > MALLOC_OVERHEAD ? + block_size - MALLOC_OVERHEAD : 0); mem_root->flags= 0; if (my_flags & MY_THREAD_SPECIFIC) mem_root->flags|= ROOT_FLAG_THREAD_SPECIFIC; @@ -114,7 +120,8 @@ void reset_root_defaults(MEM_ROOT *mem_root, size_t block_size, DBUG_ENTER("reset_root_defaults"); DBUG_ASSERT(alloc_root_inited(mem_root)); - mem_root->block_size= block_size - ALLOC_ROOT_MIN_BLOCK_SIZE; + mem_root->block_size= (block_size > MALLOC_OVERHEAD ? + block_size - MALLOC_OVERHEAD : 0); #if !(defined(HAVE_valgrind) && defined(EXTRA_DEBUG)) if (pre_alloc_size) { @@ -173,7 +180,7 @@ void *alloc_root(MEM_ROOT *mem_root, size_t length) #if defined(HAVE_valgrind) && defined(EXTRA_DEBUG) reg1 USED_MEM *next; DBUG_ENTER("alloc_root"); - DBUG_PRINT("enter",("root: %p", mem_root)); + DBUG_PRINT("enter",("root: %p length: %ld", mem_root, (long) length)); DBUG_ASSERT(alloc_root_inited(mem_root)); @@ -207,7 +214,7 @@ void *alloc_root(MEM_ROOT *mem_root, size_t length) reg2 USED_MEM **prev; size_t original_length __attribute__((unused)) = length; DBUG_ENTER("alloc_root"); - DBUG_PRINT("enter",("root: %p", mem_root)); + DBUG_PRINT("enter",("root: %p length: %ld", mem_root, (long) length)); DBUG_ASSERT(alloc_root_inited(mem_root)); DBUG_ASSERT((mem_root->flags & ROOT_FLAG_READ_ONLY) == 0); @@ -227,8 +234,8 @@ void *alloc_root(MEM_ROOT *mem_root, size_t length) (*prev)->left < ALLOC_MAX_BLOCK_TO_DROP) { next= *prev; - *prev= next->next; /* Remove block from list */ - next->next= mem_root->used; + *prev= next->next; /* Remove block from free list */ + next->next= mem_root->used; /* Add to used list */ mem_root->used= next; mem_root->first_block_usage= 0; } @@ -250,21 +257,27 @@ void *alloc_root(MEM_ROOT *mem_root, size_t length) DBUG_RETURN((void*) 0); /* purecov: inspected */ } mem_root->block_num++; - next->next= *prev; next->size= get_size; next->left= get_size-ALIGN_SIZE(sizeof(USED_MEM)); - *prev=next; + next->next= 0; + DBUG_ASSERT(*prev == 0); + *prev= next; /* Put last in free list */ TRASH_MEM(next); } + else + { + /* Reset first_block_usage if we used the first block */ + if (prev == &mem_root->free) + mem_root->first_block_usage= 0; + } point= (uchar*) ((char*) next+ (next->size-next->left)); - /*TODO: next part may be unneded due to mem_root->first_block_usage counter*/ if ((next->left-= length) < mem_root->min_malloc) - { /* Full block */ - *prev= next->next; /* Remove block from list */ + { + /* Full block. Move the block from the free list to the used list */ + *prev= next->next; next->next= mem_root->used; mem_root->used= next; - mem_root->first_block_usage= 0; } point+= REDZONE_SIZE; TRASH_ALLOC(point, original_length); diff --git a/mysys/my_default.c b/mysys/my_default.c index fb367f43e66..1743ee744ef 100644 --- a/mysys/my_default.c +++ b/mysys/my_default.c @@ -410,14 +410,14 @@ int my_load_defaults(const char *conf_file, const char **groups, int *argc, const char **dirs; DBUG_ENTER("my_load_defaults"); - init_alloc_root(key_memory_defaults, &alloc, 512, 0, MYF(0)); + init_alloc_root(key_memory_defaults, &alloc, 4096, 0, MYF(0)); if ((dirs= init_default_directories(&alloc)) == NULL) goto err; args_used= get_defaults_options(*argv); - if (my_init_dynamic_array(key_memory_defaults, &args, sizeof(char*), 128, 64, - MYF(0))) + if (my_init_dynamic_array(key_memory_defaults, &args, sizeof(char*), + DEFAULT_ROOT_BLOCK_SIZE, 0, MYF(0))) goto err; insert_dynamic(&args, *argv);/* Name MUST be set, even by embedded library */ diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 6542ffd8cb3..059d6c03d3a 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -803,9 +803,10 @@ THD::THD(my_thread_id id, bool is_wsrep_applier) Pass nominal parameters to init_alloc_root only to ensure that the destructor works OK in case of an error. The main_mem_root will be re-initialized in init_for_queries(). + The base one will mainly be use to allocate memory during authentication. */ init_sql_alloc(key_memory_thd_main_mem_root, - &main_mem_root, ALLOC_ROOT_MIN_BLOCK_SIZE, 0, + &main_mem_root, DEFAULT_ROOT_BLOCK_SIZE, 0, MYF(MY_THREAD_SPECIFIC)); /* diff --git a/sql/sql_class.h b/sql/sql_class.h index b47716270f1..8e3bb7c7467 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -3243,7 +3243,7 @@ public: bzero((char*)this, sizeof(*this)); implicit_xid.null(); init_sql_alloc(key_memory_thd_transactions, &mem_root, - ALLOC_ROOT_MIN_BLOCK_SIZE, 0, MYF(MY_THREAD_SPECIFIC)); + DEFAULT_ROOT_BLOCK_SIZE, 0, MYF(MY_THREAD_SPECIFIC)); } } default_transaction, *transaction; Global_read_lock global_read_lock; diff --git a/sql/sql_const.h b/sql/sql_const.h index 490b870d768..354d942e160 100644 --- a/sql/sql_const.h +++ b/sql/sql_const.h @@ -175,21 +175,26 @@ #define MYSQLD_NET_RETRY_COUNT 10 ///< Abort read after this many int. #endif -#define QUERY_ALLOC_BLOCK_SIZE 16384 -#define QUERY_ALLOC_PREALLOC_SIZE 24576 +/* + Allocations with MEM_ROOT. We should try to keep these as powers of 2 + and not higher than 32768 to get full benefit of allocators like + tcmalloc that will for these use a local heap without locks. +*/ + +#define QUERY_ALLOC_BLOCK_SIZE 32768 +#define QUERY_ALLOC_PREALLOC_SIZE 32768 /* 65536 could be better */ #define TRANS_ALLOC_BLOCK_SIZE 8192 #define TRANS_ALLOC_PREALLOC_SIZE 4096 #define RANGE_ALLOC_BLOCK_SIZE 4096 #define ACL_ALLOC_BLOCK_SIZE 1024 #define UDF_ALLOC_BLOCK_SIZE 1024 -#define TABLE_ALLOC_BLOCK_SIZE 1024 +#define TABLE_PREALLOC_BLOCK_SIZE 8192 +#define TABLE_ALLOC_BLOCK_SIZE 4096 #define WARN_ALLOC_BLOCK_SIZE 2048 #define WARN_ALLOC_PREALLOC_SIZE 1024 -/* - Note that if we are using 32K or less, then TCmalloc will use a local - heap without locks! -*/ -#define SHOW_ALLOC_BLOCK_SIZE (32768-MALLOC_OVERHEAD) +#define TMP_TABLE_BLOCK_SIZE 16384 +#define TMP_TABLE_PREALLOC_SIZE 32768 +#define SHOW_ALLOC_BLOCK_SIZE 32768 /* The following parameters is to decide when to use an extra cache to diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc index a1c0a889274..6ad0c35e945 100644 --- a/sql/sql_plugin.cc +++ b/sql/sql_plugin.cc @@ -1616,9 +1616,9 @@ int plugin_init(int *argc, char **argv, int flags) init_plugin_psi_keys(); - init_alloc_root(key_memory_plugin_mem_root, &plugin_mem_root, 4096, 4096, MYF(0)); - init_alloc_root(key_memory_plugin_mem_root, &plugin_vars_mem_root, 4096, 4096, MYF(0)); - init_alloc_root(PSI_NOT_INSTRUMENTED, &tmp_root, 4096, 4096, MYF(0)); + init_alloc_root(key_memory_plugin_mem_root, &plugin_mem_root, 4096, 16384, MYF(0)); + init_alloc_root(key_memory_plugin_mem_root, &plugin_vars_mem_root, 4096, 32768, MYF(0)); + init_alloc_root(PSI_NOT_INSTRUMENTED, &tmp_root, 16384, 32768, MYF(0)); if (my_hash_init(key_memory_plugin_bookmark, &bookmark_hash, &my_charset_bin, 32, 0, 0, get_bookmark_hash_key, NULL, HASH_UNIQUE)) diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 7f282c597d6..a4e57a759ff 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -20049,8 +20049,8 @@ TABLE *Create_tmp_table::start(THD *thd, copy_func_count+= param->sum_func_count; param->copy_func_count= copy_func_count; - init_sql_alloc(key_memory_TABLE, &own_root, TABLE_ALLOC_BLOCK_SIZE, 0, - MYF(MY_THREAD_SPECIFIC)); + init_sql_alloc(key_memory_TABLE, &own_root, TMP_TABLE_BLOCK_SIZE, + TMP_TABLE_PREALLOC_SIZE, MYF(MY_THREAD_SPECIFIC)); if (!multi_alloc_root(&own_root, &table, sizeof(*table), diff --git a/sql/table.cc b/sql/table.cc index 3bf1906f62f..fa88ddf4407 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -345,8 +345,8 @@ TABLE_SHARE *alloc_table_share(const char *db, const char *table_name, path_length= build_table_filename(path, sizeof(path) - 1, db, table_name, "", 0); - init_sql_alloc(key_memory_table_share, &mem_root, TABLE_ALLOC_BLOCK_SIZE, 0, - MYF(0)); + init_sql_alloc(key_memory_table_share, &mem_root, TABLE_ALLOC_BLOCK_SIZE, + TABLE_PREALLOC_BLOCK_SIZE, MYF(0)); if (multi_alloc_root(&mem_root, &share, sizeof(*share), &key_buff, key_length, @@ -435,10 +435,12 @@ void init_tmp_table_share(THD *thd, TABLE_SHARE *share, const char *key, bzero((char*) share, sizeof(*share)); /* This can't be MY_THREAD_SPECIFIC for slaves as they are freed - during cleanup() from Relay_log_info::close_temporary_tables() + during cleanup() from Relay_log_info::close_temporary_tables(). + We can also not use pre-alloc here, as internal temporary tables + are not freeing table->share->mem_root */ init_sql_alloc(key_memory_table_share, &share->mem_root, - TABLE_ALLOC_BLOCK_SIZE, 0, + TABLE_PREALLOC_BLOCK_SIZE, 0, MYF(thd->slave_thread ? 0 : MY_THREAD_SPECIFIC)); share->table_category= TABLE_CATEGORY_TEMPORARY; share->tmp_table= INTERNAL_TMP_TABLE; @@ -4136,7 +4138,7 @@ enum open_frm_error open_table_from_share(THD *thd, TABLE_SHARE *share, goto err; } init_sql_alloc(key_memory_TABLE, &outparam->mem_root, TABLE_ALLOC_BLOCK_SIZE, - 0, MYF(0)); + TABLE_PREALLOC_BLOCK_SIZE, MYF(0)); /* We have to store the original alias in mem_root as constraints and virtual @@ -4512,8 +4514,8 @@ partititon_err: thd->lex->context_analysis_only= save_context_analysis_only; DBUG_EXECUTE_IF("print_long_unique_internal_state", - print_long_unique_table(outparam);); - DBUG_RETURN (OPEN_FRM_OK); + print_long_unique_table(outparam);); + DBUG_RETURN(OPEN_FRM_OK); err: if (! error_reported) From 504cfa4857026749c9aae01d8f099b4a67356672 Mon Sep 17 00:00:00 2001 From: Monty Date: Tue, 3 Dec 2024 19:06:34 +0200 Subject: [PATCH 08/31] Updated misc_session_status.test to not fail if select does not fail The test with memory restrictions randomly works or fails in buildbot depending on server configurations. On my machine the original test worked. As the test was there to just check if the server crashes when run with small memory configurations, I disabled testing if the query would fail or not. The test still has its original purpose. Discussed with: Sergei Golubchik --- mysql-test/suite/perfschema/r/misc_session_status.result | 1 - mysql-test/suite/perfschema/t/misc_session_status.test | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/mysql-test/suite/perfschema/r/misc_session_status.result b/mysql-test/suite/perfschema/r/misc_session_status.result index 3ce472fc617..2133b064eb2 100644 --- a/mysql-test/suite/perfschema/r/misc_session_status.result +++ b/mysql-test/suite/perfschema/r/misc_session_status.result @@ -7,7 +7,6 @@ select * from performance_schema.session_status limit 0; VARIABLE_NAME VARIABLE_VALUE set max_session_mem_used=32768; select * from performance_schema.session_status; -ERROR HY000: The MariaDB server is running with the --max-session-mem-used=32768 option so it cannot execute this statement set global innodb_io_capacity_max=100; Warnings: Warning 1210 Setting innodb_io_capacity_max 100 lower than innodb_io_capacity 200. diff --git a/mysql-test/suite/perfschema/t/misc_session_status.test b/mysql-test/suite/perfschema/t/misc_session_status.test index c9e7d066b0c..afb08eb4e9d 100644 --- a/mysql-test/suite/perfschema/t/misc_session_status.test +++ b/mysql-test/suite/perfschema/t/misc_session_status.test @@ -10,9 +10,11 @@ set @old_innodb_io_capacity=@@global.innodb_io_capacity; set @old_innodb_io_capacity_max=@@global.innodb_io_capacity_max; select * from performance_schema.session_status limit 0; # discover the table set max_session_mem_used=32768; ---error ER_OPTION_PREVENTS_STATEMENT +--disable_result_log +--error 0,ER_OPTION_PREVENTS_STATEMENT # this used to crash, when OOM happened under LOCK_thd_kill select * from performance_schema.session_status; +--enable_result_log # this used to cause mutex lock order violation when OOM happened under LOCK_global_system_variables set global innodb_io_capacity_max=100; set max_session_mem_used=default; From 996e7fd7d5d595aa674ec32f9f3814f96137c324 Mon Sep 17 00:00:00 2001 From: Monty Date: Tue, 3 Dec 2024 19:08:10 +0200 Subject: [PATCH 09/31] Avoid printing "rowid_filter_skipped" in optimizer trace if no rowid filter There is no point in saying something is skipped when it does not exists. --- mysql-test/main/opt_trace.result | 1 - sql/sql_select.cc | 7 +++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/mysql-test/main/opt_trace.result b/mysql-test/main/opt_trace.result index ff9797a7072..8120914acaf 100644 --- a/mysql-test/main/opt_trace.result +++ b/mysql-test/main/opt_trace.result @@ -4134,7 +4134,6 @@ explain delete t0,t1 from t0, t1 where t0.a=t1.a and t1.a<3 { "rec_per_key_stats_missing": true, "used_range_estimates": false, "cause": "not better than ref estimates", - "rowid_filter_skipped": "worst/max seeks clipping", "rows": 2, "cost": 3.003514767, "chosen": true diff --git a/sql/sql_select.cc b/sql/sql_select.cc index a4e57a759ff..024743f02f3 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -8704,8 +8704,11 @@ best_access_path(JOIN *join, if (!(records < s->worst_seeks && records <= thd->variables.max_seeks_for_key)) { - // Don't use rowid filter - trace_access_idx.add("rowid_filter_skipped", "worst/max seeks clipping"); + if (table->range_rowid_filter_cost_info_elems) + { + // Don't use rowid filter + trace_access_idx.add("rowid_filter_skipped", "worst/max seeks clipping"); + } filter= NULL; } else From a0bfdef5e6f8a26d9fdb0f518feee697312a6482 Mon Sep 17 00:00:00 2001 From: Monty Date: Wed, 4 Dec 2024 11:31:00 +0200 Subject: [PATCH 10/31] Added more information to errors reported by report_reply_packet() In particular ""Read semi-sync reply magic number error" now prints out what was wrong with the packet. Reviewed-by: Sergei Golubchik --- sql/semisync_master.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/sql/semisync_master.cc b/sql/semisync_master.cc index 7694c2cfd49..437b9bb99b4 100644 --- a/sql/semisync_master.cc +++ b/sql/semisync_master.cc @@ -608,13 +608,17 @@ int Repl_semi_sync_master::report_reply_packet(uint32 server_id, DBUG_RETURN(-1); } else - sql_print_error("Read semi-sync reply magic number error"); + sql_print_error("Read semi-sync reply magic number error. " + "Got magic: %u command %u length: %lu", + (uint) packet[REPLY_MAGIC_NUM_OFFSET], (uint) packet[0], + packet_len); goto l_end; } if (unlikely(packet_len < REPLY_BINLOG_NAME_OFFSET)) { - sql_print_error("Read semi-sync reply length error: packet is too small"); + sql_print_error("Read semi-sync reply length error: packet is too small: %lu", + packet_len); goto l_end; } @@ -622,7 +626,8 @@ int Repl_semi_sync_master::report_reply_packet(uint32 server_id, log_file_len = packet_len - REPLY_BINLOG_NAME_OFFSET; if (unlikely(log_file_len >= FN_REFLEN)) { - sql_print_error("Read semi-sync reply binlog file length too large"); + sql_print_error("Read semi-sync reply binlog file length too large: %llu", + (ulonglong) log_file_pos); goto l_end; } strncpy(log_file_name, (const char*)packet + REPLY_BINLOG_NAME_OFFSET, log_file_len); From 47a5eed43791717d4cefb40e6e30bff1dbabfe50 Mon Sep 17 00:00:00 2001 From: Monty Date: Wed, 4 Dec 2024 12:03:40 +0200 Subject: [PATCH 11/31] Added status variable "Max_memory_used" to SHOW STATUS This shows the maximum memory allocations used by the current connection. The value for @@global.max_memory_used is 0 as we are not collecting this value as it would cause a notable performance issue registering this for all threads for every memory allocation Reviewed-by: Sergei Golubchik --- mysql-test/main/memory_used.result | 8 ++++++++ mysql-test/main/memory_used.test | 20 ++++++++++++++++++++ sql/mysqld.cc | 17 +++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 mysql-test/main/memory_used.result create mode 100644 mysql-test/main/memory_used.test diff --git a/mysql-test/main/memory_used.result b/mysql-test/main/memory_used.result new file mode 100644 index 00000000000..974be5a6e1e --- /dev/null +++ b/mysql-test/main/memory_used.result @@ -0,0 +1,8 @@ +select * from information_schema.processlist where id=0; +should be true +1 +should be true +1 +show global status like "max_memory_used"; +Variable_name Value +Max_memory_used NULL diff --git a/mysql-test/main/memory_used.test b/mysql-test/main/memory_used.test new file mode 100644 index 00000000000..0416f5114a5 --- /dev/null +++ b/mysql-test/main/memory_used.test @@ -0,0 +1,20 @@ +# +# Added status variable "Max_memory_used" to SHOW STATUS +# + +let $l1=`show status like "max_memory_used"`; +--disable_result_log +select * from information_schema.processlist where id=0; +--enable_result_log +let $l2=`show status like "max_memory_used"`; + +--disable_query_log +eval SET @l1= SUBSTRING_INDEX('$l1', ' ', -1); +eval SET @l2= SUBSTRING_INDEX('$l2', ' ', -1); +eval select @l1 > 10000 as "should be true"; +eval select @l2+0 > @l1+0 as "should be true"; + +--enable_query_log +# global max_memory should be NULL as we cannot calculate this +show global status like "max_memory_used"; + diff --git a/sql/mysqld.cc b/sql/mysqld.cc index d204a8482f0..43c6c2f86ef 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -7222,6 +7222,22 @@ static int show_memory_used(THD *thd, SHOW_VAR *var, void *buff, return 0; } +static int show_max_memory_used(THD *thd, SHOW_VAR *var, void *buff, + struct system_status_var *status_var, + enum enum_var_type scope) +{ + var->type= SHOW_LONGLONG; + var->value= buff; + if (scope == OPT_GLOBAL) + { + var->type= SHOW_CHAR; + var->value= (char*) "NULL"; // Emulate null value + } + else + *(longlong*) buff= (longlong) status_var->max_local_memory_used; + return 0; +} + static int show_stack_usage(THD *thd, SHOW_VAR *var, void *buff, system_status_var *, enum_var_type scope) @@ -7404,6 +7420,7 @@ SHOW_VAR status_vars[]= { {"Master_gtid_wait_timeouts", (char*) offsetof(STATUS_VAR, master_gtid_wait_timeouts), SHOW_LONG_STATUS}, {"Master_gtid_wait_time", (char*) offsetof(STATUS_VAR, master_gtid_wait_time), SHOW_LONG_STATUS}, {"Max_used_connections", (char*) &max_used_connections, SHOW_LONG}, + {"Max_memory_used", (char*) &show_max_memory_used, SHOW_SIMPLE_FUNC}, {"Memory_used", (char*) &show_memory_used, SHOW_SIMPLE_FUNC}, {"Memory_used_initial", (char*) &start_memory_used, SHOW_LONGLONG}, {"Resultset_metadata_skipped", (char *) offsetof(STATUS_VAR, skip_metadata_count),SHOW_LONG_STATUS}, From 87ee1e75bcb783386b1f717a02bcbb6983fd0f55 Mon Sep 17 00:00:00 2001 From: Monty Date: Fri, 13 Dec 2024 15:41:59 +0200 Subject: [PATCH 12/31] MDEV-35643 Add support for MySQL 8.0 binlog events MDEV-29533 Crash when MariaDB is replica of MySQL 8.0 MySQL 8.0 has added the following new events in the MySQL binary log PARTIAL_UPDATE_ROWS_EVENT TRANSACTION_PAYLOAD_EVENT HEARTBEAT_LOG_EVENT_V2 - PARTIAL_UPDATE_ROWS_EVENT is used by MySQL to generate update statements using JSON_SET, JSON_REPLACE and JSON_REMOVE to make update of JSON columns more efficient. These events can be disabled by setting 'binlog-row-value-options=""' - TRANSACTION_PAYLOAD_EVENT is used by MySQL to signal that a row event is compressed. It an be disably by setting 'binlog_transaction_compression=0'. - HEARTBEAT_LOG_EVENT_V2 is written to the binary log many times per seconds. It can be ignored by the server. What this patch does: - If PARTIAL_UPDATE_ROWS_EVENT or TRANSACTION_PAYLOAD_EVENT is found, the server will stop with an error message of how to disable the MySQL server to generate such events. - HEARTBEAT_LOG_EVENT_V2 events are ignored. - mariadb-binlog will write the name of the new events. - mariadb-binlog will stop if PARTIAL_UPDATE_ROWS_EVENT or TRANSACTION_PAYLOAD_EVENT is found, unless --force is given. - Fixes a crash in mariadb-binlog if a character set unknown to MariaDB is found. (MDEV-29533) From Kristian Nielsen: - Add test case for MySQL 8.0 to MariaDB replication and fixed a a small typo in post_header_len initialization. Reviewer: knielsen@mariadb.org --- .../std_data/mdev35643_mysql_80_binlog.000001 | Bin 0 -> 4438 bytes .../suite/rpl/r/rpl_from_mysql80.result | 52 ++++++++ mysql-test/suite/rpl/t/rpl_from_mysql80.test | 121 ++++++++++++++++++ sql/log_event.cc | 29 ++++- sql/log_event.h | 8 ++ sql/log_event_client.cc | 7 +- sql/sql_repl.cc | 8 -- 7 files changed, 213 insertions(+), 12 deletions(-) create mode 100644 mysql-test/std_data/mdev35643_mysql_80_binlog.000001 create mode 100644 mysql-test/suite/rpl/r/rpl_from_mysql80.result create mode 100644 mysql-test/suite/rpl/t/rpl_from_mysql80.test diff --git a/mysql-test/std_data/mdev35643_mysql_80_binlog.000001 b/mysql-test/std_data/mdev35643_mysql_80_binlog.000001 new file mode 100644 index 0000000000000000000000000000000000000000..2953c2a277cb81bca21868837725a4ca807d9f1b GIT binary patch literal 4438 zcmeHLdsLH07N2|x7();h6%d4vNO=#ezjn{*oXq!_d+%@N z{$}p|F8oW9oW8d>Cdq^b0LX^@J=g(Y06v$;UC47wTr0^;!b7jTAQ)3%444`K2E0iC zV=j7SGMNOtu~;l;XE1XiU^xQX&u{Mh1)0o8Guyyk1A9K~nznA%qY@u^wAv1N{XHG>=mF#LwbfH zk->!SFaevUSeu~$Gn5(~FmoK30z4EDF7OixNRglaN&%^GCmqFPkWfU1g$ITBg|8ul z1#4VM2^w-G6Ua!v@POrh;g0S+kA+T7q(B%LBoufBrKd}m`IAWE7a$UZldA+GGF7Zd zPIs63{92|*!T{x+b|Ej_uy<&TV&hS_h6HO&!ti%_M|30vL$#$)4|=CXfh5e+Jklm2 z0XmIc_7}iqe|FaYZwSg1E$A)SGw_so*q#O$Sd&n=13H~6sCLJ`SF{cw*GB3TaPAL+FT{!`i3e6KWM{Wo}5UJ0d1@jbM^1fvusCQadxC zVW%9kWANULNCbyTMC`l+^8j;@hrk7%}ngSW!2CF2@`({05)2={th;bJj7h@f;^VP$}3 zq+Fehp%#yXmB>uD6+%5T%n;=w17xHm%N{E(IUx%jLuuGTrS<-3QTqWT)-iMzi?!0< z-v|nwQoH^25}ePr(NR9DzxAjM!8xMP@Pcd(6EwaxrQ0z|?1N?VOTNKL6`G!A#q& z(}~i$@Ce+lS6{vO<8sy}AP1?S-gDHt*5TAQAB386dQU9-b|8r87_u5j&UwFo#A1JI z==6@B!N!ksvrC({O5EM%SO#oVy5yw|dG2;`apSIjy14btkrX@6JICMkif;U|wkBpx zvOFTlZ;@L~QKoGVcbB-a_`3g`$n?=A@{nEg2InRI5SI7!%<=ZStT(Eg2j8&BQqAAr z7G-y7xHz95SJ~J7Tj#ADuQS!sDS?AUX`XS@j_evv-!_+XsiCv=Ex)S1o|NHr)~(Od z@0}=LHN2<(P|n3G{0}diceOaMul_VBSpDlm!frTqV0+H-{$<`#3fo#|rDxOAfig)- zxxwuA3xAPbdGL69SxDU8%7?$vxw*OCholu%kMBLKR4wVa8kOWZ(!Dmy56aue zazgpFM_XdT_h3 zDtLb3(Va^5r?Z@gI0aKxfi_!??#NO{U$YpRDK}6BSQhlvmC;pq9o3faN5t{i{bRl$ zuJ6Fe#@pAbdJd{A&7NF8m4CC&HeOK5U4H0Tvw3CVmRX{9+DzXt()C^ce&%`R`EeJf z&pGhRdlJX)0++WHbS<1 zi@lXRn$ON^Jk8${-RUhXOz0d{nsl(TI&)&q-IIBJasG)caW#ASzS4hQ5GyU)nr3vc zp2_E08QpKrRYxj~?spN~k{-G77bV|!osn%fD!xo>P_tu-EM-ggG&?C{`4WD`W|?bD zvw_T}txI-;2fPbC*A;I#Qkp%+cIy0xI+E|h->kI0X>fDe%}ry+QWr7uS66@aAmL|` zsp;;Ngm1@ZyU*@5m*3Kh#pP3fAAm265L65rY6pM$P7{kP!({(B$4x zUg3NT^)vIZccXHA7QW2du}tS*I23;d;q=ae9UO#>Hc^SCtuys1t&^8hQgn#*&@u{> z^#Wu61!9nJl^|S%>d{bA;QhELXkU<=j2K{Af*JPgsKEiu7i`)=`NZtTCnaoZNzJJ(^4AG zJIT@`yoquJ`Zhr$D59wtJyE71{1^irs4n~Ub~<`Q(B8uMCBp4BptOkypGxhs9_32| zS7ahg9EGS33x=2g6rc+%PpO*00}%8lGzI}nTbH3xTrS|4ISW6>Q)VDt%7OsIxTdhZ zhw3*v_=&K9KyzWYgq>{#*tURuhY(8=7>N0^23nr~xW)cK!T%ct43r9BP@veVMPWd< z<4Sh3Kc-1TrT>G!ysgrmdily8$1YEs8V*>v;J@V<=$!|9Bobinlog_version)); DBUG_DUMP_EVENT_BUF(buf, event_len); + *error= 0; /* Check the integrity; This is needed because handle_slave_io() doesn't check if packet is of proper length. @@ -1237,6 +1241,7 @@ Log_event* Log_event::read_log_event(const uchar *buf, uint event_len, case ANONYMOUS_GTID_LOG_EVENT: case PREVIOUS_GTIDS_LOG_EVENT: case TRANSACTION_CONTEXT_EVENT: + case HEARTBEAT_LOG_EVENT_V2: // MySQL 8.0 case VIEW_CHANGE_EVENT: ev= new Ignorable_log_event(buf, fdle, get_type_str((Log_event_type) event_type)); @@ -1261,6 +1266,21 @@ Log_event* Log_event::read_log_event(const uchar *buf, uint event_len, case START_ENCRYPTION_EVENT: ev= new Start_encryption_log_event(buf, event_len, fdle); break; + case TRANSACTION_PAYLOAD_EVENT: // MySQL 8.0 + *error= + "Found incompatible MySQL 8.0 TRANSACTION_PAYLOAD_EVENT event. " + "You can avoid this event by specifying " + "'binlog_transaction_compression=0' in the MySQL server"; + ev= NULL; + break; + case PARTIAL_UPDATE_ROWS_EVENT: // MySQL 8.0 + *error= + "Found incompatible MySQL 8.0 PARTIAL_UPDATE_ROWS_EVENT event. " + "You can avoid this event by specifying " + "'binlog-row-value-options=\"\"' in the MySQL server"; + ev= NULL; + break; + default: DBUG_PRINT("error",("Unknown event code: %d", (uchar) buf[EVENT_TYPE_OFFSET])); @@ -1303,12 +1323,14 @@ exit: #ifdef MYSQL_CLIENT if (!force_opt) /* then mysqlbinlog dies */ { - *error= "Found invalid event in binary log"; + if (!*error) + *error= "Found invalid event in binary log"; DBUG_RETURN(0); } ev= new Unknown_log_event(buf, fdle); #else - *error= "Found invalid event in binary log"; + if (!*error) + *error= "Found invalid event in binary log"; DBUG_RETURN(0); #endif } @@ -2126,6 +2148,9 @@ Format_description_log_event(uint8 binlog_ver, const char* server_ver) post_header_len[TRANSACTION_CONTEXT_EVENT-1]= 0; post_header_len[VIEW_CHANGE_EVENT-1]= 0; post_header_len[XA_PREPARE_LOG_EVENT-1]= 0; + post_header_len[PARTIAL_UPDATE_ROWS_EVENT-1]= ROWS_HEADER_LEN_V2; + post_header_len[TRANSACTION_PAYLOAD_EVENT-1]= ROWS_HEADER_LEN_V2; + post_header_len[HEARTBEAT_LOG_EVENT_V2-1]= ROWS_HEADER_LEN_V2; post_header_len[WRITE_ROWS_EVENT-1]= ROWS_HEADER_LEN_V2; post_header_len[UPDATE_ROWS_EVENT-1]= ROWS_HEADER_LEN_V2; post_header_len[DELETE_ROWS_EVENT-1]= ROWS_HEADER_LEN_V2; diff --git a/sql/log_event.h b/sql/log_event.h index e4bda624e0c..03902cc286e 100644 --- a/sql/log_event.h +++ b/sql/log_event.h @@ -678,6 +678,14 @@ enum Log_event_type /* not ignored */ XA_PREPARE_LOG_EVENT= 38, + /** + Extension of UPDATE_ROWS_EVENT, allowing partial values according + to binlog_row_value_options. + */ + PARTIAL_UPDATE_ROWS_EVENT = 39, + TRANSACTION_PAYLOAD_EVENT = 40, + HEARTBEAT_LOG_EVENT_V2 = 41, + /* Add new events here - right above this comment! Existing events (except ENUM_END_EVENT) should never change their numbers diff --git a/sql/log_event_client.cc b/sql/log_event_client.cc index 0b431dc5bed..6e62734ae9a 100644 --- a/sql/log_event_client.cc +++ b/sql/log_event_client.cc @@ -1970,7 +1970,7 @@ bool Query_log_event::print_query_header(IO_CACHE* file, print_event_info->auto_increment_offset= auto_increment_offset; } - /* TODO: print the catalog when we feature SET CATALOG */ + /* TODO: print the catalog when we feature USE CATALOG */ if (likely(charset_inited) && (unlikely(!print_event_info->charset_inited || @@ -1984,12 +1984,15 @@ bool Query_log_event::print_query_header(IO_CACHE* file, cs_info->cs_name.str, print_event_info->delimiter)) goto err; } + else if (my_b_printf(file, "# Ignored (Unknown charset) ")) + goto err; + if (my_b_printf(file,"SET " "@@session.character_set_client=%s," "@@session.collation_connection=%d," "@@session.collation_server=%d" "%s\n", - cs_info->cs_name.str, + cs_info ? cs_info->cs_name.str : "Unknown", uint2korr(charset+2), uint2korr(charset+4), print_event_info->delimiter)) diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index 418e6aafab1..e33ad987fe8 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -434,7 +434,6 @@ static int send_file(THD *thd) Internal to mysql_binlog_send() routine that recalculates checksum for 1. FD event (asserted) that needs additional arrangement prior sending to slave. 2. Start_encryption_log_event whose Ignored flag is set -TODO DBUG_ASSERT can be removed if this function is used for more general cases */ inline void fix_checksum(enum_binlog_checksum_alg checksum_alg, String *packet, @@ -446,13 +445,6 @@ inline void fix_checksum(enum_binlog_checksum_alg checksum_alg, String *packet, /* recalculate the crc for this event */ uint data_len = uint4korr(packet->ptr() + ev_offset + EVENT_LEN_OFFSET); ha_checksum crc; - DBUG_ASSERT((data_len == - LOG_EVENT_MINIMAL_HEADER_LEN + FORMAT_DESCRIPTION_HEADER_LEN + - BINLOG_CHECKSUM_ALG_DESC_LEN + BINLOG_CHECKSUM_LEN) || - (data_len == - LOG_EVENT_MINIMAL_HEADER_LEN + BINLOG_CRYPTO_SCHEME_LENGTH + - BINLOG_KEY_VERSION_LENGTH + BINLOG_NONCE_LENGTH + - BINLOG_CHECKSUM_LEN)); crc= my_checksum(0, (uchar *)packet->ptr() + ev_offset, data_len - BINLOG_CHECKSUM_LEN); int4store(packet->ptr() + ev_offset + data_len - BINLOG_CHECKSUM_LEN, crc); From 88d9348dfc494105046451beef15a8e68d7f51be Mon Sep 17 00:00:00 2001 From: Monty Date: Fri, 27 Dec 2024 13:59:24 +0200 Subject: [PATCH 13/31] Remove dates from all rdiff files --- mysql-test/main/alter_table_combinations,aria.rdiff | 4 ++-- mysql-test/main/alter_table_combinations,heap.rdiff | 4 ++-- mysql-test/main/myisam_mrr,32bit.rdiff | 4 ++-- mysql-test/main/select,ps.rdiff | 4 ++-- mysql-test/main/select_jcl6,ps.rdiff | 4 ++-- mysql-test/main/select_pkeycache,ps.rdiff | 4 ++-- mysql-test/suite/encryption/r/encrypt_and_grep,undo3.rdiff | 4 ++-- .../suite/encryption/r/innodb-remove-encryption,undo3.rdiff | 4 ++-- .../suite/encryption/r/innodb_encrypt_freed,undo3.rdiff | 4 ++-- .../encryption/r/innodb_encrypt_key_rotation_age,undo3.rdiff | 4 ++-- mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.rdiff | 4 ++-- mysql-test/suite/galera/r/galera_ist_mariabackup,debug.rdiff | 4 ++-- .../r/galera_ist_mariabackup_innodb_flush_logs,debug.rdiff | 4 ++-- mysql-test/suite/galera/r/galera_ist_rsync,debug.rdiff | 4 ++-- .../galera/r/galera_sst_mariabackup_data_dir,debug.rdiff | 4 ++-- .../r/galera_sst_mariabackup_force_recovery,debug.rdiff | 4 ++-- mysql-test/suite/galera/r/galera_sst_rsync2,debug.rdiff | 4 ++-- .../suite/galera/r/galera_sst_rsync_data_dir,debug.rdiff | 4 ++-- mysql-test/suite/innodb/r/alter_algorithm,INPLACE.rdiff | 4 ++-- mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff | 4 ++-- mysql-test/suite/innodb/r/alter_algorithm,NOCOPY.rdiff | 4 ++-- mysql-test/suite/innodb/r/instant_alter_limit,16k.rdiff | 4 ++-- mysql-test/suite/innodb/r/instant_alter_limit,32k.rdiff | 4 ++-- mysql-test/suite/innodb/r/instant_alter_limit,4k.rdiff | 4 ++-- mysql-test/suite/innodb/r/instant_alter_limit,64k.rdiff | 4 ++-- mysql-test/suite/innodb/r/instant_alter_limit,8k.rdiff | 4 ++-- mysql-test/suite/innodb/r/max_record_size,16k,compact.rdiff | 4 ++-- mysql-test/suite/innodb/r/max_record_size,16k,dynamic.rdiff | 4 ++-- mysql-test/suite/innodb/r/max_record_size,16k,redundant.rdiff | 4 ++-- mysql-test/suite/innodb/r/max_record_size,32k,compact.rdiff | 4 ++-- mysql-test/suite/innodb/r/max_record_size,32k,dynamic.rdiff | 4 ++-- mysql-test/suite/innodb/r/max_record_size,32k,redundant.rdiff | 4 ++-- mysql-test/suite/innodb/r/max_record_size,4k,compact.rdiff | 4 ++-- mysql-test/suite/innodb/r/max_record_size,4k,dynamic.rdiff | 4 ++-- mysql-test/suite/innodb/r/max_record_size,4k,redundant.rdiff | 4 ++-- mysql-test/suite/innodb/r/max_record_size,64k,compact.rdiff | 4 ++-- mysql-test/suite/innodb/r/max_record_size,64k,dynamic.rdiff | 4 ++-- mysql-test/suite/innodb/r/max_record_size,64k,redundant.rdiff | 4 ++-- mysql-test/suite/innodb/r/max_record_size,8k,compact.rdiff | 4 ++-- mysql-test/suite/innodb/r/max_record_size,8k,dynamic.rdiff | 4 ++-- mysql-test/suite/innodb/r/recovery_memory,debug.rdiff | 4 ++-- mysql-test/suite/innodb/r/restart,16k.rdiff | 4 ++-- mysql-test/suite/innodb/r/restart,32k.rdiff | 4 ++-- mysql-test/suite/innodb/r/restart,4k.rdiff | 4 ++-- mysql-test/suite/innodb/r/restart,64k.rdiff | 4 ++-- mysql-test/suite/innodb/r/restart,8k.rdiff | 4 ++-- mysql-test/suite/mtr/t/simple,c2,s1.rdiff | 4 ++-- mysql-test/suite/mtr/t/simple,s2,c2.rdiff | 4 ++-- mysql-test/suite/period/r/delete,myisam.rdiff | 4 ++-- mysql-test/suite/rpl/r/rpl_delayed_slave,parallel.rdiff | 4 ++-- mysql-test/suite/rpl/r/rpl_insert_delayed,stmt.rdiff | 4 ++-- mysql-test/suite/rpl/r/rpl_iodku,stmt.rdiff | 4 ++-- mysql-test/suite/rpl/r/rpl_row_big_table_id,32bit.rdiff | 4 ++-- .../suite/sys_vars/r/aria_sort_buffer_size_basic,32bit.rdiff | 4 ++-- .../suite/sys_vars/r/innodb_ft_result_cache_limit,32bit.rdiff | 4 ++-- mysql-test/suite/sys_vars/r/sysvars_aria,32bit.rdiff | 4 ++-- mysql-test/suite/sys_vars/r/sysvars_debug,32bit.rdiff | 4 ++-- mysql-test/suite/sys_vars/r/sysvars_wsrep,32bit.rdiff | 4 ++-- mysql-test/suite/versioning/r/select,trx_id.rdiff | 4 ++-- mysql-test/suite/versioning/r/select2,trx_id.rdiff | 4 ++-- mysql-test/suite/wsrep/r/wsrep-recover-v25,binlogon.rdiff | 4 ++-- storage/example/mysql-test/mtr/t/test2.rdiff | 4 ++-- .../mysql-test/storage_engine/autoinc_secondary.rdiff | 4 ++-- storage/innobase/mysql-test/storage_engine/cache_index.rdiff | 4 ++-- .../mysql-test/storage_engine/checksum_table_live.rdiff | 4 ++-- .../innobase/mysql-test/storage_engine/fulltext_search.rdiff | 4 ++-- .../mysql-test/storage_engine/index_enable_disable.rdiff | 4 ++-- .../innobase/mysql-test/storage_engine/index_type_hash.rdiff | 4 ++-- .../innobase/mysql-test/storage_engine/insert_delayed.rdiff | 4 ++-- .../innobase/mysql-test/storage_engine/lock_concurrent.rdiff | 4 ++-- .../innobase/mysql-test/storage_engine/optimize_table.rdiff | 4 ++-- .../mysql-test/storage_engine/parts/checksum_table.rdiff | 4 ++-- .../mysql-test/storage_engine/parts/create_table.rdiff | 4 ++-- .../mysql-test/storage_engine/parts/optimize_table.rdiff | 4 ++-- .../mysql-test/storage_engine/parts/repair_table.rdiff | 4 ++-- storage/innobase/mysql-test/storage_engine/repair_table.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_index_dir.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_insert_method.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_row_format.rdiff | 4 ++-- .../innobase/mysql-test/storage_engine/tbl_opt_union.rdiff | 4 ++-- .../storage_engine/trx/cons_snapshot_serializable.rdiff | 4 ++-- .../mysql-test/storage_engine/trx/level_read_committed.rdiff | 4 ++-- .../storage_engine/trx/level_read_uncommitted.rdiff | 4 ++-- .../mysql-test/storage_engine/type_char_indexes.rdiff | 4 ++-- .../mysql-test/storage_engine/type_float_indexes.rdiff | 4 ++-- storage/myisam/mysql-test/mtr2/single.rdiff | 4 ++-- .../myisam/mysql-test/storage_engine/alter_table_online.rdiff | 4 ++-- .../myisam/mysql-test/storage_engine/alter_tablespace.rdiff | 4 ++-- storage/myisam/mysql-test/storage_engine/check_table.rdiff | 4 ++-- storage/myisam/mysql-test/storage_engine/foreign_keys.rdiff | 4 ++-- .../myisam/mysql-test/storage_engine/index_type_hash.rdiff | 4 ++-- storage/myisam/mysql-test/storage_engine/misc.rdiff | 4 ++-- storage/myisam/mysql-test/storage_engine/show_engine.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_insert_method.rdiff | 4 ++-- storage/myisam/mysql-test/storage_engine/tbl_opt_union.rdiff | 4 ++-- .../storage_engine/trx/cons_snapshot_repeatable_read.rdiff | 4 ++-- .../storage_engine/trx/cons_snapshot_serializable.rdiff | 4 ++-- storage/myisam/mysql-test/storage_engine/trx/delete.rdiff | 4 ++-- storage/myisam/mysql-test/storage_engine/trx/insert.rdiff | 4 ++-- .../mysql-test/storage_engine/trx/level_read_committed.rdiff | 4 ++-- .../storage_engine/trx/level_read_uncommitted.rdiff | 4 ++-- .../mysql-test/storage_engine/trx/level_repeatable_read.rdiff | 4 ++-- .../mysql-test/storage_engine/trx/level_serializable.rdiff | 4 ++-- .../mysql-test/storage_engine/trx/select_for_update.rdiff | 4 ++-- .../storage_engine/trx/select_lock_in_share_mode.rdiff | 4 ++-- storage/myisam/mysql-test/storage_engine/trx/update.rdiff | 4 ++-- storage/myisam/mysql-test/storage_engine/trx/xa.rdiff | 4 ++-- .../myisam/mysql-test/storage_engine/trx/xa_recovery.rdiff | 4 ++-- storage/myisammrg/mysql-test/storage_engine/alter_table.rdiff | 4 ++-- .../mysql-test/storage_engine/alter_table_online.rdiff | 4 ++-- .../mysql-test/storage_engine/alter_tablespace.rdiff | 4 ++-- .../myisammrg/mysql-test/storage_engine/analyze_table.rdiff | 4 ++-- .../myisammrg/mysql-test/storage_engine/autoincrement.rdiff | 4 ++-- storage/myisammrg/mysql-test/storage_engine/cache_index.rdiff | 4 ++-- .../mysql-test/storage_engine/checksum_table_live.rdiff | 4 ++-- .../myisammrg/mysql-test/storage_engine/create_table.rdiff | 4 ++-- .../myisammrg/mysql-test/storage_engine/foreign_keys.rdiff | 4 ++-- .../myisammrg/mysql-test/storage_engine/fulltext_search.rdiff | 4 ++-- storage/myisammrg/mysql-test/storage_engine/handler.rdiff | 4 ++-- storage/myisammrg/mysql-test/storage_engine/index.rdiff | 4 ++-- .../mysql-test/storage_engine/index_enable_disable.rdiff | 4 ++-- .../mysql-test/storage_engine/index_type_btree.rdiff | 4 ++-- .../myisammrg/mysql-test/storage_engine/index_type_hash.rdiff | 4 ++-- .../myisammrg/mysql-test/storage_engine/insert_delayed.rdiff | 4 ++-- storage/myisammrg/mysql-test/storage_engine/lock.rdiff | 4 ++-- storage/myisammrg/mysql-test/storage_engine/misc.rdiff | 4 ++-- .../myisammrg/mysql-test/storage_engine/optimize_table.rdiff | 4 ++-- .../mysql-test/storage_engine/parts/alter_table.rdiff | 4 ++-- .../mysql-test/storage_engine/parts/analyze_table.rdiff | 4 ++-- .../mysql-test/storage_engine/parts/check_table.rdiff | 4 ++-- .../mysql-test/storage_engine/parts/checksum_table.rdiff | 4 ++-- .../mysql-test/storage_engine/parts/create_table.rdiff | 4 ++-- .../mysql-test/storage_engine/parts/optimize_table.rdiff | 4 ++-- .../mysql-test/storage_engine/parts/repair_table.rdiff | 4 ++-- .../mysql-test/storage_engine/parts/truncate_table.rdiff | 4 ++-- .../myisammrg/mysql-test/storage_engine/repair_table.rdiff | 4 ++-- storage/myisammrg/mysql-test/storage_engine/show_engine.rdiff | 4 ++-- storage/myisammrg/mysql-test/storage_engine/tbl_opt_ai.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_avg_row_length.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_checksum.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_connection.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_data_dir.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_delay_key_write.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_index_dir.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_insert_method.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_key_block_size.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_max_rows.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_min_rows.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_pack_keys.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_password.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_row_format.rdiff | 4 ++-- .../myisammrg/mysql-test/storage_engine/tbl_opt_union.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_standard_opts.rdiff | 4 ++-- .../myisammrg/mysql-test/storage_engine/tbl_temporary.rdiff | 4 ++-- .../myisammrg/mysql-test/storage_engine/truncate_table.rdiff | 4 ++-- .../storage_engine/trx/cons_snapshot_repeatable_read.rdiff | 4 ++-- .../storage_engine/trx/cons_snapshot_serializable.rdiff | 4 ++-- storage/myisammrg/mysql-test/storage_engine/trx/delete.rdiff | 4 ++-- storage/myisammrg/mysql-test/storage_engine/trx/insert.rdiff | 4 ++-- .../mysql-test/storage_engine/trx/level_read_committed.rdiff | 4 ++-- .../storage_engine/trx/level_read_uncommitted.rdiff | 4 ++-- .../mysql-test/storage_engine/trx/level_repeatable_read.rdiff | 4 ++-- .../mysql-test/storage_engine/trx/level_serializable.rdiff | 4 ++-- .../mysql-test/storage_engine/trx/select_for_update.rdiff | 4 ++-- .../storage_engine/trx/select_lock_in_share_mode.rdiff | 4 ++-- storage/myisammrg/mysql-test/storage_engine/trx/update.rdiff | 4 ++-- storage/myisammrg/mysql-test/storage_engine/trx/xa.rdiff | 4 ++-- .../myisammrg/mysql-test/storage_engine/trx/xa_recovery.rdiff | 4 ++-- .../mysql-test/storage_engine/type_char_indexes.rdiff | 4 ++-- .../mysql-test/storage_engine/type_float_indexes.rdiff | 4 ++-- .../myisammrg/mysql-test/storage_engine/type_spatial.rdiff | 4 ++-- .../mysql-test/storage_engine/type_spatial_indexes.rdiff | 4 ++-- storage/myisammrg/mysql-test/storage_engine/vcol.rdiff | 4 ++-- storage/rocksdb/mysql-test/storage_engine/cache_index.rdiff | 4 ++-- .../mysql-test/storage_engine/checksum_table_live.rdiff | 4 ++-- storage/rocksdb/mysql-test/storage_engine/index.rdiff | 4 ++-- .../rocksdb/mysql-test/storage_engine/index_type_btree.rdiff | 4 ++-- .../rocksdb/mysql-test/storage_engine/index_type_hash.rdiff | 4 ++-- storage/rocksdb/mysql-test/storage_engine/misc.rdiff | 4 ++-- .../mysql-test/storage_engine/parts/checksum_table.rdiff | 4 ++-- .../mysql-test/storage_engine/parts/create_table.rdiff | 4 ++-- storage/rocksdb/mysql-test/storage_engine/show_engine.rdiff | 4 ++-- .../rocksdb/mysql-test/storage_engine/show_table_status.rdiff | 4 ++-- .../mysql-test/storage_engine/tbl_opt_insert_method.rdiff | 4 ++-- storage/rocksdb/mysql-test/storage_engine/tbl_opt_union.rdiff | 4 ++-- storage/rocksdb/mysql-test/storage_engine/tbl_temporary.rdiff | 4 ++-- .../rocksdb/mysql-test/storage_engine/truncate_table.rdiff | 4 ++-- storage/rocksdb/mysql-test/storage_engine/trx/delete.rdiff | 4 ++-- storage/rocksdb/mysql-test/storage_engine/trx/insert.rdiff | 4 ++-- .../mysql-test/storage_engine/trx/level_read_committed.rdiff | 4 ++-- .../mysql-test/storage_engine/trx/level_repeatable_read.rdiff | 4 ++-- storage/rocksdb/mysql-test/storage_engine/trx/update.rdiff | 4 ++-- .../mysql-test/storage_engine/type_binary_indexes.rdiff | 4 ++-- .../rocksdb/mysql-test/storage_engine/type_bit_indexes.rdiff | 4 ++-- .../rocksdb/mysql-test/storage_engine/type_enum_indexes.rdiff | 4 ++-- .../rocksdb/mysql-test/storage_engine/type_set_indexes.rdiff | 4 ++-- 196 files changed, 392 insertions(+), 392 deletions(-) diff --git a/mysql-test/main/alter_table_combinations,aria.rdiff b/mysql-test/main/alter_table_combinations,aria.rdiff index 9ea38135908..e030571679f 100644 --- a/mysql-test/main/alter_table_combinations,aria.rdiff +++ b/mysql-test/main/alter_table_combinations,aria.rdiff @@ -1,5 +1,5 @@ ---- main/alter_table_combinations.result 2022-05-24 17:16:56.769146869 +0200 -+++ main/alter_table_combinations.reject 2022-05-24 17:25:20.847126357 +0200 +--- main/alter_table_combinations.result ++++ main/alter_table_combinations.reject @@ -173,8 +173,7 @@ t3 CREATE TABLE `t3` ( `a` int(11) DEFAULT NULL, diff --git a/mysql-test/main/alter_table_combinations,heap.rdiff b/mysql-test/main/alter_table_combinations,heap.rdiff index 0ca6d3de88d..493ce0ea884 100644 --- a/mysql-test/main/alter_table_combinations,heap.rdiff +++ b/mysql-test/main/alter_table_combinations,heap.rdiff @@ -1,5 +1,5 @@ ---- main/alter_table_combinations.result 2022-05-24 17:16:56.769146869 +0200 -+++ main/alter_table_combinations.reject 2022-05-24 17:25:01.216127156 +0200 +--- main/alter_table_combinations.result ++++ main/alter_table_combinations.reject @@ -11,7 +11,7 @@ alter table t1 change x xx int, algorithm=inplace; check table t1; diff --git a/mysql-test/main/myisam_mrr,32bit.rdiff b/mysql-test/main/myisam_mrr,32bit.rdiff index 746bf48dedd..eda77abbfce 100644 --- a/mysql-test/main/myisam_mrr,32bit.rdiff +++ b/mysql-test/main/myisam_mrr,32bit.rdiff @@ -1,5 +1,5 @@ ---- main/myisam_mrr.result 2019-05-14 15:44:52.232663568 +0530 -+++ main/myisam_mrr.reject 2019-05-14 15:51:37.123563538 +0530 +--- main/myisam_mrr.result ++++ main/myisam_mrr.reject @@ -617,8 +617,8 @@ show status like 'handler_mrr%'; Variable_name Value diff --git a/mysql-test/main/select,ps.rdiff b/mysql-test/main/select,ps.rdiff index 7cbcd2be98e..61d6867c1dc 100644 --- a/mysql-test/main/select,ps.rdiff +++ b/mysql-test/main/select,ps.rdiff @@ -1,5 +1,5 @@ ---- mysql-test/main/select.result 2023-01-31 09:30:58.151377805 +0100 -+++ mysql-test/main/select.reject 2023-02-01 13:44:11.026958614 +0100 +--- mysql-test/main/select.result ++++ mysql-test/main/select.reject @@ -5661,6 +5661,8 @@ Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1 Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1 diff --git a/mysql-test/main/select_jcl6,ps.rdiff b/mysql-test/main/select_jcl6,ps.rdiff index 18652a0683b..fc59dd211f9 100644 --- a/mysql-test/main/select_jcl6,ps.rdiff +++ b/mysql-test/main/select_jcl6,ps.rdiff @@ -1,5 +1,5 @@ ---- mysql-test/main/select_jcl6.result 2023-01-31 09:30:58.151377805 +0100 -+++ mysql-test/main/select_jcl6.reject 2023-02-01 13:44:10.722958771 +0100 +--- mysql-test/main/select_jcl6.result ++++ mysql-test/main/select_jcl6.reject @@ -5672,6 +5672,8 @@ Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1 Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1 diff --git a/mysql-test/main/select_pkeycache,ps.rdiff b/mysql-test/main/select_pkeycache,ps.rdiff index 320a402fefc..dc9c30408a9 100644 --- a/mysql-test/main/select_pkeycache,ps.rdiff +++ b/mysql-test/main/select_pkeycache,ps.rdiff @@ -1,5 +1,5 @@ ---- mysql-test/main/select_pkeycache.result 2023-01-31 09:30:58.151377805 +0100 -+++ mysql-test/main/select_pkeycache.reject 2023-02-01 13:43:21.742985365 +0100 +--- mysql-test/main/select_pkeycache.result ++++ mysql-test/main/select_pkeycache.reject @@ -5661,6 +5661,8 @@ Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1 Note 1276 Field or reference 'test.t1.a' of SELECT #3 was resolved in SELECT #1 diff --git a/mysql-test/suite/encryption/r/encrypt_and_grep,undo3.rdiff b/mysql-test/suite/encryption/r/encrypt_and_grep,undo3.rdiff index 210c2a61a17..ad81aacaf59 100644 --- a/mysql-test/suite/encryption/r/encrypt_and_grep,undo3.rdiff +++ b/mysql-test/suite/encryption/r/encrypt_and_grep,undo3.rdiff @@ -1,5 +1,5 @@ ---- encrypt_and_grep.result 2022-09-02 22:36:21.669650278 +0530 -+++ encrypt_and_grep.reject 2022-11-29 19:01:22.080027528 +0530 +--- encrypt_and_grep.result ++++ encrypt_and_grep.reject @@ -14,6 +14,9 @@ SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0; NAME diff --git a/mysql-test/suite/encryption/r/innodb-remove-encryption,undo3.rdiff b/mysql-test/suite/encryption/r/innodb-remove-encryption,undo3.rdiff index 421c962bd2e..5d26dd20ac8 100644 --- a/mysql-test/suite/encryption/r/innodb-remove-encryption,undo3.rdiff +++ b/mysql-test/suite/encryption/r/innodb-remove-encryption,undo3.rdiff @@ -1,5 +1,5 @@ ---- innodb-remove-encryption.result 2022-09-02 20:44:59.960430396 +0530 -+++ innodb-remove-encryption,undo3.reject 2022-11-29 19:02:24.813094277 +0530 +--- innodb-remove-encryption.result ++++ innodb-remove-encryption,undo3.reject @@ -13,6 +13,9 @@ SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0; NAME diff --git a/mysql-test/suite/encryption/r/innodb_encrypt_freed,undo3.rdiff b/mysql-test/suite/encryption/r/innodb_encrypt_freed,undo3.rdiff index 36eea901a6e..721a847acb8 100644 --- a/mysql-test/suite/encryption/r/innodb_encrypt_freed,undo3.rdiff +++ b/mysql-test/suite/encryption/r/innodb_encrypt_freed,undo3.rdiff @@ -1,5 +1,5 @@ ---- innodb_encrypt_freed.result 2021-03-23 15:44:14.466377983 +0530 -+++ innodb_encrypt_freed,undo3.reject 2022-11-29 19:04:24.987010571 +0530 +--- innodb_encrypt_freed.result ++++ innodb_encrypt_freed,undo3.reject @@ -14,6 +14,9 @@ SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0; NAME diff --git a/mysql-test/suite/encryption/r/innodb_encrypt_key_rotation_age,undo3.rdiff b/mysql-test/suite/encryption/r/innodb_encrypt_key_rotation_age,undo3.rdiff index 476b0b3f213..830155acab6 100644 --- a/mysql-test/suite/encryption/r/innodb_encrypt_key_rotation_age,undo3.rdiff +++ b/mysql-test/suite/encryption/r/innodb_encrypt_key_rotation_age,undo3.rdiff @@ -1,5 +1,5 @@ ---- innodb_encrypt_key_rotation_age.result 2022-06-02 16:15:08.395122720 +0530 -+++ innodb_encrypt_key_rotation_age,undo3.reject 2022-11-29 19:06:07.964542115 +0530 +--- innodb_encrypt_key_rotation_age.result ++++ innodb_encrypt_key_rotation_age,undo3.reject @@ -12,6 +12,9 @@ SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0; NAME diff --git a/mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.rdiff b/mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.rdiff index da41283e42f..cbf297f8071 100644 --- a/mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.rdiff +++ b/mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.rdiff @@ -1,5 +1,5 @@ ---- /home/alice/git/10.3/mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.result~ 2021-03-19 17:27:12.935559866 +0100 -+++ /home/alice/git/10.3/mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.reject 2021-03-19 17:27:14.071534938 +0100 +--- /home/alice/git/10.3/mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.result~ ++++ /home/alice/git/10.3/mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.reject @@ -126,12 +126,15 @@ show warnings; Level Code Message diff --git a/mysql-test/suite/galera/r/galera_ist_mariabackup,debug.rdiff b/mysql-test/suite/galera/r/galera_ist_mariabackup,debug.rdiff index adf12c23e4a..243b2a50b2a 100644 --- a/mysql-test/suite/galera/r/galera_ist_mariabackup,debug.rdiff +++ b/mysql-test/suite/galera/r/galera_ist_mariabackup,debug.rdiff @@ -1,5 +1,5 @@ ---- r/galera_ist_mariabackup.result 2021-04-10 14:21:16.141724901 +0300 -+++ r/galera_ist_mariabackup,debug.reject 2021-04-10 14:49:04.455785652 +0300 +--- r/galera_ist_mariabackup.result ++++ r/galera_ist_mariabackup,debug.reject @@ -517,3 +517,187 @@ 1 DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_ist_mariabackup_innodb_flush_logs,debug.rdiff b/mysql-test/suite/galera/r/galera_ist_mariabackup_innodb_flush_logs,debug.rdiff index c9457d70812..b7a91b010fe 100644 --- a/mysql-test/suite/galera/r/galera_ist_mariabackup_innodb_flush_logs,debug.rdiff +++ b/mysql-test/suite/galera/r/galera_ist_mariabackup_innodb_flush_logs,debug.rdiff @@ -1,5 +1,5 @@ ---- r/galera_ist_mariabackup_innodb_flush_logs.result 2021-04-10 14:21:52.661886653 +0300 -+++ r/galera_ist_mariabackup_innodb_flush_logs,debug.reject 2021-04-10 14:49:56.740062774 +0300 +--- r/galera_ist_mariabackup_innodb_flush_logs.result ++++ r/galera_ist_mariabackup_innodb_flush_logs,debug.reject @@ -172,3 +172,187 @@ 1 DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_ist_rsync,debug.rdiff b/mysql-test/suite/galera/r/galera_ist_rsync,debug.rdiff index e76b37838fb..f3df998be95 100644 --- a/mysql-test/suite/galera/r/galera_ist_rsync,debug.rdiff +++ b/mysql-test/suite/galera/r/galera_ist_rsync,debug.rdiff @@ -1,5 +1,5 @@ ---- r/galera_ist_rsync.result 2021-04-10 14:24:05.942467091 +0300 -+++ r/galera_ist_rsync,debug.reject 2021-04-10 14:52:14.236776538 +0300 +--- r/galera_ist_rsync.result ++++ r/galera_ist_rsync,debug.reject @@ -517,3 +517,187 @@ 1 DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_sst_mariabackup_data_dir,debug.rdiff b/mysql-test/suite/galera/r/galera_sst_mariabackup_data_dir,debug.rdiff index 870b12de3c9..875d53addd8 100644 --- a/mysql-test/suite/galera/r/galera_sst_mariabackup_data_dir,debug.rdiff +++ b/mysql-test/suite/galera/r/galera_sst_mariabackup_data_dir,debug.rdiff @@ -1,5 +1,5 @@ ---- r/galera_sst_mariabackup_data_dir.result 2021-04-10 14:26:02.798965488 +0300 -+++ r/galera_sst_mariabackup_data_dir,debug.reject 2021-04-10 14:54:44.825538224 +0300 +--- r/galera_sst_mariabackup_data_dir.result ++++ r/galera_sst_mariabackup_data_dir,debug.reject @@ -516,5 +516,189 @@ 1 DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_sst_mariabackup_force_recovery,debug.rdiff b/mysql-test/suite/galera/r/galera_sst_mariabackup_force_recovery,debug.rdiff index bad8355b514..da294317c27 100644 --- a/mysql-test/suite/galera/r/galera_sst_mariabackup_force_recovery,debug.rdiff +++ b/mysql-test/suite/galera/r/galera_sst_mariabackup_force_recovery,debug.rdiff @@ -1,5 +1,5 @@ ---- r/galera_sst_mariabackup.result 2021-04-10 14:25:04.142716409 +0300 -+++ r/galera_sst_mariabackup,debug.reject 2021-04-10 14:53:30.033162191 +0300 +--- r/galera_sst_mariabackup.result ++++ r/galera_sst_mariabackup,debug.reject @@ -516,5 +516,189 @@ 1 DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_sst_rsync2,debug.rdiff b/mysql-test/suite/galera/r/galera_sst_rsync2,debug.rdiff index 14f67770572..ae242e2b216 100644 --- a/mysql-test/suite/galera/r/galera_sst_rsync2,debug.rdiff +++ b/mysql-test/suite/galera/r/galera_sst_rsync2,debug.rdiff @@ -1,5 +1,5 @@ ---- r/galera_sst_rsync2.result 2021-04-10 14:34:48.646288119 +0300 -+++ r/galera_sst_rsync2,debug.reject 2021-04-10 15:04:10.276286996 +0300 +--- r/galera_sst_rsync2.result ++++ r/galera_sst_rsync2,debug.reject @@ -516,3 +516,187 @@ 1 DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_sst_rsync_data_dir,debug.rdiff b/mysql-test/suite/galera/r/galera_sst_rsync_data_dir,debug.rdiff index 00b42d53b51..558a8e7cd07 100644 --- a/mysql-test/suite/galera/r/galera_sst_rsync_data_dir,debug.rdiff +++ b/mysql-test/suite/galera/r/galera_sst_rsync_data_dir,debug.rdiff @@ -1,5 +1,5 @@ ---- r/galera_sst_rsync_data_dir.result 2021-04-10 14:35:28.090610315 +0300 -+++ r/galera_sst_rsync_data_dir,debug.reject 2021-04-10 15:50:26.945234998 +0300 +--- r/galera_sst_rsync_data_dir.result ++++ r/galera_sst_rsync_data_dir,debug.reject @@ -516,3 +516,187 @@ 1 DROP TABLE t1; diff --git a/mysql-test/suite/innodb/r/alter_algorithm,INPLACE.rdiff b/mysql-test/suite/innodb/r/alter_algorithm,INPLACE.rdiff index a176a9af29e..79b3d8854fa 100644 --- a/mysql-test/suite/innodb/r/alter_algorithm,INPLACE.rdiff +++ b/mysql-test/suite/innodb/r/alter_algorithm,INPLACE.rdiff @@ -1,5 +1,5 @@ ---- alter_algorithm.result 2020-04-30 21:39:48.923115511 +0530 -+++ alter_algorithm.reject 2020-04-30 21:45:04.131642093 +0530 +--- alter_algorithm.result ++++ alter_algorithm.reject @@ -7,43 +7,43 @@ INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1); SELECT @@alter_algorithm; diff --git a/mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff b/mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff index 414b7dc8b0c..fbcb5ca8704 100644 --- a/mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff +++ b/mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff @@ -1,5 +1,5 @@ ---- alter_algorithm.result 2020-04-30 21:39:48.923115511 +0530 -+++ alter_algorithm.reject 2020-04-30 21:47:08.245465018 +0530 +--- alter_algorithm.result ++++ alter_algorithm.reject @@ -7,43 +7,35 @@ INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1); SELECT @@alter_algorithm; diff --git a/mysql-test/suite/innodb/r/alter_algorithm,NOCOPY.rdiff b/mysql-test/suite/innodb/r/alter_algorithm,NOCOPY.rdiff index 2aa8c72265a..44e9f63a5f4 100644 --- a/mysql-test/suite/innodb/r/alter_algorithm,NOCOPY.rdiff +++ b/mysql-test/suite/innodb/r/alter_algorithm,NOCOPY.rdiff @@ -1,5 +1,5 @@ ---- alter_algorithm.result 2020-04-30 21:39:48.923115511 +0530 -+++ alter_algorithm.reject 2020-04-30 21:52:10.785967739 +0530 +--- alter_algorithm.result ++++ alter_algorithm.reject @@ -7,43 +7,35 @@ INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1); SELECT @@alter_algorithm; diff --git a/mysql-test/suite/innodb/r/instant_alter_limit,16k.rdiff b/mysql-test/suite/innodb/r/instant_alter_limit,16k.rdiff index 57d87f7172f..320df318434 100644 --- a/mysql-test/suite/innodb/r/instant_alter_limit,16k.rdiff +++ b/mysql-test/suite/innodb/r/instant_alter_limit,16k.rdiff @@ -1,5 +1,5 @@ ---- instant_alter_limit.result 2020-05-26 18:01:27.377946439 +0530 -+++ instant_alter_limit,16k.reject 2020-05-26 20:14:38.452463919 +0530 +--- instant_alter_limit.result ++++ instant_alter_limit,16k.reject @@ -45,3 +45,10 @@ instants 502 diff --git a/mysql-test/suite/innodb/r/instant_alter_limit,32k.rdiff b/mysql-test/suite/innodb/r/instant_alter_limit,32k.rdiff index 8f8cf64b7fc..951f0ce2320 100644 --- a/mysql-test/suite/innodb/r/instant_alter_limit,32k.rdiff +++ b/mysql-test/suite/innodb/r/instant_alter_limit,32k.rdiff @@ -1,5 +1,5 @@ ---- instant_alter_limit.result 2020-05-26 18:01:27.377946439 +0530 -+++ instant_alter_limit,32k.reject 2020-05-26 19:59:19.743877366 +0530 +--- instant_alter_limit.result ++++ instant_alter_limit,32k.reject @@ -43,5 +43,12 @@ FROM information_schema.global_status WHERE variable_name = 'innodb_instant_alter_column'; diff --git a/mysql-test/suite/innodb/r/instant_alter_limit,4k.rdiff b/mysql-test/suite/innodb/r/instant_alter_limit,4k.rdiff index dad28218a02..0ebd590ad54 100644 --- a/mysql-test/suite/innodb/r/instant_alter_limit,4k.rdiff +++ b/mysql-test/suite/innodb/r/instant_alter_limit,4k.rdiff @@ -1,5 +1,5 @@ ---- instant_alter_limit.result 2020-05-26 18:01:27.377946439 +0530 -+++ instant_alter_limit,4k.reject 2020-05-26 20:17:53.314736548 +0530 +--- instant_alter_limit.result ++++ instant_alter_limit,4k.reject @@ -5,6 +5,276 @@ ENGINE=InnoDB; INSERT INTO t VALUES(1,2,3,4,5); diff --git a/mysql-test/suite/innodb/r/instant_alter_limit,64k.rdiff b/mysql-test/suite/innodb/r/instant_alter_limit,64k.rdiff index d7479dbba40..7c58fa4a8db 100644 --- a/mysql-test/suite/innodb/r/instant_alter_limit,64k.rdiff +++ b/mysql-test/suite/innodb/r/instant_alter_limit,64k.rdiff @@ -1,5 +1,5 @@ ---- instant_alter_limit.result 2020-05-26 18:01:27.377946439 +0530 -+++ instant_alter_limit,64k.reject 2020-05-26 20:00:22.499711222 +0530 +--- instant_alter_limit.result ++++ instant_alter_limit,64k.reject @@ -43,5 +43,12 @@ FROM information_schema.global_status WHERE variable_name = 'innodb_instant_alter_column'; diff --git a/mysql-test/suite/innodb/r/instant_alter_limit,8k.rdiff b/mysql-test/suite/innodb/r/instant_alter_limit,8k.rdiff index 1fe3e1a56eb..d70156f3083 100644 --- a/mysql-test/suite/innodb/r/instant_alter_limit,8k.rdiff +++ b/mysql-test/suite/innodb/r/instant_alter_limit,8k.rdiff @@ -1,5 +1,5 @@ ---- instant_alter_limit.result 2020-05-26 18:01:27.377946439 +0530 -+++ instant_alter_limit,8k.reject 2020-05-26 20:19:50.881869095 +0530 +--- instant_alter_limit.result ++++ instant_alter_limit,8k.reject @@ -5,6 +5,28 @@ ENGINE=InnoDB; INSERT INTO t VALUES(1,2,3,4,5); diff --git a/mysql-test/suite/innodb/r/max_record_size,16k,compact.rdiff b/mysql-test/suite/innodb/r/max_record_size,16k,compact.rdiff index 118145bec2e..b9f51624729 100644 --- a/mysql-test/suite/innodb/r/max_record_size,16k,compact.rdiff +++ b/mysql-test/suite/innodb/r/max_record_size,16k,compact.rdiff @@ -1,5 +1,5 @@ ---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300 -+++ max_record_size.reject 2019-07-03 12:51:26.070418078 +0300 +--- max_record_size.result ++++ max_record_size.reject @@ -3,45 +3,65 @@ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255), c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255), diff --git a/mysql-test/suite/innodb/r/max_record_size,16k,dynamic.rdiff b/mysql-test/suite/innodb/r/max_record_size,16k,dynamic.rdiff index 33067866b82..5effc664f2c 100644 --- a/mysql-test/suite/innodb/r/max_record_size,16k,dynamic.rdiff +++ b/mysql-test/suite/innodb/r/max_record_size,16k,dynamic.rdiff @@ -1,5 +1,5 @@ ---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300 -+++ max_record_size.reject 2019-07-03 12:52:54.580956978 +0300 +--- max_record_size.result ++++ max_record_size.reject @@ -3,45 +3,207 @@ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255), c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255), diff --git a/mysql-test/suite/innodb/r/max_record_size,16k,redundant.rdiff b/mysql-test/suite/innodb/r/max_record_size,16k,redundant.rdiff index e50e4d2be3a..227b64a8a48 100644 --- a/mysql-test/suite/innodb/r/max_record_size,16k,redundant.rdiff +++ b/mysql-test/suite/innodb/r/max_record_size,16k,redundant.rdiff @@ -1,5 +1,5 @@ ---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300 -+++ max_record_size.reject 2019-07-03 12:55:05.258762945 +0300 +--- max_record_size.result ++++ max_record_size.reject @@ -3,45 +3,65 @@ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255), c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255), diff --git a/mysql-test/suite/innodb/r/max_record_size,32k,compact.rdiff b/mysql-test/suite/innodb/r/max_record_size,32k,compact.rdiff index 1bc03a5d97a..d236e12b1e1 100644 --- a/mysql-test/suite/innodb/r/max_record_size,32k,compact.rdiff +++ b/mysql-test/suite/innodb/r/max_record_size,32k,compact.rdiff @@ -1,5 +1,5 @@ ---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300 -+++ max_record_size.reject 2019-07-03 12:27:08.004932026 +0300 +--- max_record_size.result ++++ max_record_size.reject @@ -3,45 +3,104 @@ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255), c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255), diff --git a/mysql-test/suite/innodb/r/max_record_size,32k,dynamic.rdiff b/mysql-test/suite/innodb/r/max_record_size,32k,dynamic.rdiff index 71c4c2e41b7..ce9462b6900 100644 --- a/mysql-test/suite/innodb/r/max_record_size,32k,dynamic.rdiff +++ b/mysql-test/suite/innodb/r/max_record_size,32k,dynamic.rdiff @@ -1,5 +1,5 @@ ---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300 -+++ max_record_size.reject 2019-07-03 12:38:41.609328820 +0300 +--- max_record_size.result ++++ max_record_size.reject @@ -3,45 +3,351 @@ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255), c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255), diff --git a/mysql-test/suite/innodb/r/max_record_size,32k,redundant.rdiff b/mysql-test/suite/innodb/r/max_record_size,32k,redundant.rdiff index e42b3de8845..53d6f76a2d2 100644 --- a/mysql-test/suite/innodb/r/max_record_size,32k,redundant.rdiff +++ b/mysql-test/suite/innodb/r/max_record_size,32k,redundant.rdiff @@ -1,5 +1,5 @@ ---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300 -+++ max_record_size.reject 2019-07-03 12:41:03.319664978 +0300 +--- max_record_size.result ++++ max_record_size.reject @@ -3,45 +3,104 @@ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255), c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255), diff --git a/mysql-test/suite/innodb/r/max_record_size,4k,compact.rdiff b/mysql-test/suite/innodb/r/max_record_size,4k,compact.rdiff index 6f08dab3ca1..37871798f31 100644 --- a/mysql-test/suite/innodb/r/max_record_size,4k,compact.rdiff +++ b/mysql-test/suite/innodb/r/max_record_size,4k,compact.rdiff @@ -1,5 +1,5 @@ ---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300 -+++ max_record_size.reject 2019-07-03 12:56:23.489432164 +0300 +--- max_record_size.result ++++ max_record_size.reject @@ -1,47 +1,37 @@ call mtr.add_suppression("Cannot add field `.*` in table `test`.`t1` because after adding it, the row size is"); CREATE TABLE t1 ( diff --git a/mysql-test/suite/innodb/r/max_record_size,4k,dynamic.rdiff b/mysql-test/suite/innodb/r/max_record_size,4k,dynamic.rdiff index bd37d4354e7..b0b6b007d97 100644 --- a/mysql-test/suite/innodb/r/max_record_size,4k,dynamic.rdiff +++ b/mysql-test/suite/innodb/r/max_record_size,4k,dynamic.rdiff @@ -1,5 +1,5 @@ ---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300 -+++ max_record_size.reject 2019-07-03 12:57:38.636143710 +0300 +--- max_record_size.result ++++ max_record_size.reject @@ -1,47 +1,103 @@ call mtr.add_suppression("Cannot add field `.*` in table `test`.`t1` because after adding it, the row size is"); CREATE TABLE t1 ( diff --git a/mysql-test/suite/innodb/r/max_record_size,4k,redundant.rdiff b/mysql-test/suite/innodb/r/max_record_size,4k,redundant.rdiff index 93c39ff6714..0db6450d9c1 100644 --- a/mysql-test/suite/innodb/r/max_record_size,4k,redundant.rdiff +++ b/mysql-test/suite/innodb/r/max_record_size,4k,redundant.rdiff @@ -1,5 +1,5 @@ ---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300 -+++ max_record_size.reject 2019-07-03 12:58:58.318768169 +0300 +--- max_record_size.result ++++ max_record_size.reject @@ -1,47 +1,37 @@ call mtr.add_suppression("Cannot add field `.*` in table `test`.`t1` because after adding it, the row size is"); CREATE TABLE t1 ( diff --git a/mysql-test/suite/innodb/r/max_record_size,64k,compact.rdiff b/mysql-test/suite/innodb/r/max_record_size,64k,compact.rdiff index 5e6c62212d1..ab75975e238 100644 --- a/mysql-test/suite/innodb/r/max_record_size,64k,compact.rdiff +++ b/mysql-test/suite/innodb/r/max_record_size,64k,compact.rdiff @@ -1,5 +1,5 @@ ---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300 -+++ max_record_size.reject 2019-07-03 12:45:21.760116841 +0300 +--- max_record_size.result ++++ max_record_size.reject @@ -3,45 +3,186 @@ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255), c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255), diff --git a/mysql-test/suite/innodb/r/max_record_size,64k,dynamic.rdiff b/mysql-test/suite/innodb/r/max_record_size,64k,dynamic.rdiff index 2cbf4cd9c54..3e13a510055 100644 --- a/mysql-test/suite/innodb/r/max_record_size,64k,dynamic.rdiff +++ b/mysql-test/suite/innodb/r/max_record_size,64k,dynamic.rdiff @@ -1,5 +1,5 @@ ---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300 -+++ max_record_size.reject 2019-07-03 12:48:32.453208310 +0300 +--- max_record_size.result ++++ max_record_size.reject @@ -3,45 +3,486 @@ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255), c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255), diff --git a/mysql-test/suite/innodb/r/max_record_size,64k,redundant.rdiff b/mysql-test/suite/innodb/r/max_record_size,64k,redundant.rdiff index c324969fb21..a31285a2714 100644 --- a/mysql-test/suite/innodb/r/max_record_size,64k,redundant.rdiff +++ b/mysql-test/suite/innodb/r/max_record_size,64k,redundant.rdiff @@ -1,5 +1,5 @@ ---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300 -+++ max_record_size.reject 2019-07-03 12:50:05.663724193 +0300 +--- max_record_size.result ++++ max_record_size.reject @@ -3,45 +3,104 @@ c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255), c5 CHAR(255), c6 CHAR(255), c7 CHAR(255), c8 CHAR(255), diff --git a/mysql-test/suite/innodb/r/max_record_size,8k,compact.rdiff b/mysql-test/suite/innodb/r/max_record_size,8k,compact.rdiff index 4db669a8aa6..cafb5f25a0d 100644 --- a/mysql-test/suite/innodb/r/max_record_size,8k,compact.rdiff +++ b/mysql-test/suite/innodb/r/max_record_size,8k,compact.rdiff @@ -1,5 +1,5 @@ ---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300 -+++ max_record_size.reject 2019-07-03 13:00:25.037261867 +0300 +--- max_record_size.result ++++ max_record_size.reject @@ -12,7 +12,7 @@ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255), c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255) diff --git a/mysql-test/suite/innodb/r/max_record_size,8k,dynamic.rdiff b/mysql-test/suite/innodb/r/max_record_size,8k,dynamic.rdiff index 5f79d77e7f9..2f592fbb4b3 100644 --- a/mysql-test/suite/innodb/r/max_record_size,8k,dynamic.rdiff +++ b/mysql-test/suite/innodb/r/max_record_size,8k,dynamic.rdiff @@ -1,5 +1,5 @@ ---- max_record_size.result 2019-07-03 11:54:44.591421526 +0300 -+++ max_record_size.reject 2019-07-03 13:01:51.215756779 +0300 +--- max_record_size.result ++++ max_record_size.reject @@ -12,7 +12,7 @@ c9 CHAR(255), c10 CHAR(255), c11 CHAR(255), c12 CHAR(255), c13 CHAR(255), c14 CHAR(255), c15 CHAR(255), c16 CHAR(255) diff --git a/mysql-test/suite/innodb/r/recovery_memory,debug.rdiff b/mysql-test/suite/innodb/r/recovery_memory,debug.rdiff index f0e9985b04e..2879ee6adec 100644 --- a/mysql-test/suite/innodb/r/recovery_memory,debug.rdiff +++ b/mysql-test/suite/innodb/r/recovery_memory,debug.rdiff @@ -1,5 +1,5 @@ ---- recovery_memory.result 2024-06-21 12:54:38.026355524 +0530 -+++ recovery_memory.reject 2024-06-21 17:22:49.394535026 +0530 +--- recovery_memory.result ++++ recovery_memory.reject @@ -23,6 +23,7 @@ CREATE TABLE t1(f1 INT NOT NULL)ENGINE=InnoDB; INSERT INTO t1 SELECT * FROM seq_1_to_65536; diff --git a/mysql-test/suite/innodb/r/restart,16k.rdiff b/mysql-test/suite/innodb/r/restart,16k.rdiff index b36ed067913..3149b9aeab0 100644 --- a/mysql-test/suite/innodb/r/restart,16k.rdiff +++ b/mysql-test/suite/innodb/r/restart,16k.rdiff @@ -1,5 +1,5 @@ ---- ./suite/innodb/r/restart.result 2022-01-18 20:36:56.054653376 +1100 -+++ suite/innodb/r/restart.reject 2022-01-19 08:12:28.602794678 +1100 +--- ./suite/innodb/r/restart.result ++++ suite/innodb/r/restart.reject @@ -32,10 +32,10 @@ SELECT @@innodb_buffer_pool_size INTO @innodb_buffer_pool_size_orig; SELECT CEILING((256 + 64) * @@innodb_page_size / 1048576) * 1048576 INTO @min_pool_size; diff --git a/mysql-test/suite/innodb/r/restart,32k.rdiff b/mysql-test/suite/innodb/r/restart,32k.rdiff index 8fa057814c4..3f00646cb37 100644 --- a/mysql-test/suite/innodb/r/restart,32k.rdiff +++ b/mysql-test/suite/innodb/r/restart,32k.rdiff @@ -1,5 +1,5 @@ ---- ./suite/innodb/r/restart.result 2022-01-18 20:36:56.054653376 +1100 -+++ suite/innodb/r/restart.reject 2022-01-19 08:07:57.402230887 +1100 +--- ./suite/innodb/r/restart.result ++++ suite/innodb/r/restart.reject @@ -32,10 +32,10 @@ SELECT @@innodb_buffer_pool_size INTO @innodb_buffer_pool_size_orig; SELECT CEILING((256 + 64) * @@innodb_page_size / 1048576) * 1048576 INTO @min_pool_size; diff --git a/mysql-test/suite/innodb/r/restart,4k.rdiff b/mysql-test/suite/innodb/r/restart,4k.rdiff index 7d0846360e0..b00c56ef81f 100644 --- a/mysql-test/suite/innodb/r/restart,4k.rdiff +++ b/mysql-test/suite/innodb/r/restart,4k.rdiff @@ -1,5 +1,5 @@ ---- ./suite/innodb/r/restart.result 2022-01-18 20:36:56.054653376 +1100 -+++ suite/innodb/r/restart.reject 2022-01-19 08:13:56.397475513 +1100 +--- ./suite/innodb/r/restart.result ++++ suite/innodb/r/restart.reject @@ -32,10 +32,10 @@ SELECT @@innodb_buffer_pool_size INTO @innodb_buffer_pool_size_orig; SELECT CEILING((256 + 64) * @@innodb_page_size / 1048576) * 1048576 INTO @min_pool_size; diff --git a/mysql-test/suite/innodb/r/restart,64k.rdiff b/mysql-test/suite/innodb/r/restart,64k.rdiff index 3ac9f45b196..886cbcde7d9 100644 --- a/mysql-test/suite/innodb/r/restart,64k.rdiff +++ b/mysql-test/suite/innodb/r/restart,64k.rdiff @@ -1,5 +1,5 @@ ---- ./suite/innodb/r/restart.result 2022-01-18 20:36:56.054653376 +1100 -+++ suite/innodb/r/restart.reject 2022-01-19 08:11:32.418759095 +1100 +--- ./suite/innodb/r/restart.result ++++ suite/innodb/r/restart.reject @@ -32,10 +32,10 @@ SELECT @@innodb_buffer_pool_size INTO @innodb_buffer_pool_size_orig; SELECT CEILING((256 + 64) * @@innodb_page_size / 1048576) * 1048576 INTO @min_pool_size; diff --git a/mysql-test/suite/innodb/r/restart,8k.rdiff b/mysql-test/suite/innodb/r/restart,8k.rdiff index 4da55ebfcef..40a9e1bad1c 100644 --- a/mysql-test/suite/innodb/r/restart,8k.rdiff +++ b/mysql-test/suite/innodb/r/restart,8k.rdiff @@ -1,5 +1,5 @@ ---- ./suite/innodb/r/restart.result 2022-01-18 20:36:56.054653376 +1100 -+++ suite/innodb/r/restart.reject 2022-01-19 08:13:11.027788852 +1100 +--- ./suite/innodb/r/restart.result ++++ suite/innodb/r/restart.reject @@ -32,10 +32,10 @@ SELECT @@innodb_buffer_pool_size INTO @innodb_buffer_pool_size_orig; SELECT CEILING((256 + 64) * @@innodb_page_size / 1048576) * 1048576 INTO @min_pool_size; diff --git a/mysql-test/suite/mtr/t/simple,c2,s1.rdiff b/mysql-test/suite/mtr/t/simple,c2,s1.rdiff index 3023756aa8a..91f800a6211 100644 --- a/mysql-test/suite/mtr/t/simple,c2,s1.rdiff +++ b/mysql-test/suite/mtr/t/simple,c2,s1.rdiff @@ -1,5 +1,5 @@ ---- suite/mtr/t/simple.result 2012-02-04 12:13:41.000000000 +0100 -+++ suite/mtr/t/simple,infile,verbose.reject 2012-02-04 12:16:10.000000000 +0100 +--- suite/mtr/t/simple.result ++++ suite/mtr/t/simple,infile,verbose.reject @@ -3,7 +3,7 @@ proxy select @@local_infile; diff --git a/mysql-test/suite/mtr/t/simple,s2,c2.rdiff b/mysql-test/suite/mtr/t/simple,s2,c2.rdiff index a9b9b56ef1c..a4c9ab968c5 100644 --- a/mysql-test/suite/mtr/t/simple,s2,c2.rdiff +++ b/mysql-test/suite/mtr/t/simple,s2,c2.rdiff @@ -1,5 +1,5 @@ ---- suite/mtr/t/simple,old.result 2012-02-04 12:13:25.000000000 +0100 -+++ suite/mtr/t/simple,old,infile.reject 2012-02-04 12:13:59.000000000 +0100 +--- suite/mtr/t/simple,old.result ++++ suite/mtr/t/simple,old,infile.reject @@ -3,7 +3,7 @@ proxy select @@local_infile; diff --git a/mysql-test/suite/period/r/delete,myisam.rdiff b/mysql-test/suite/period/r/delete,myisam.rdiff index 78fb972b0bc..179f399ac9a 100644 --- a/mysql-test/suite/period/r/delete,myisam.rdiff +++ b/mysql-test/suite/period/r/delete,myisam.rdiff @@ -1,5 +1,5 @@ ---- suite/period/r/delete.result 2019-02-16 11:14:23.511258191 +0100 -+++ suite/period/r/delete.reject 2019-02-16 11:14:32.869258690 +0100 +--- suite/period/r/delete.result ++++ suite/period/r/delete.reject @@ -250,7 +250,6 @@ ERROR 22003: Out of range value for column 'id' at row 1 select * from t; diff --git a/mysql-test/suite/rpl/r/rpl_delayed_slave,parallel.rdiff b/mysql-test/suite/rpl/r/rpl_delayed_slave,parallel.rdiff index aaadbb28ca3..d803f8be5c2 100644 --- a/mysql-test/suite/rpl/r/rpl_delayed_slave,parallel.rdiff +++ b/mysql-test/suite/rpl/r/rpl_delayed_slave,parallel.rdiff @@ -1,5 +1,5 @@ ---- mysql-test/suite/rpl/r/rpl_delayed_slave.result 2016-10-14 21:14:02.338075590 +0200 -+++ mysql-test/suite/rpl/r/rpl_delayed_slave,parallel.reject 2016-10-14 21:17:51.296986686 +0200 +--- mysql-test/suite/rpl/r/rpl_delayed_slave.result ++++ mysql-test/suite/rpl/r/rpl_delayed_slave,parallel.reject @@ -45,7 +45,6 @@ # wait for first query to execute # sleep 1*T diff --git a/mysql-test/suite/rpl/r/rpl_insert_delayed,stmt.rdiff b/mysql-test/suite/rpl/r/rpl_insert_delayed,stmt.rdiff index 1946228f401..d1a101e51ca 100644 --- a/mysql-test/suite/rpl/r/rpl_insert_delayed,stmt.rdiff +++ b/mysql-test/suite/rpl/r/rpl_insert_delayed,stmt.rdiff @@ -1,5 +1,5 @@ ---- suite/rpl/r/rpl_insert_delayed.result 2016-03-25 19:44:43.408210896 +0400 -+++ suite/rpl/r/rpl_insert_delayed,stmt.reject 2016-03-25 23:55:18.396360848 +0400 +--- suite/rpl/r/rpl_insert_delayed.result ++++ suite/rpl/r/rpl_insert_delayed,stmt.reject @@ -18,19 +18,19 @@ insert delayed into t1 values(10, "my name"); flush table t1; diff --git a/mysql-test/suite/rpl/r/rpl_iodku,stmt.rdiff b/mysql-test/suite/rpl/r/rpl_iodku,stmt.rdiff index e31f1e5d991..2986a47c9ae 100644 --- a/mysql-test/suite/rpl/r/rpl_iodku,stmt.rdiff +++ b/mysql-test/suite/rpl/r/rpl_iodku,stmt.rdiff @@ -1,5 +1,5 @@ ---- r/rpl_iodku.result 2022-05-04 18:51:24.956414404 +0300 -+++ r/rpl_iodku,stmt.reject 2022-05-04 18:51:49.520106231 +0300 +--- r/rpl_iodku.result ++++ r/rpl_iodku,stmt.reject @@ -1,10 +1,15 @@ include/master-slave.inc [connection master] diff --git a/mysql-test/suite/rpl/r/rpl_row_big_table_id,32bit.rdiff b/mysql-test/suite/rpl/r/rpl_row_big_table_id,32bit.rdiff index 3815ec9375d..1154f92c39e 100644 --- a/mysql-test/suite/rpl/r/rpl_row_big_table_id,32bit.rdiff +++ b/mysql-test/suite/rpl/r/rpl_row_big_table_id,32bit.rdiff @@ -1,5 +1,5 @@ ---- /home/my/maria-test/mysql-test/suite/rpl/r/rpl_row_big_table_id.result 2019-08-18 15:19:56.829962449 +0300 -+++ /home/my/maria-test/mysql-test/suite/rpl/r/rpl_row_big_table_id,32bit.reject 2019-08-18 15:20:19.253763968 +0300 +--- /home/my/maria-test/mysql-test/suite/rpl/r/rpl_row_big_table_id.result ++++ /home/my/maria-test/mysql-test/suite/rpl/r/rpl_row_big_table_id,32bit.reject @@ -20,22 +20,22 @@ master-bin.000001 # Query 1 # use `test`; ALTER TABLE t comment '' master-bin.000001 # Gtid 1 # BEGIN GTID #-#-# diff --git a/mysql-test/suite/sys_vars/r/aria_sort_buffer_size_basic,32bit.rdiff b/mysql-test/suite/sys_vars/r/aria_sort_buffer_size_basic,32bit.rdiff index c30b99f1f95..77bb1f81d40 100644 --- a/mysql-test/suite/sys_vars/r/aria_sort_buffer_size_basic,32bit.rdiff +++ b/mysql-test/suite/sys_vars/r/aria_sort_buffer_size_basic,32bit.rdiff @@ -1,5 +1,5 @@ ---- suite/sys_vars/r/aria_sort_buffer_size_basic.result 2021-02-02 02:58:55.686921205 +0200 -+++ suite/sys_vars/r/aria_sort_buffer_size_basic.reject 2021-02-02 11:02:12.361178360 +0200 +--- suite/sys_vars/r/aria_sort_buffer_size_basic.result ++++ suite/sys_vars/r/aria_sort_buffer_size_basic.reject @@ -44,5 +44,5 @@ set session aria_sort_buffer_size=cast(-1 as unsigned int); select @@session.aria_sort_buffer_size; diff --git a/mysql-test/suite/sys_vars/r/innodb_ft_result_cache_limit,32bit.rdiff b/mysql-test/suite/sys_vars/r/innodb_ft_result_cache_limit,32bit.rdiff index cd9a004a686..79e15420af3 100644 --- a/mysql-test/suite/sys_vars/r/innodb_ft_result_cache_limit,32bit.rdiff +++ b/mysql-test/suite/sys_vars/r/innodb_ft_result_cache_limit,32bit.rdiff @@ -1,5 +1,5 @@ ---- mysql-test/suite/sys_vars/r/innodb_ft_result_cache_limit.result 2019-05-07 15:09:57.220599318 +0530 -+++ mysql-test/suite/sys_vars/r/innodb_ft_result_cache_limit.reject 2019-05-07 15:10:20.012718538 +0530 +--- mysql-test/suite/sys_vars/r/innodb_ft_result_cache_limit.result ++++ mysql-test/suite/sys_vars/r/innodb_ft_result_cache_limit.reject @@ -1,5 +1,7 @@ set global innodb_ft_result_cache_limit=5000000000; +Warnings: diff --git a/mysql-test/suite/sys_vars/r/sysvars_aria,32bit.rdiff b/mysql-test/suite/sys_vars/r/sysvars_aria,32bit.rdiff index 6569d266695..1469397e83b 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_aria,32bit.rdiff +++ b/mysql-test/suite/sys_vars/r/sysvars_aria,32bit.rdiff @@ -1,5 +1,5 @@ ---- suite/sys_vars/r/sysvars_aria.result 2021-02-02 02:58:55.686921205 +0200 -+++ suite/sys_vars/r/sysvars_aria,32bit.reject 2021-02-02 10:55:53.876791633 +0200 +--- suite/sys_vars/r/sysvars_aria.result ++++ suite/sys_vars/r/sysvars_aria,32bit.reject @@ -5,7 +5,7 @@ SESSION_VALUE NULL DEFAULT_VALUE 8192 diff --git a/mysql-test/suite/sys_vars/r/sysvars_debug,32bit.rdiff b/mysql-test/suite/sys_vars/r/sysvars_debug,32bit.rdiff index 8adb294db00..cb8338d4e9b 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_debug,32bit.rdiff +++ b/mysql-test/suite/sys_vars/r/sysvars_debug,32bit.rdiff @@ -1,5 +1,5 @@ ---- r\sysvars_debug.result 2017-08-08 10:52:39.036804900 +0300 -+++ r\sysvars_debug,32bit.reject 2017-09-10 08:06:38.447122100 +0300 +--- r\sysvars_debug.result ++++ r\sysvars_debug,32bit.reject @@ -21,7 +21,7 @@ GLOBAL_VALUE_ORIGIN CONFIG DEFAULT_VALUE 0 diff --git a/mysql-test/suite/sys_vars/r/sysvars_wsrep,32bit.rdiff b/mysql-test/suite/sys_vars/r/sysvars_wsrep,32bit.rdiff index 016bd016f29..73b788057cb 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_wsrep,32bit.rdiff +++ b/mysql-test/suite/sys_vars/r/sysvars_wsrep,32bit.rdiff @@ -1,5 +1,5 @@ ---- suite/sys_vars/r/sysvars_wsrep.result 2014-10-10 13:33:55.000000000 +0300 -+++ suite/sys_vars/r/sysvars_wsrep,32bit.reject 2014-10-10 19:38:09.000000000 +0300 +--- suite/sys_vars/r/sysvars_wsrep.result ++++ suite/sys_vars/r/sysvars_wsrep,32bit.reject @@ -245,7 +245,7 @@ GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 131072 diff --git a/mysql-test/suite/versioning/r/select,trx_id.rdiff b/mysql-test/suite/versioning/r/select,trx_id.rdiff index 8906007a348..1b879493475 100644 --- a/mysql-test/suite/versioning/r/select,trx_id.rdiff +++ b/mysql-test/suite/versioning/r/select,trx_id.rdiff @@ -1,5 +1,5 @@ ---- select.result 2018-06-29 18:09:17.962447067 +0200 -+++ select.reject 2018-06-29 18:10:04.618808616 +0200 +--- select.result ++++ select.reject @@ -17,6 +17,8 @@ (8, 108), (9, 109); diff --git a/mysql-test/suite/versioning/r/select2,trx_id.rdiff b/mysql-test/suite/versioning/r/select2,trx_id.rdiff index bdc20d1dc4f..085a2a12653 100644 --- a/mysql-test/suite/versioning/r/select2,trx_id.rdiff +++ b/mysql-test/suite/versioning/r/select2,trx_id.rdiff @@ -1,5 +1,5 @@ ---- select2.result 2018-06-29 17:51:17.142172085 +0200 -+++ select2,trx_id.reject 2018-06-29 18:03:49.034273090 +0200 +--- select2.result ++++ select2,trx_id.reject @@ -26,6 +26,8 @@ select sys_start from t1 where x = 3 and y = 33 into @t1; Warnings: diff --git a/mysql-test/suite/wsrep/r/wsrep-recover-v25,binlogon.rdiff b/mysql-test/suite/wsrep/r/wsrep-recover-v25,binlogon.rdiff index 596abf9c681..5fc091c7752 100644 --- a/mysql-test/suite/wsrep/r/wsrep-recover-v25,binlogon.rdiff +++ b/mysql-test/suite/wsrep/r/wsrep-recover-v25,binlogon.rdiff @@ -1,5 +1,5 @@ ---- r/wsrep-recover-v25.result 2019-02-28 09:20:56.153775856 +0200 -+++ r/wsrep-recover-v25.reject 2019-02-28 09:22:16.578113115 +0200 +--- r/wsrep-recover-v25.result ++++ r/wsrep-recover-v25.reject @@ -12,4 +12,16 @@ SELECT VARIABLE_VALUE `expect 6` FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'; expect 6 diff --git a/storage/example/mysql-test/mtr/t/test2.rdiff b/storage/example/mysql-test/mtr/t/test2.rdiff index b0bf2fdfe4d..e0e67630df3 100644 --- a/storage/example/mysql-test/mtr/t/test2.rdiff +++ b/storage/example/mysql-test/mtr/t/test2.rdiff @@ -1,5 +1,5 @@ ---- /usr/home/serg/Abk/mysql/5.1/mysql-test/suite/mtr/t/test2.result 2012-02-04 21:15:14.000000000 +0100 -+++ /usr/home/serg/Abk/mysql/5.1/mysql-test/suite/mtr/t/test2.reject 2012-02-04 21:31:45.000000000 +0100 +--- /usr/home/serg/Abk/mysql/5.1/mysql-test/suite/mtr/t/test2.result ++++ /usr/home/serg/Abk/mysql/5.1/mysql-test/suite/mtr/t/test2.reject @@ -1,4 +1,4 @@ select @@local_infile; select @@max_error_count; diff --git a/storage/innobase/mysql-test/storage_engine/autoinc_secondary.rdiff b/storage/innobase/mysql-test/storage_engine/autoinc_secondary.rdiff index 00cda7c4435..5f183c9216e 100644 --- a/storage/innobase/mysql-test/storage_engine/autoinc_secondary.rdiff +++ b/storage/innobase/mysql-test/storage_engine/autoinc_secondary.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/autoinc_secondary.result 2012-07-12 04:34:18.153885986 +0400 -+++ suite/storage_engine/autoinc_secondary.reject 2012-07-15 17:47:03.937703666 +0400 +--- suite/storage_engine/autoinc_secondary.result ++++ suite/storage_engine/autoinc_secondary.reject @@ -13,18 +13,15 @@ 5 a DROP TABLE t1; diff --git a/storage/innobase/mysql-test/storage_engine/cache_index.rdiff b/storage/innobase/mysql-test/storage_engine/cache_index.rdiff index e04df87aa34..7be04d3ec28 100644 --- a/storage/innobase/mysql-test/storage_engine/cache_index.rdiff +++ b/storage/innobase/mysql-test/storage_engine/cache_index.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/cache_index.result 2012-07-15 00:22:19.822493731 +0400 -+++ suite/storage_engine/cache_index.reject 2012-07-15 17:47:18.321522834 +0400 +--- suite/storage_engine/cache_index.result ++++ suite/storage_engine/cache_index.reject @@ -12,31 +12,31 @@ SET GLOBAL .key_buffer_size=128*1024; CACHE INDEX t1 INDEX (a), t2 IN ; diff --git a/storage/innobase/mysql-test/storage_engine/checksum_table_live.rdiff b/storage/innobase/mysql-test/storage_engine/checksum_table_live.rdiff index 71c782848a6..31a480f0585 100644 --- a/storage/innobase/mysql-test/storage_engine/checksum_table_live.rdiff +++ b/storage/innobase/mysql-test/storage_engine/checksum_table_live.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/checksum_table_live.result 2012-07-12 21:05:44.497062968 +0400 -+++ suite/storage_engine/checksum_table_live.reject 2012-07-15 17:47:28.105399836 +0400 +--- suite/storage_engine/checksum_table_live.result ++++ suite/storage_engine/checksum_table_live.reject @@ -11,8 +11,8 @@ test.t1 4272806499 CHECKSUM TABLE t1, t2 QUICK; diff --git a/storage/innobase/mysql-test/storage_engine/fulltext_search.rdiff b/storage/innobase/mysql-test/storage_engine/fulltext_search.rdiff index a68fe83070e..e35cd5dcfa1 100644 --- a/storage/innobase/mysql-test/storage_engine/fulltext_search.rdiff +++ b/storage/innobase/mysql-test/storage_engine/fulltext_search.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/fulltext_search.result 2013-11-27 18:50:16.000000000 +0400 -+++ suite/storage_engine/fulltext_search.reject 2014-02-05 15:33:26.000000000 +0400 +--- suite/storage_engine/fulltext_search.result ++++ suite/storage_engine/fulltext_search.reject @@ -52,15 +52,14 @@ INSERT INTO t1 (v0,v1,v2) VALUES ('text4','Contributing more...','...is a good idea'),('text5','test','test'); SELECT v0, MATCH(v1) AGAINST('contributing') AS rating FROM t1 WHERE MATCH(v1) AGAINST ('contributing'); diff --git a/storage/innobase/mysql-test/storage_engine/index_enable_disable.rdiff b/storage/innobase/mysql-test/storage_engine/index_enable_disable.rdiff index f8e812e7edb..b0e730205cd 100644 --- a/storage/innobase/mysql-test/storage_engine/index_enable_disable.rdiff +++ b/storage/innobase/mysql-test/storage_engine/index_enable_disable.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/index_enable_disable.result 2012-07-15 00:30:05.296641931 +0400 -+++ suite/storage_engine/index_enable_disable.reject 2012-07-15 17:49:12.988081281 +0400 +--- suite/storage_engine/index_enable_disable.result ++++ suite/storage_engine/index_enable_disable.reject @@ -11,15 +11,19 @@ Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment t1 1 a 1 a # # NULL NULL YES BTREE diff --git a/storage/innobase/mysql-test/storage_engine/index_type_hash.rdiff b/storage/innobase/mysql-test/storage_engine/index_type_hash.rdiff index 02f9d93588f..665b45c0274 100644 --- a/storage/innobase/mysql-test/storage_engine/index_type_hash.rdiff +++ b/storage/innobase/mysql-test/storage_engine/index_type_hash.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/index_type_hash.result 2012-07-15 01:10:17.919128889 +0400 -+++ suite/storage_engine/index_type_hash.reject 2012-07-15 17:49:26.135915989 +0400 +--- suite/storage_engine/index_type_hash.result ++++ suite/storage_engine/index_type_hash.reject @@ -4,7 +4,7 @@ ) ENGINE= ; SHOW KEYS IN t1; diff --git a/storage/innobase/mysql-test/storage_engine/insert_delayed.rdiff b/storage/innobase/mysql-test/storage_engine/insert_delayed.rdiff index 9e6cddf03f0..16252566fdb 100644 --- a/storage/innobase/mysql-test/storage_engine/insert_delayed.rdiff +++ b/storage/innobase/mysql-test/storage_engine/insert_delayed.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/insert_delayed.result 2013-01-23 01:23:49.461254916 +0400 -+++ suite/storage_engine/insert_delayed.reject 2013-01-23 01:47:05.975698364 +0400 +--- suite/storage_engine/insert_delayed.result ++++ suite/storage_engine/insert_delayed.reject @@ -5,7 +5,16 @@ connect con0,localhost,root,,; SET lock_wait_timeout = 1; diff --git a/storage/innobase/mysql-test/storage_engine/lock_concurrent.rdiff b/storage/innobase/mysql-test/storage_engine/lock_concurrent.rdiff index c76a5fe7f15..8b4452ea5ee 100644 --- a/storage/innobase/mysql-test/storage_engine/lock_concurrent.rdiff +++ b/storage/innobase/mysql-test/storage_engine/lock_concurrent.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/lock_concurrent.result 2012-06-24 23:55:19.539380000 +0400 -+++ suite/storage_engine/lock_concurrent.reject 2012-07-15 17:50:21.279222746 +0400 +--- suite/storage_engine/lock_concurrent.result ++++ suite/storage_engine/lock_concurrent.reject @@ -4,6 +4,14 @@ connect con1,localhost,root,,; SET lock_wait_timeout = 1; diff --git a/storage/innobase/mysql-test/storage_engine/optimize_table.rdiff b/storage/innobase/mysql-test/storage_engine/optimize_table.rdiff index 54d1f600516..14dbeaec3a2 100644 --- a/storage/innobase/mysql-test/storage_engine/optimize_table.rdiff +++ b/storage/innobase/mysql-test/storage_engine/optimize_table.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/optimize_table.result 2012-07-12 19:13:53.741428591 +0400 -+++ suite/storage_engine/optimize_table.reject 2012-07-15 17:50:30.843102510 +0400 +--- suite/storage_engine/optimize_table.result ++++ suite/storage_engine/optimize_table.reject @@ -5,25 +5,32 @@ INSERT INTO t1 (a,b) VALUES (3,'c'),(4,'d'); OPTIMIZE TABLE t1; diff --git a/storage/innobase/mysql-test/storage_engine/parts/checksum_table.rdiff b/storage/innobase/mysql-test/storage_engine/parts/checksum_table.rdiff index c8aabb787e9..660195498fa 100644 --- a/storage/innobase/mysql-test/storage_engine/parts/checksum_table.rdiff +++ b/storage/innobase/mysql-test/storage_engine/parts/checksum_table.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/parts/checksum_table.result 2013-11-08 22:30:34.000000000 +0400 -+++ suite/storage_engine/parts/checksum_table.reject 2013-11-08 22:32:30.000000000 +0400 +--- suite/storage_engine/parts/checksum_table.result ++++ suite/storage_engine/parts/checksum_table.reject @@ -31,8 +31,8 @@ test.t1 4272806499 CHECKSUM TABLE t1, t2 QUICK; diff --git a/storage/innobase/mysql-test/storage_engine/parts/create_table.rdiff b/storage/innobase/mysql-test/storage_engine/parts/create_table.rdiff index 0df91c6fc6e..4f4165b1143 100644 --- a/storage/innobase/mysql-test/storage_engine/parts/create_table.rdiff +++ b/storage/innobase/mysql-test/storage_engine/parts/create_table.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/parts/create_table.result 2012-07-12 21:56:38.618667460 +0400 -+++ suite/storage_engine/parts/create_table.reject 2012-07-15 20:06:43.496358345 +0400 +--- suite/storage_engine/parts/create_table.result ++++ suite/storage_engine/parts/create_table.reject @@ -65,7 +65,7 @@ 1 SIMPLE t1 abc,def # # # # # # # EXPLAIN PARTITIONS SELECT a FROM t1 WHERE a = 100; diff --git a/storage/innobase/mysql-test/storage_engine/parts/optimize_table.rdiff b/storage/innobase/mysql-test/storage_engine/parts/optimize_table.rdiff index a35ba5167d9..0133a43088e 100644 --- a/storage/innobase/mysql-test/storage_engine/parts/optimize_table.rdiff +++ b/storage/innobase/mysql-test/storage_engine/parts/optimize_table.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/parts/optimize_table.result 2013-07-18 22:55:38.000000000 +0400 -+++ suite/storage_engine/parts/optimize_table.reject 2013-08-05 19:45:19.000000000 +0400 +--- suite/storage_engine/parts/optimize_table.result ++++ suite/storage_engine/parts/optimize_table.reject @@ -9,18 +9,22 @@ INSERT INTO t1 (a,b) VALUES (3,'c'),(4,'d'); ALTER TABLE t1 OPTIMIZE PARTITION p1; diff --git a/storage/innobase/mysql-test/storage_engine/parts/repair_table.rdiff b/storage/innobase/mysql-test/storage_engine/parts/repair_table.rdiff index 35b150e82d1..19d665ce93a 100644 --- a/storage/innobase/mysql-test/storage_engine/parts/repair_table.rdiff +++ b/storage/innobase/mysql-test/storage_engine/parts/repair_table.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/parts/repair_table.result 2013-07-18 22:55:38.000000000 +0400 -+++ suite/storage_engine/parts/repair_table.reject 2013-08-05 19:54:09.000000000 +0400 +--- suite/storage_engine/parts/repair_table.result ++++ suite/storage_engine/parts/repair_table.reject @@ -25,7 +25,7 @@ INSERT INTO t1 (a,b) VALUES (10,'j'); ALTER TABLE t1 REPAIR PARTITION p1 QUICK USE_FRM; diff --git a/storage/innobase/mysql-test/storage_engine/repair_table.rdiff b/storage/innobase/mysql-test/storage_engine/repair_table.rdiff index e9c46b3a6c1..18852739d06 100644 --- a/storage/innobase/mysql-test/storage_engine/repair_table.rdiff +++ b/storage/innobase/mysql-test/storage_engine/repair_table.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/repair_table.result 2013-10-03 20:35:06.000000000 +0400 -+++ suite/storage_engine/repair_table.reject 2013-11-08 22:04:22.000000000 +0400 +--- suite/storage_engine/repair_table.result ++++ suite/storage_engine/repair_table.reject @@ -4,56 +4,57 @@ CREATE TABLE t2 (a , b ) ENGINE= ; REPAIR TABLE t1; diff --git a/storage/innobase/mysql-test/storage_engine/tbl_opt_index_dir.rdiff b/storage/innobase/mysql-test/storage_engine/tbl_opt_index_dir.rdiff index e09e50b17ec..7d08e30a70b 100644 --- a/storage/innobase/mysql-test/storage_engine/tbl_opt_index_dir.rdiff +++ b/storage/innobase/mysql-test/storage_engine/tbl_opt_index_dir.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/tbl_opt_data_index_dir.result 2013-10-03 20:35:06.000000000 +0400 -+++ suite/storage_engine/tbl_opt_data_index_dir.reject 2013-11-08 22:06:54.000000000 +0400 +--- suite/storage_engine/tbl_opt_data_index_dir.result ++++ suite/storage_engine/tbl_opt_data_index_dir.reject @@ -1,10 +1,12 @@ DROP TABLE IF EXISTS t1; +Warnings: diff --git a/storage/innobase/mysql-test/storage_engine/tbl_opt_insert_method.rdiff b/storage/innobase/mysql-test/storage_engine/tbl_opt_insert_method.rdiff index 468b82926f0..d94836573a8 100644 --- a/storage/innobase/mysql-test/storage_engine/tbl_opt_insert_method.rdiff +++ b/storage/innobase/mysql-test/storage_engine/tbl_opt_insert_method.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/tbl_opt_insert_method.result 2012-06-24 23:55:19.539380000 +0400 -+++ suite/storage_engine/tbl_opt_insert_method.reject 2012-07-15 17:51:09.978610512 +0400 +--- suite/storage_engine/tbl_opt_insert_method.result ++++ suite/storage_engine/tbl_opt_insert_method.reject @@ -5,7 +5,7 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/innobase/mysql-test/storage_engine/tbl_opt_row_format.rdiff b/storage/innobase/mysql-test/storage_engine/tbl_opt_row_format.rdiff index daa5fc67dec..717ccf954cf 100644 --- a/storage/innobase/mysql-test/storage_engine/tbl_opt_row_format.rdiff +++ b/storage/innobase/mysql-test/storage_engine/tbl_opt_row_format.rdiff @@ -1,5 +1,5 @@ ---- ../storage/innobase/mysql-test/storage_engine/tbl_opt_row_format.result~ 2017-05-24 00:40:12.854181048 +0300 -+++ ../storage/innobase/mysql-test/storage_engine/tbl_opt_row_format.reject 2017-05-24 00:49:06.578191030 +0300 +--- ../storage/innobase/mysql-test/storage_engine/tbl_opt_row_format.result~ ++++ ../storage/innobase/mysql-test/storage_engine/tbl_opt_row_format.reject @@ -7,19 +7,39 @@ `b` char(8) DEFAULT NULL ) ENGINE= DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC diff --git a/storage/innobase/mysql-test/storage_engine/tbl_opt_union.rdiff b/storage/innobase/mysql-test/storage_engine/tbl_opt_union.rdiff index cbdf5818022..bf30d718c56 100644 --- a/storage/innobase/mysql-test/storage_engine/tbl_opt_union.rdiff +++ b/storage/innobase/mysql-test/storage_engine/tbl_opt_union.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/tbl_opt_union.result 2012-06-24 23:55:19.539380000 +0400 -+++ suite/storage_engine/tbl_opt_union.reject 2012-07-15 17:51:31.014346053 +0400 +--- suite/storage_engine/tbl_opt_union.result ++++ suite/storage_engine/tbl_opt_union.reject @@ -4,11 +4,11 @@ Table Create Table t1 CREATE TABLE `t1` ( diff --git a/storage/innobase/mysql-test/storage_engine/trx/cons_snapshot_serializable.rdiff b/storage/innobase/mysql-test/storage_engine/trx/cons_snapshot_serializable.rdiff index e6149be58dc..2860d5cb0b8 100644 --- a/storage/innobase/mysql-test/storage_engine/trx/cons_snapshot_serializable.rdiff +++ b/storage/innobase/mysql-test/storage_engine/trx/cons_snapshot_serializable.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/trx/cons_snapshot_serializable.result 2013-11-27 18:46:36.000000000 +0400 -+++ suite/storage_engine/trx/cons_snapshot_serializable.reject 2013-11-28 19:17:02.000000000 +0400 +--- suite/storage_engine/trx/cons_snapshot_serializable.result ++++ suite/storage_engine/trx/cons_snapshot_serializable.reject @@ -5,12 +5,15 @@ CREATE TABLE t1 (a ) ENGINE= ; SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; diff --git a/storage/innobase/mysql-test/storage_engine/trx/level_read_committed.rdiff b/storage/innobase/mysql-test/storage_engine/trx/level_read_committed.rdiff index cb64d32138b..d0a846ee1f7 100644 --- a/storage/innobase/mysql-test/storage_engine/trx/level_read_committed.rdiff +++ b/storage/innobase/mysql-test/storage_engine/trx/level_read_committed.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/trx/level_read_committed.result 2013-11-28 19:18:48.000000000 +0400 -+++ suite/storage_engine/trx/level_read_committed.reject 2013-11-28 19:18:59.000000000 +0400 +--- suite/storage_engine/trx/level_read_committed.result ++++ suite/storage_engine/trx/level_read_committed.reject @@ -77,6 +77,8 @@ CREATE TABLE t1 (a ) ENGINE= ; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; diff --git a/storage/innobase/mysql-test/storage_engine/trx/level_read_uncommitted.rdiff b/storage/innobase/mysql-test/storage_engine/trx/level_read_uncommitted.rdiff index 6a79abe3ca5..ee483dd64bb 100644 --- a/storage/innobase/mysql-test/storage_engine/trx/level_read_uncommitted.rdiff +++ b/storage/innobase/mysql-test/storage_engine/trx/level_read_uncommitted.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/trx/level_read_uncommitted.result 2013-11-28 19:18:48.000000000 +0400 -+++ suite/storage_engine/trx/level_read_uncommitted.reject 2013-11-28 19:19:50.000000000 +0400 +--- suite/storage_engine/trx/level_read_uncommitted.result ++++ suite/storage_engine/trx/level_read_uncommitted.reject @@ -102,6 +102,8 @@ CREATE TABLE t1 (a ) ENGINE= ; SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; diff --git a/storage/innobase/mysql-test/storage_engine/type_char_indexes.rdiff b/storage/innobase/mysql-test/storage_engine/type_char_indexes.rdiff index 98e17f3c825..72f86c2af50 100644 --- a/storage/innobase/mysql-test/storage_engine/type_char_indexes.rdiff +++ b/storage/innobase/mysql-test/storage_engine/type_char_indexes.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/type_char_indexes.result 2014-10-12 14:22:11.000000000 +0400 -+++ suite/storage_engine/type_char_indexes.reject 2014-10-12 14:23:28.000000000 +0400 +--- suite/storage_engine/type_char_indexes.result ++++ suite/storage_engine/type_char_indexes.reject @@ -137,7 +137,7 @@ r3a EXPLAIN SELECT c,c20,v16,v128 FROM t1 WHERE v16 = 'varchar1a' OR v16 = 'varchar3a' ORDER BY v16; diff --git a/storage/innobase/mysql-test/storage_engine/type_float_indexes.rdiff b/storage/innobase/mysql-test/storage_engine/type_float_indexes.rdiff index 6ebfd61d876..79af0d9dd37 100644 --- a/storage/innobase/mysql-test/storage_engine/type_float_indexes.rdiff +++ b/storage/innobase/mysql-test/storage_engine/type_float_indexes.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/type_float_indexes.result 2012-07-12 19:37:27.031661128 +0400 -+++ suite/storage_engine/type_float_indexes.reject 2012-07-15 17:52:12.189828410 +0400 +--- suite/storage_engine/type_float_indexes.result ++++ suite/storage_engine/type_float_indexes.reject @@ -60,7 +60,7 @@ ALTER TABLE t1 ADD UNIQUE KEY(d); EXPLAIN SELECT d FROM t1 WHERE r > 0 and d > 0 ORDER BY d; diff --git a/storage/myisam/mysql-test/mtr2/single.rdiff b/storage/myisam/mysql-test/mtr2/single.rdiff index fd590d53d4a..db13b5f4593 100644 --- a/storage/myisam/mysql-test/mtr2/single.rdiff +++ b/storage/myisam/mysql-test/mtr2/single.rdiff @@ -1,5 +1,5 @@ ---- suite/mtr2/single.result 2013-11-10 03:58:37.000000000 +0400 -+++ suite/mtr2/single.reject 2013-11-10 03:59:08.000000000 +0400 +--- suite/mtr2/single.result ++++ suite/mtr2/single.reject @@ -1,6 +1,6 @@ select 1; 1 diff --git a/storage/myisam/mysql-test/storage_engine/alter_table_online.rdiff b/storage/myisam/mysql-test/storage_engine/alter_table_online.rdiff index 58c7620f3b9..745cf0416ad 100644 --- a/storage/myisam/mysql-test/storage_engine/alter_table_online.rdiff +++ b/storage/myisam/mysql-test/storage_engine/alter_table_online.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/alter_table_online.result 2013-11-08 20:01:16.000000000 +0400 -+++ suite/storage_engine/alter_table_online.reject 2013-11-08 20:02:03.000000000 +0400 +--- suite/storage_engine/alter_table_online.result ++++ suite/storage_engine/alter_table_online.reject @@ -23,12 +50,30 @@ CREATE TABLE t1 (a , b , c ) ENGINE= ; INSERT INTO t1 (a,b,c) VALUES (1,100,'a'),(2,200,'b'),(3,300,'c'); diff --git a/storage/myisam/mysql-test/storage_engine/alter_tablespace.rdiff b/storage/myisam/mysql-test/storage_engine/alter_tablespace.rdiff index a8c78b117a9..0292bde2fe5 100644 --- a/storage/myisam/mysql-test/storage_engine/alter_tablespace.rdiff +++ b/storage/myisam/mysql-test/storage_engine/alter_tablespace.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/alter_tablespace.result 2012-07-12 19:53:40.775419511 +0400 -+++ suite/storage_engine/alter_tablespace.reject 2012-07-15 16:21:14.910435703 +0400 +--- suite/storage_engine/alter_tablespace.result ++++ suite/storage_engine/alter_tablespace.reject @@ -1,21 +1,14 @@ DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 (a ) ENGINE= ; diff --git a/storage/myisam/mysql-test/storage_engine/check_table.rdiff b/storage/myisam/mysql-test/storage_engine/check_table.rdiff index 48e8fc2e770..7ded1d9bc36 100644 --- a/storage/myisam/mysql-test/storage_engine/check_table.rdiff +++ b/storage/myisam/mysql-test/storage_engine/check_table.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/check_table.result 2012-07-15 04:19:07.782936394 +0400 -+++ suite/storage_engine/check_table.reject 2012-07-15 16:21:16.734412773 +0400 +--- suite/storage_engine/check_table.result ++++ suite/storage_engine/check_table.reject @@ -18,7 +18,7 @@ INSERT INTO t1 (a,b) VALUES (6,'f'); CHECK TABLE t1 FAST; diff --git a/storage/myisam/mysql-test/storage_engine/foreign_keys.rdiff b/storage/myisam/mysql-test/storage_engine/foreign_keys.rdiff index cf24f2c3e61..65d11557c86 100644 --- a/storage/myisam/mysql-test/storage_engine/foreign_keys.rdiff +++ b/storage/myisam/mysql-test/storage_engine/foreign_keys.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/foreign_keys.result 2012-07-12 18:56:19.782678645 +0400 -+++ suite/storage_engine/foreign_keys.reject 2012-07-15 16:21:30.414240794 +0400 +--- suite/storage_engine/foreign_keys.result ++++ suite/storage_engine/foreign_keys.reject @@ -12,29 +12,57 @@ t2 CREATE TABLE `t2` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisam/mysql-test/storage_engine/index_type_hash.rdiff b/storage/myisam/mysql-test/storage_engine/index_type_hash.rdiff index e7fa0013fa9..665b45c0274 100644 --- a/storage/myisam/mysql-test/storage_engine/index_type_hash.rdiff +++ b/storage/myisam/mysql-test/storage_engine/index_type_hash.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/index_type_hash.result 2012-07-15 01:10:17.919128889 +0400 -+++ suite/storage_engine/index_type_hash.reject 2012-07-15 16:21:32.806210722 +0400 +--- suite/storage_engine/index_type_hash.result ++++ suite/storage_engine/index_type_hash.reject @@ -4,7 +4,7 @@ ) ENGINE= ; SHOW KEYS IN t1; diff --git a/storage/myisam/mysql-test/storage_engine/misc.rdiff b/storage/myisam/mysql-test/storage_engine/misc.rdiff index cdbad003217..0d2f085074f 100644 --- a/storage/myisam/mysql-test/storage_engine/misc.rdiff +++ b/storage/myisam/mysql-test/storage_engine/misc.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/misc.result 2018-02-23 03:01:49.673249912 +0200 -+++ suite/storage_engine/misc.reject 2018-02-23 03:02:05.669249564 +0200 +--- suite/storage_engine/misc.result ++++ suite/storage_engine/misc.reject @@ -28,6 +28,10 @@ SELECT TABLE_NAME, COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE ORDER BY TABLE_NAME; diff --git a/storage/myisam/mysql-test/storage_engine/show_engine.rdiff b/storage/myisam/mysql-test/storage_engine/show_engine.rdiff index 4e6624653ea..8918fdbee71 100644 --- a/storage/myisam/mysql-test/storage_engine/show_engine.rdiff +++ b/storage/myisam/mysql-test/storage_engine/show_engine.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/show_engine.result 2012-06-24 23:55:19.539380000 +0400 -+++ suite/storage_engine/show_engine.reject 2012-07-15 16:21:54.401939228 +0400 +--- suite/storage_engine/show_engine.result ++++ suite/storage_engine/show_engine.reject @@ -4,7 +4,6 @@ # volatile data (timestamps, memory info, etc.) SHOW ENGINE STATUS; diff --git a/storage/myisam/mysql-test/storage_engine/tbl_opt_insert_method.rdiff b/storage/myisam/mysql-test/storage_engine/tbl_opt_insert_method.rdiff index a8df852515a..d94836573a8 100644 --- a/storage/myisam/mysql-test/storage_engine/tbl_opt_insert_method.rdiff +++ b/storage/myisam/mysql-test/storage_engine/tbl_opt_insert_method.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/tbl_opt_insert_method.result 2012-06-24 23:55:19.539380000 +0400 -+++ suite/storage_engine/tbl_opt_insert_method.reject 2012-07-15 16:21:56.381914337 +0400 +--- suite/storage_engine/tbl_opt_insert_method.result ++++ suite/storage_engine/tbl_opt_insert_method.reject @@ -5,7 +5,7 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisam/mysql-test/storage_engine/tbl_opt_union.rdiff b/storage/myisam/mysql-test/storage_engine/tbl_opt_union.rdiff index 4fa164523db..bf30d718c56 100644 --- a/storage/myisam/mysql-test/storage_engine/tbl_opt_union.rdiff +++ b/storage/myisam/mysql-test/storage_engine/tbl_opt_union.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/tbl_opt_union.result 2012-06-24 23:55:19.539380000 +0400 -+++ suite/storage_engine/tbl_opt_union.reject 2012-07-15 16:21:58.121892463 +0400 +--- suite/storage_engine/tbl_opt_union.result ++++ suite/storage_engine/tbl_opt_union.reject @@ -4,11 +4,11 @@ Table Create Table t1 CREATE TABLE `t1` ( diff --git a/storage/myisam/mysql-test/storage_engine/trx/cons_snapshot_repeatable_read.rdiff b/storage/myisam/mysql-test/storage_engine/trx/cons_snapshot_repeatable_read.rdiff index b460b5b4763..8791d9795fe 100644 --- a/storage/myisam/mysql-test/storage_engine/trx/cons_snapshot_repeatable_read.rdiff +++ b/storage/myisam/mysql-test/storage_engine/trx/cons_snapshot_repeatable_read.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/trx/cons_snapshot_repeatable_read.result 2013-01-22 22:05:05.246633000 +0400 -+++ suite/storage_engine/trx/cons_snapshot_repeatable_read.reject 2013-01-23 02:44:05.336711176 +0400 +--- suite/storage_engine/trx/cons_snapshot_repeatable_read.result ++++ suite/storage_engine/trx/cons_snapshot_repeatable_read.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MyISAM does not support transactions. diff --git a/storage/myisam/mysql-test/storage_engine/trx/cons_snapshot_serializable.rdiff b/storage/myisam/mysql-test/storage_engine/trx/cons_snapshot_serializable.rdiff index d5f1a03084e..f8c7f93b134 100644 --- a/storage/myisam/mysql-test/storage_engine/trx/cons_snapshot_serializable.rdiff +++ b/storage/myisam/mysql-test/storage_engine/trx/cons_snapshot_serializable.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/trx/cons_snapshot_serializable.result 2013-01-22 22:05:05.246633000 +0400 -+++ suite/storage_engine/trx/cons_snapshot_serializable.reject 2013-01-23 02:44:05.928703734 +0400 +--- suite/storage_engine/trx/cons_snapshot_serializable.result ++++ suite/storage_engine/trx/cons_snapshot_serializable.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MyISAM does not support transactions. diff --git a/storage/myisam/mysql-test/storage_engine/trx/delete.rdiff b/storage/myisam/mysql-test/storage_engine/trx/delete.rdiff index d7111ab28fc..83b2e3d5f64 100644 --- a/storage/myisam/mysql-test/storage_engine/trx/delete.rdiff +++ b/storage/myisam/mysql-test/storage_engine/trx/delete.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/trx/delete.result 2012-07-12 23:06:18.946113626 +0400 -+++ suite/storage_engine/trx/delete.reject 2012-07-15 16:55:46.108397219 +0400 +--- suite/storage_engine/trx/delete.result ++++ suite/storage_engine/trx/delete.reject @@ -1,3 +1,15 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MyISAM does not support transactions. diff --git a/storage/myisam/mysql-test/storage_engine/trx/insert.rdiff b/storage/myisam/mysql-test/storage_engine/trx/insert.rdiff index cee69633860..1fa1e8a2652 100644 --- a/storage/myisam/mysql-test/storage_engine/trx/insert.rdiff +++ b/storage/myisam/mysql-test/storage_engine/trx/insert.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/trx/insert.result 2012-07-12 23:09:44.663527407 +0400 -+++ suite/storage_engine/trx/insert.reject 2012-07-15 16:55:46.676390078 +0400 +--- suite/storage_engine/trx/insert.result ++++ suite/storage_engine/trx/insert.reject @@ -1,3 +1,15 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MyISAM does not support transactions. diff --git a/storage/myisam/mysql-test/storage_engine/trx/level_read_committed.rdiff b/storage/myisam/mysql-test/storage_engine/trx/level_read_committed.rdiff index 94e3fc83e1e..54528c7c872 100644 --- a/storage/myisam/mysql-test/storage_engine/trx/level_read_committed.rdiff +++ b/storage/myisam/mysql-test/storage_engine/trx/level_read_committed.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/trx/level_read_committed.result 2013-01-22 22:05:05.246633000 +0400 -+++ suite/storage_engine/trx/level_read_committed.reject 2013-01-23 02:44:06.572695636 +0400 +--- suite/storage_engine/trx/level_read_committed.result ++++ suite/storage_engine/trx/level_read_committed.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MyISAM does not support transactions. diff --git a/storage/myisam/mysql-test/storage_engine/trx/level_read_uncommitted.rdiff b/storage/myisam/mysql-test/storage_engine/trx/level_read_uncommitted.rdiff index 91a2786cb68..618d6b32a75 100644 --- a/storage/myisam/mysql-test/storage_engine/trx/level_read_uncommitted.rdiff +++ b/storage/myisam/mysql-test/storage_engine/trx/level_read_uncommitted.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/trx/level_read_uncommitted.result 2013-01-22 22:05:05.246633000 +0400 -+++ suite/storage_engine/trx/level_read_uncommitted.reject 2013-01-23 02:44:07.196687792 +0400 +--- suite/storage_engine/trx/level_read_uncommitted.result ++++ suite/storage_engine/trx/level_read_uncommitted.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MyISAM does not support transactions. diff --git a/storage/myisam/mysql-test/storage_engine/trx/level_repeatable_read.rdiff b/storage/myisam/mysql-test/storage_engine/trx/level_repeatable_read.rdiff index 2c265900004..6e1ce736413 100644 --- a/storage/myisam/mysql-test/storage_engine/trx/level_repeatable_read.rdiff +++ b/storage/myisam/mysql-test/storage_engine/trx/level_repeatable_read.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/trx/level_repeatable_read.result 2013-01-22 22:05:05.246633000 +0400 -+++ suite/storage_engine/trx/level_repeatable_read.reject 2013-01-23 02:44:07.776680499 +0400 +--- suite/storage_engine/trx/level_repeatable_read.result ++++ suite/storage_engine/trx/level_repeatable_read.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MyISAM does not support transactions. diff --git a/storage/myisam/mysql-test/storage_engine/trx/level_serializable.rdiff b/storage/myisam/mysql-test/storage_engine/trx/level_serializable.rdiff index 7955036e000..b69a809bf97 100644 --- a/storage/myisam/mysql-test/storage_engine/trx/level_serializable.rdiff +++ b/storage/myisam/mysql-test/storage_engine/trx/level_serializable.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/trx/level_serializable.result 2013-01-22 22:05:05.246633000 +0400 -+++ suite/storage_engine/trx/level_serializable.reject 2013-01-23 02:44:08.384672856 +0400 +--- suite/storage_engine/trx/level_serializable.result ++++ suite/storage_engine/trx/level_serializable.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MyISAM does not support transactions. diff --git a/storage/myisam/mysql-test/storage_engine/trx/select_for_update.rdiff b/storage/myisam/mysql-test/storage_engine/trx/select_for_update.rdiff index 044ce56da43..2d5e718691d 100644 --- a/storage/myisam/mysql-test/storage_engine/trx/select_for_update.rdiff +++ b/storage/myisam/mysql-test/storage_engine/trx/select_for_update.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/trx/select_for_update.result 2012-07-13 01:26:07.612653808 +0400 -+++ suite/storage_engine/trx/select_for_update.reject 2012-07-15 16:55:49.784351006 +0400 +--- suite/storage_engine/trx/select_for_update.result ++++ suite/storage_engine/trx/select_for_update.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MyISAM does not support transactions. diff --git a/storage/myisam/mysql-test/storage_engine/trx/select_lock_in_share_mode.rdiff b/storage/myisam/mysql-test/storage_engine/trx/select_lock_in_share_mode.rdiff index e1e8d3050e7..5600b41ad57 100644 --- a/storage/myisam/mysql-test/storage_engine/trx/select_lock_in_share_mode.rdiff +++ b/storage/myisam/mysql-test/storage_engine/trx/select_lock_in_share_mode.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/trx/select_lock_in_share_mode.result 2012-07-13 01:30:17.505512229 +0400 -+++ suite/storage_engine/trx/select_lock_in_share_mode.reject 2012-07-15 16:55:50.444342708 +0400 +--- suite/storage_engine/trx/select_lock_in_share_mode.result ++++ suite/storage_engine/trx/select_lock_in_share_mode.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MyISAM does not support transactions. diff --git a/storage/myisam/mysql-test/storage_engine/trx/update.rdiff b/storage/myisam/mysql-test/storage_engine/trx/update.rdiff index ca3b77e7cec..b5e5f3491c1 100644 --- a/storage/myisam/mysql-test/storage_engine/trx/update.rdiff +++ b/storage/myisam/mysql-test/storage_engine/trx/update.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/trx/update.result 2012-07-13 01:43:50.355293322 +0400 -+++ suite/storage_engine/trx/update.reject 2012-07-15 16:55:51.016335518 +0400 +--- suite/storage_engine/trx/update.result ++++ suite/storage_engine/trx/update.reject @@ -1,3 +1,15 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MyISAM does not support transactions. diff --git a/storage/myisam/mysql-test/storage_engine/trx/xa.rdiff b/storage/myisam/mysql-test/storage_engine/trx/xa.rdiff index 73c3796b13b..4f06ba899e4 100644 --- a/storage/myisam/mysql-test/storage_engine/trx/xa.rdiff +++ b/storage/myisam/mysql-test/storage_engine/trx/xa.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/trx/xa.result 2012-07-13 01:47:00.788899248 +0400 -+++ suite/storage_engine/trx/xa.reject 2012-07-15 16:55:51.604328125 +0400 +--- suite/storage_engine/trx/xa.result ++++ suite/storage_engine/trx/xa.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MyISAM does not support XA. diff --git a/storage/myisam/mysql-test/storage_engine/trx/xa_recovery.rdiff b/storage/myisam/mysql-test/storage_engine/trx/xa_recovery.rdiff index 4b057019bbd..a2b7e0dab29 100644 --- a/storage/myisam/mysql-test/storage_engine/trx/xa_recovery.rdiff +++ b/storage/myisam/mysql-test/storage_engine/trx/xa_recovery.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/trx/xa_recovery.result 2012-07-13 01:48:46.859565758 +0400 -+++ suite/storage_engine/trx/xa_recovery.reject 2012-07-15 16:55:53.740301272 +0400 +--- suite/storage_engine/trx/xa_recovery.result ++++ suite/storage_engine/trx/xa_recovery.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MyISAM does not support XA. diff --git a/storage/myisammrg/mysql-test/storage_engine/alter_table.rdiff b/storage/myisammrg/mysql-test/storage_engine/alter_table.rdiff index b2ec2129d04..bd1a78fbcc0 100644 --- a/storage/myisammrg/mysql-test/storage_engine/alter_table.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/alter_table.rdiff @@ -1,5 +1,5 @@ ---- alter_table.result 2013-01-22 22:05:05.246633000 +0400 -+++ alter_table.reject 2013-01-23 02:50:10.652118538 +0400 +--- alter_table.result ++++ alter_table.reject @@ -8,7 +8,7 @@ `a` int(11) DEFAULT NULL, `c` char(8) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/alter_table_online.rdiff b/storage/myisammrg/mysql-test/storage_engine/alter_table_online.rdiff index 857854a6115..51779d4bbee 100644 --- a/storage/myisammrg/mysql-test/storage_engine/alter_table_online.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/alter_table_online.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/alter_table_online.result 2014-11-12 05:27:00.000000000 +0400 -+++ suite/storage_engine/alter_table_online.reject 2014-12-05 20:42:25.000000000 +0400 +--- suite/storage_engine/alter_table_online.result ++++ suite/storage_engine/alter_table_online.reject @@ -2,8 +2,35 @@ CREATE TABLE t1 (a , b , c ) ENGINE= ; INSERT INTO t1 (a,b,c) VALUES (1,100,'a'),(2,200,'b'),(3,300,'c'); diff --git a/storage/myisammrg/mysql-test/storage_engine/alter_tablespace.rdiff b/storage/myisammrg/mysql-test/storage_engine/alter_tablespace.rdiff index e5462f8cb1f..5d51ece13bd 100644 --- a/storage/myisammrg/mysql-test/storage_engine/alter_tablespace.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/alter_tablespace.rdiff @@ -1,5 +1,5 @@ ---- alter_tablespace.result 2013-01-22 22:05:05.246633000 +0400 -+++ alter_tablespace.reject 2013-01-23 02:50:11.288110543 +0400 +--- alter_tablespace.result ++++ alter_tablespace.reject @@ -1,21 +1,14 @@ DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 (a ) ENGINE= ; diff --git a/storage/myisammrg/mysql-test/storage_engine/analyze_table.rdiff b/storage/myisammrg/mysql-test/storage_engine/analyze_table.rdiff index 9854a986cc5..ffe16e16e06 100644 --- a/storage/myisammrg/mysql-test/storage_engine/analyze_table.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/analyze_table.rdiff @@ -1,5 +1,5 @@ ---- analyze_table.result 2013-01-22 22:05:05.246633000 +0400 -+++ analyze_table.reject 2013-01-23 02:50:11.912102699 +0400 +--- analyze_table.result ++++ analyze_table.reject @@ -5,25 +5,25 @@ INSERT INTO t1 (a,b) VALUES (3,'c'); ANALYZE TABLE t1; diff --git a/storage/myisammrg/mysql-test/storage_engine/autoincrement.rdiff b/storage/myisammrg/mysql-test/storage_engine/autoincrement.rdiff index cc04b800793..8ad8c70d10f 100644 --- a/storage/myisammrg/mysql-test/storage_engine/autoincrement.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/autoincrement.rdiff @@ -1,5 +1,5 @@ ---- autoincrement.result 2013-01-22 22:05:05.246633000 +0400 -+++ autoincrement.reject 2013-01-23 02:50:12.848090932 +0400 +--- autoincrement.result ++++ autoincrement.reject @@ -6,7 +6,7 @@ `a` int(11) NOT NULL AUTO_INCREMENT, `b` char(8) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/cache_index.rdiff b/storage/myisammrg/mysql-test/storage_engine/cache_index.rdiff index 612c8d38311..2606c7e5cca 100644 --- a/storage/myisammrg/mysql-test/storage_engine/cache_index.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/cache_index.rdiff @@ -1,5 +1,5 @@ ---- cache_index.result 2013-01-22 22:05:05.246633000 +0400 -+++ cache_index.reject 2013-01-23 02:50:13.468083137 +0400 +--- cache_index.result ++++ cache_index.reject @@ -12,31 +12,31 @@ SET GLOBAL .key_buffer_size=128*1024; CACHE INDEX t1 INDEX (a), t2 IN ; diff --git a/storage/myisammrg/mysql-test/storage_engine/checksum_table_live.rdiff b/storage/myisammrg/mysql-test/storage_engine/checksum_table_live.rdiff index f09aec971a9..8e1daa9f6a7 100644 --- a/storage/myisammrg/mysql-test/storage_engine/checksum_table_live.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/checksum_table_live.rdiff @@ -1,5 +1,5 @@ ---- checksum_table_live.result 2013-01-22 22:05:05.246633000 +0400 -+++ checksum_table_live.reject 2013-01-23 02:50:14.440070917 +0400 +--- checksum_table_live.result ++++ checksum_table_live.reject @@ -11,8 +11,8 @@ test.t1 4272806499 CHECKSUM TABLE t1, t2 QUICK; diff --git a/storage/myisammrg/mysql-test/storage_engine/create_table.rdiff b/storage/myisammrg/mysql-test/storage_engine/create_table.rdiff index ad6352d3e7b..f90406e9dff 100644 --- a/storage/myisammrg/mysql-test/storage_engine/create_table.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/create_table.rdiff @@ -1,5 +1,5 @@ ---- create_table.result 2013-01-22 22:05:05.246633000 +0400 -+++ create_table.reject 2013-01-23 02:50:19.544006752 +0400 +--- create_table.result ++++ create_table.reject @@ -4,7 +4,7 @@ Table Create Table t1 CREATE TABLE `t1` ( diff --git a/storage/myisammrg/mysql-test/storage_engine/foreign_keys.rdiff b/storage/myisammrg/mysql-test/storage_engine/foreign_keys.rdiff index fc07ebc0e94..4af98e0d3b4 100644 --- a/storage/myisammrg/mysql-test/storage_engine/foreign_keys.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/foreign_keys.rdiff @@ -1,5 +1,5 @@ ---- foreign_keys.result 2013-01-22 22:05:05.246633000 +0400 -+++ foreign_keys.reject 2013-01-23 02:50:28.187898084 +0400 +--- foreign_keys.result ++++ foreign_keys.reject @@ -12,29 +12,57 @@ t2 CREATE TABLE `t2` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/fulltext_search.rdiff b/storage/myisammrg/mysql-test/storage_engine/fulltext_search.rdiff index c96b697167c..7c63cc87df9 100644 --- a/storage/myisammrg/mysql-test/storage_engine/fulltext_search.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/fulltext_search.rdiff @@ -1,5 +1,5 @@ ---- fulltext_search.result 2013-01-22 22:05:05.246633000 +0400 -+++ fulltext_search.reject 2013-01-23 02:50:28.807890289 +0400 +--- fulltext_search.result ++++ fulltext_search.reject @@ -4,129 +4,27 @@ v2 TEXT , FULLTEXT v1 (v1) diff --git a/storage/myisammrg/mysql-test/storage_engine/handler.rdiff b/storage/myisammrg/mysql-test/storage_engine/handler.rdiff index 9e9117e04fc..a8fdce842e4 100644 --- a/storage/myisammrg/mysql-test/storage_engine/handler.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/handler.rdiff @@ -1,5 +1,5 @@ ---- handler.result 2013-01-22 22:05:05.246633000 +0400 -+++ handler.reject 2013-01-23 02:50:29.411882697 +0400 +--- handler.result ++++ handler.reject @@ -2,76 +2,19 @@ CREATE TABLE t1 (a , b ) ENGINE= ; INSERT INTO t1 (a,b) VALUES ('foobar',1000),('a',1),('bar',200),('foo',100); diff --git a/storage/myisammrg/mysql-test/storage_engine/index.rdiff b/storage/myisammrg/mysql-test/storage_engine/index.rdiff index bf6806979ec..f797a6f628c 100644 --- a/storage/myisammrg/mysql-test/storage_engine/index.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/index.rdiff @@ -1,5 +1,5 @@ ---- index.result 2013-01-22 22:05:05.246633000 +0400 -+++ index.reject 2013-01-23 02:50:30.111873897 +0400 +--- index.result ++++ index.reject @@ -61,7 +61,5 @@ ALTER TABLE t1 DROP INDEX a; INSERT INTO t1 (a,b) VALUES (1,'c'); diff --git a/storage/myisammrg/mysql-test/storage_engine/index_enable_disable.rdiff b/storage/myisammrg/mysql-test/storage_engine/index_enable_disable.rdiff index 357d4e931d2..8a4d47fa4ad 100644 --- a/storage/myisammrg/mysql-test/storage_engine/index_enable_disable.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/index_enable_disable.rdiff @@ -1,5 +1,5 @@ ---- index_enable_disable.result 2013-01-22 22:05:05.246633000 +0400 -+++ index_enable_disable.reject 2013-01-23 02:50:30.723866202 +0400 +--- index_enable_disable.result ++++ index_enable_disable.reject @@ -11,15 +11,19 @@ Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment t1 1 a 1 a # # NULL NULL YES BTREE diff --git a/storage/myisammrg/mysql-test/storage_engine/index_type_btree.rdiff b/storage/myisammrg/mysql-test/storage_engine/index_type_btree.rdiff index 1874b0d5891..46958642019 100644 --- a/storage/myisammrg/mysql-test/storage_engine/index_type_btree.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/index_type_btree.rdiff @@ -1,5 +1,5 @@ ---- index_type_btree.result 2013-01-22 22:05:05.246633000 +0400 -+++ index_type_btree.reject 2013-01-23 02:50:31.963850614 +0400 +--- index_type_btree.result ++++ index_type_btree.reject @@ -61,7 +61,5 @@ ALTER TABLE t1 DROP INDEX a; INSERT INTO t1 (a,b) VALUES (1,'c'); diff --git a/storage/myisammrg/mysql-test/storage_engine/index_type_hash.rdiff b/storage/myisammrg/mysql-test/storage_engine/index_type_hash.rdiff index f6fd1e391aa..c3d6108f9f4 100644 --- a/storage/myisammrg/mysql-test/storage_engine/index_type_hash.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/index_type_hash.rdiff @@ -1,5 +1,5 @@ ---- index_type_hash.result 2013-01-22 22:05:05.246633000 +0400 -+++ index_type_hash.reject 2013-01-23 02:50:32.647842015 +0400 +--- index_type_hash.result ++++ index_type_hash.reject @@ -4,7 +4,7 @@ ) ENGINE= ; SHOW KEYS IN t1; diff --git a/storage/myisammrg/mysql-test/storage_engine/insert_delayed.rdiff b/storage/myisammrg/mysql-test/storage_engine/insert_delayed.rdiff index 24ffa2ab82f..1fe06b5004e 100644 --- a/storage/myisammrg/mysql-test/storage_engine/insert_delayed.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/insert_delayed.rdiff @@ -1,5 +1,5 @@ ---- insert_delayed.result 2013-01-23 01:23:49.461254916 +0400 -+++ insert_delayed.reject 2013-01-23 02:50:34.475819034 +0400 +--- insert_delayed.result ++++ insert_delayed.reject @@ -5,7 +5,16 @@ connect con0,localhost,root,,; SET lock_wait_timeout = 1; diff --git a/storage/myisammrg/mysql-test/storage_engine/lock.rdiff b/storage/myisammrg/mysql-test/storage_engine/lock.rdiff index f6bb75409d3..8aa52943d08 100644 --- a/storage/myisammrg/mysql-test/storage_engine/lock.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/lock.rdiff @@ -1,5 +1,5 @@ ---- lock.result 2013-01-23 01:24:01.797100027 +0400 -+++ lock.reject 2013-01-23 02:50:53.291582487 +0400 +--- lock.result ++++ lock.reject @@ -42,34 +42,67 @@ UPDATE t1 SET id=1 WHERE id=-1; DROP TABLE t1,t2; diff --git a/storage/myisammrg/mysql-test/storage_engine/misc.rdiff b/storage/myisammrg/mysql-test/storage_engine/misc.rdiff index cdbad003217..0d2f085074f 100644 --- a/storage/myisammrg/mysql-test/storage_engine/misc.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/misc.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/misc.result 2018-02-23 03:01:49.673249912 +0200 -+++ suite/storage_engine/misc.reject 2018-02-23 03:02:05.669249564 +0200 +--- suite/storage_engine/misc.result ++++ suite/storage_engine/misc.reject @@ -28,6 +28,10 @@ SELECT TABLE_NAME, COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE ORDER BY TABLE_NAME; diff --git a/storage/myisammrg/mysql-test/storage_engine/optimize_table.rdiff b/storage/myisammrg/mysql-test/storage_engine/optimize_table.rdiff index 1b611adf25a..0ef657a2d16 100644 --- a/storage/myisammrg/mysql-test/storage_engine/optimize_table.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/optimize_table.rdiff @@ -1,5 +1,5 @@ ---- optimize_table.result 2013-01-22 22:05:05.246633000 +0400 -+++ optimize_table.reject 2013-01-23 02:50:54.339569313 +0400 +--- optimize_table.result ++++ optimize_table.reject @@ -5,25 +5,25 @@ INSERT INTO t1 (a,b) VALUES (3,'c'),(4,'d'); OPTIMIZE TABLE t1; diff --git a/storage/myisammrg/mysql-test/storage_engine/parts/alter_table.rdiff b/storage/myisammrg/mysql-test/storage_engine/parts/alter_table.rdiff index 4c7ba7d8232..13881adcefb 100644 --- a/storage/myisammrg/mysql-test/storage_engine/parts/alter_table.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/parts/alter_table.rdiff @@ -1,5 +1,5 @@ ---- alter_table.result 2013-01-22 22:05:05.246633000 +0400 -+++ alter_table.reject 2013-01-23 03:16:22.620356221 +0400 +--- alter_table.result ++++ alter_table.reject @@ -1,42 +1,29 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a ) ENGINE= PARTITION BY HASH(a) PARTITIONS 2; diff --git a/storage/myisammrg/mysql-test/storage_engine/parts/analyze_table.rdiff b/storage/myisammrg/mysql-test/storage_engine/parts/analyze_table.rdiff index 7163aaefc53..5e25afb83ea 100644 --- a/storage/myisammrg/mysql-test/storage_engine/parts/analyze_table.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/parts/analyze_table.rdiff @@ -1,5 +1,5 @@ ---- analyze_table.result 2013-01-22 22:05:05.246633000 +0400 -+++ analyze_table.reject 2013-01-23 03:16:23.240348427 +0400 +--- analyze_table.result ++++ analyze_table.reject @@ -1,47 +1,62 @@ DROP TABLE IF EXISTS t1,t2; CREATE TABLE t1 (a , b ) ENGINE= PARTITION BY HASH(a) PARTITIONS 2; diff --git a/storage/myisammrg/mysql-test/storage_engine/parts/check_table.rdiff b/storage/myisammrg/mysql-test/storage_engine/parts/check_table.rdiff index 5f7b7c75713..8f55bb5e12d 100644 --- a/storage/myisammrg/mysql-test/storage_engine/parts/check_table.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/parts/check_table.rdiff @@ -1,5 +1,5 @@ ---- check_table.result 2013-01-22 22:05:05.246633000 +0400 -+++ check_table.reject 2013-01-23 03:16:23.872340482 +0400 +--- check_table.result ++++ check_table.reject @@ -1,104 +1,122 @@ DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 (a , b ) ENGINE= PARTITION BY HASH(a) PARTITIONS 2; diff --git a/storage/myisammrg/mysql-test/storage_engine/parts/checksum_table.rdiff b/storage/myisammrg/mysql-test/storage_engine/parts/checksum_table.rdiff index 6d01f0564f2..5be01fc6d3d 100644 --- a/storage/myisammrg/mysql-test/storage_engine/parts/checksum_table.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/parts/checksum_table.rdiff @@ -1,5 +1,5 @@ ---- checksum_table.result 2013-01-22 22:05:05.246633000 +0400 -+++ checksum_table.reject 2013-01-23 03:16:24.496332636 +0400 +--- checksum_table.result ++++ checksum_table.reject @@ -1,40 +1,74 @@ DROP TABLE IF EXISTS t1,t2; CREATE TABLE t1 (a , b ) ENGINE= CHECKSUM=0 PARTITION BY HASH(a) PARTITIONS 2; diff --git a/storage/myisammrg/mysql-test/storage_engine/parts/create_table.rdiff b/storage/myisammrg/mysql-test/storage_engine/parts/create_table.rdiff index d6aa75f1c44..bc814a9b100 100644 --- a/storage/myisammrg/mysql-test/storage_engine/parts/create_table.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/parts/create_table.rdiff @@ -1,5 +1,5 @@ ---- create_table.result 2013-01-22 22:05:05.246633000 +0400 -+++ create_table.reject 2013-01-23 03:16:25.160324290 +0400 +--- create_table.result ++++ create_table.reject @@ -1,91 +1,79 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a ) ENGINE= PARTITION BY HASH(a) PARTITIONS 2; diff --git a/storage/myisammrg/mysql-test/storage_engine/parts/optimize_table.rdiff b/storage/myisammrg/mysql-test/storage_engine/parts/optimize_table.rdiff index 2e2a1fecb8f..e6e646212bc 100644 --- a/storage/myisammrg/mysql-test/storage_engine/parts/optimize_table.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/parts/optimize_table.rdiff @@ -1,5 +1,5 @@ ---- optimize_table.result 2013-01-22 22:05:05.246633000 +0400 -+++ optimize_table.reject 2013-01-23 03:16:25.780316495 +0400 +--- optimize_table.result ++++ optimize_table.reject @@ -1,54 +1,62 @@ DROP TABLE IF EXISTS t1,t2; CREATE TABLE t1 (a , b ) ENGINE= PARTITION BY HASH(a) PARTITIONS 2; diff --git a/storage/myisammrg/mysql-test/storage_engine/parts/repair_table.rdiff b/storage/myisammrg/mysql-test/storage_engine/parts/repair_table.rdiff index eddb6872ec3..4e7f0ab2fed 100644 --- a/storage/myisammrg/mysql-test/storage_engine/parts/repair_table.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/parts/repair_table.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/parts/repair_table.result 2017-08-28 19:29:20.491633306 +0300 -+++ suite/storage_engine/parts/repair_table.reject 2017-08-28 19:34:41.723633059 +0300 +--- suite/storage_engine/parts/repair_table.result ++++ suite/storage_engine/parts/repair_table.reject @@ -1,232 +1,116 @@ call mtr.add_suppression("Table '.*t1.*' is marked as crashed and should be repaired"); DROP TABLE IF EXISTS t1, t2; diff --git a/storage/myisammrg/mysql-test/storage_engine/parts/truncate_table.rdiff b/storage/myisammrg/mysql-test/storage_engine/parts/truncate_table.rdiff index 9ba985f7adc..cec7083f4ff 100644 --- a/storage/myisammrg/mysql-test/storage_engine/parts/truncate_table.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/parts/truncate_table.rdiff @@ -1,5 +1,5 @@ ---- truncate_table.result 2013-01-22 22:05:05.246633000 +0400 -+++ truncate_table.reject 2013-01-23 03:16:27.076300201 +0400 +--- truncate_table.result ++++ truncate_table.reject @@ -1,68 +1,34 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a , b ) ENGINE= PARTITION BY HASH(a) PARTITIONS 2; diff --git a/storage/myisammrg/mysql-test/storage_engine/repair_table.rdiff b/storage/myisammrg/mysql-test/storage_engine/repair_table.rdiff index d6c46b8c5b8..db5b8566b5d 100644 --- a/storage/myisammrg/mysql-test/storage_engine/repair_table.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/repair_table.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/repair_table.result 2017-05-24 01:09:07.274213486 +0300 -+++ suite/storage_engine/repair_table.reject 2017-05-24 01:10:25.466214949 +0300 +--- suite/storage_engine/repair_table.result ++++ suite/storage_engine/repair_table.reject @@ -4,56 +4,50 @@ CREATE TABLE t2 (a , b ) ENGINE= ; REPAIR TABLE t1; diff --git a/storage/myisammrg/mysql-test/storage_engine/show_engine.rdiff b/storage/myisammrg/mysql-test/storage_engine/show_engine.rdiff index e78e6fdad53..3c7332e1330 100644 --- a/storage/myisammrg/mysql-test/storage_engine/show_engine.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/show_engine.rdiff @@ -1,5 +1,5 @@ ---- show_engine.result 2013-01-22 22:05:05.246633000 +0400 -+++ show_engine.reject 2013-01-23 02:50:56.871537482 +0400 +--- show_engine.result ++++ show_engine.reject @@ -4,7 +4,6 @@ # volatile data (timestamps, memory info, etc.) SHOW ENGINE STATUS; diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_ai.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_ai.rdiff index 4de7e81ffba..809bce6c3f3 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_ai.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_ai.rdiff @@ -1,5 +1,5 @@ ---- tbl_opt_ai.result 2013-01-22 22:05:05.246633000 +0400 -+++ tbl_opt_ai.reject 2013-01-23 02:50:57.547528984 +0400 +--- tbl_opt_ai.result ++++ tbl_opt_ai.reject @@ -4,11 +4,11 @@ Table Create Table t1 CREATE TABLE `t1` ( diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_avg_row_length.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_avg_row_length.rdiff index 2632fabf89d..91b72a901c1 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_avg_row_length.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_avg_row_length.rdiff @@ -1,5 +1,5 @@ ---- tbl_opt_avg_row_length.result 2013-01-22 22:05:05.246633000 +0400 -+++ tbl_opt_avg_row_length.reject 2013-01-23 02:50:58.123521742 +0400 +--- tbl_opt_avg_row_length.result ++++ tbl_opt_avg_row_length.reject @@ -5,12 +5,12 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_checksum.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_checksum.rdiff index baad32dd4db..a471a1ce388 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_checksum.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_checksum.rdiff @@ -1,5 +1,5 @@ ---- tbl_opt_checksum.result 2013-01-22 22:05:05.246633000 +0400 -+++ tbl_opt_checksum.reject 2013-01-23 02:50:58.739513998 +0400 +--- tbl_opt_checksum.result ++++ tbl_opt_checksum.reject @@ -5,12 +5,12 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_connection.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_connection.rdiff index 3dc06fb2704..b08d922bab6 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_connection.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_connection.rdiff @@ -1,5 +1,5 @@ ---- tbl_opt_connection.result 2013-01-22 22:05:05.246633000 +0400 -+++ tbl_opt_connection.reject 2013-01-23 02:50:59.335506506 +0400 +--- tbl_opt_connection.result ++++ tbl_opt_connection.reject @@ -10,14 +10,14 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_data_dir.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_data_dir.rdiff index 671e26ec617..f4b1c89ec0b 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_data_dir.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_data_dir.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/tbl_opt_data_dir.result 2017-05-24 00:21:15.550159778 +0300 -+++ ../storage/myisammrg/mysql-test/storage_engine/tbl_opt_data_dir.reject 2017-05-24 00:25:45.506164827 +0300 +--- suite/storage_engine/tbl_opt_data_dir.result ++++ ../storage/myisammrg/mysql-test/storage_engine/tbl_opt_data_dir.reject @@ -5,7 +5,7 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_delay_key_write.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_delay_key_write.rdiff index 2c2e40fa4b7..95e0ee1015d 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_delay_key_write.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_delay_key_write.rdiff @@ -1,5 +1,5 @@ ---- tbl_opt_delay_key_write.result 2013-01-22 22:05:05.246633000 +0400 -+++ tbl_opt_delay_key_write.reject 2013-01-23 02:51:00.591490716 +0400 +--- tbl_opt_delay_key_write.result ++++ tbl_opt_delay_key_write.reject @@ -5,12 +5,12 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_index_dir.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_index_dir.rdiff index ca025861f68..bd078ef7350 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_index_dir.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_index_dir.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/tbl_opt_index_dir.result 2017-05-24 00:21:15.550159778 +0300 -+++ ../storage/myisammrg/mysql-test/storage_engine/tbl_opt_index_dir.reject 2017-05-24 00:25:45.506164827 +0300 +--- suite/storage_engine/tbl_opt_index_dir.result ++++ ../storage/myisammrg/mysql-test/storage_engine/tbl_opt_index_dir.reject @@ -5,7 +5,7 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_insert_method.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_insert_method.rdiff index f5dc536c7ee..2de1e5d1ad4 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_insert_method.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_insert_method.rdiff @@ -1,5 +1,5 @@ ---- tbl_opt_insert_method.result 2013-01-22 22:05:05.246633000 +0400 -+++ tbl_opt_insert_method.reject 2013-01-23 02:51:01.211482922 +0400 +--- tbl_opt_insert_method.result ++++ tbl_opt_insert_method.reject @@ -5,12 +5,12 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_key_block_size.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_key_block_size.rdiff index be90252f0b9..09370d12146 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_key_block_size.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_key_block_size.rdiff @@ -1,5 +1,5 @@ ---- tbl_opt_key_block_size.result 2013-01-22 22:05:05.246633000 +0400 -+++ tbl_opt_key_block_size.reject 2013-01-23 02:51:01.787475681 +0400 +--- tbl_opt_key_block_size.result ++++ tbl_opt_key_block_size.reject @@ -5,12 +5,12 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_max_rows.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_max_rows.rdiff index 3eebf8cce9b..ae71f158a57 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_max_rows.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_max_rows.rdiff @@ -1,5 +1,5 @@ ---- tbl_opt_max_rows.result 2013-01-22 22:05:05.246633000 +0400 -+++ tbl_opt_max_rows.reject 2013-01-23 02:51:02.403467936 +0400 +--- tbl_opt_max_rows.result ++++ tbl_opt_max_rows.reject @@ -5,12 +5,12 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_min_rows.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_min_rows.rdiff index 48c7124ca36..805a6f7d4d1 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_min_rows.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_min_rows.rdiff @@ -1,5 +1,5 @@ ---- tbl_opt_min_rows.result 2013-01-22 22:05:05.246633000 +0400 -+++ tbl_opt_min_rows.reject 2013-01-23 02:51:02.983460644 +0400 +--- tbl_opt_min_rows.result ++++ tbl_opt_min_rows.reject @@ -5,12 +5,12 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_pack_keys.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_pack_keys.rdiff index ab16cbcb0dc..9318c4875f3 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_pack_keys.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_pack_keys.rdiff @@ -1,5 +1,5 @@ ---- tbl_opt_pack_keys.result 2013-01-22 22:05:05.246633000 +0400 -+++ tbl_opt_pack_keys.reject 2013-01-23 02:51:03.563453353 +0400 +--- tbl_opt_pack_keys.result ++++ tbl_opt_pack_keys.reject @@ -5,12 +5,12 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_password.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_password.rdiff index dc8303682db..6ba898f2cd6 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_password.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_password.rdiff @@ -1,5 +1,5 @@ ---- tbl_opt_password.result 2013-01-22 22:05:05.246633000 +0400 -+++ tbl_opt_password.reject 2013-01-23 02:51:04.155445910 +0400 +--- tbl_opt_password.result ++++ tbl_opt_password.reject @@ -5,12 +5,12 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_row_format.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_row_format.rdiff index 6c756e7b8e1..1d5e5e43796 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_row_format.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_row_format.rdiff @@ -1,5 +1,5 @@ ---- ../storage/myisammrg/mysql-test/storage_engine/tbl_opt_row_format.result~ 2017-05-24 00:50:44.254192857 +0300 -+++ ../storage/myisammrg/mysql-test/storage_engine/tbl_opt_row_format.reject 2017-05-24 00:50:44.334192859 +0300 +--- ../storage/myisammrg/mysql-test/storage_engine/tbl_opt_row_format.result~ ++++ ../storage/myisammrg/mysql-test/storage_engine/tbl_opt_row_format.reject @@ -5,26 +5,26 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_union.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_union.rdiff index e4e098a1b94..0a286b2863d 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_opt_union.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_opt_union.rdiff @@ -1,5 +1,5 @@ ---- tbl_opt_union.result 2013-01-22 22:05:05.246633000 +0400 -+++ tbl_opt_union.reject 2013-01-23 02:51:05.375430573 +0400 +--- tbl_opt_union.result ++++ tbl_opt_union.reject @@ -4,11 +4,11 @@ Table Create Table t1 CREATE TABLE `t1` ( diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_standard_opts.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_standard_opts.rdiff index a929b6df54b..3b238fc815c 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_standard_opts.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_standard_opts.rdiff @@ -1,5 +1,5 @@ ---- tbl_standard_opts.result 2013-01-22 22:05:05.246633000 +0400 -+++ tbl_standard_opts.reject 2013-01-23 02:51:05.991422829 +0400 +--- tbl_standard_opts.result ++++ tbl_standard_opts.reject @@ -8,14 +8,14 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/tbl_temporary.rdiff b/storage/myisammrg/mysql-test/storage_engine/tbl_temporary.rdiff index d2c7d4f2836..0b1882587e6 100644 --- a/storage/myisammrg/mysql-test/storage_engine/tbl_temporary.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/tbl_temporary.rdiff @@ -1,5 +1,5 @@ ---- tbl_temporary.result 2013-01-22 22:05:05.246633000 +0400 -+++ tbl_temporary.reject 2013-01-23 02:51:06.599415185 +0400 +--- tbl_temporary.result ++++ tbl_temporary.reject @@ -6,6 +6,6 @@ t1 CREATE TEMPORARY TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/myisammrg/mysql-test/storage_engine/truncate_table.rdiff b/storage/myisammrg/mysql-test/storage_engine/truncate_table.rdiff index e429bbdb177..0823239ecbe 100644 --- a/storage/myisammrg/mysql-test/storage_engine/truncate_table.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/truncate_table.rdiff @@ -1,5 +1,5 @@ ---- truncate_table.result 2013-01-22 22:05:05.246633000 +0400 -+++ truncate_table.reject 2013-01-23 02:51:07.507403770 +0400 +--- truncate_table.result ++++ truncate_table.reject @@ -9,19 +9,19 @@ CREATE TABLE t1 (a KEY AUTO_INCREMENT, c ) ENGINE= ; SHOW TABLE STATUS LIKE 't1'; diff --git a/storage/myisammrg/mysql-test/storage_engine/trx/cons_snapshot_repeatable_read.rdiff b/storage/myisammrg/mysql-test/storage_engine/trx/cons_snapshot_repeatable_read.rdiff index 94cfa74f384..45da1550e33 100644 --- a/storage/myisammrg/mysql-test/storage_engine/trx/cons_snapshot_repeatable_read.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/trx/cons_snapshot_repeatable_read.rdiff @@ -1,5 +1,5 @@ ---- cons_snapshot_repeatable_read.result 2013-01-22 22:05:05.246633000 +0400 -+++ cons_snapshot_repeatable_read.reject 2013-01-23 03:22:34.255684132 +0400 +--- cons_snapshot_repeatable_read.result ++++ cons_snapshot_repeatable_read.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MRG_MYISAM does not support transactions. diff --git a/storage/myisammrg/mysql-test/storage_engine/trx/cons_snapshot_serializable.rdiff b/storage/myisammrg/mysql-test/storage_engine/trx/cons_snapshot_serializable.rdiff index a9b9ba7f94b..df602ce2970 100644 --- a/storage/myisammrg/mysql-test/storage_engine/trx/cons_snapshot_serializable.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/trx/cons_snapshot_serializable.rdiff @@ -1,5 +1,5 @@ ---- cons_snapshot_serializable.result 2013-01-22 22:05:05.246633000 +0400 -+++ cons_snapshot_serializable.reject 2013-01-23 03:22:34.847676690 +0400 +--- cons_snapshot_serializable.result ++++ cons_snapshot_serializable.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MRG_MYISAM does not support transactions. diff --git a/storage/myisammrg/mysql-test/storage_engine/trx/delete.rdiff b/storage/myisammrg/mysql-test/storage_engine/trx/delete.rdiff index e4249478c76..8f7801f7b98 100644 --- a/storage/myisammrg/mysql-test/storage_engine/trx/delete.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/trx/delete.rdiff @@ -1,5 +1,5 @@ ---- delete.result 2013-01-22 22:05:05.246633000 +0400 -+++ delete.reject 2013-01-23 03:22:35.419669500 +0400 +--- delete.result ++++ delete.reject @@ -1,3 +1,15 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MRG_MYISAM does not support transactions. diff --git a/storage/myisammrg/mysql-test/storage_engine/trx/insert.rdiff b/storage/myisammrg/mysql-test/storage_engine/trx/insert.rdiff index d5e99b6d7dc..59c7c73e189 100644 --- a/storage/myisammrg/mysql-test/storage_engine/trx/insert.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/trx/insert.rdiff @@ -1,5 +1,5 @@ ---- insert.result 2013-01-22 22:05:05.246633000 +0400 -+++ insert.reject 2013-01-23 03:22:35.987662359 +0400 +--- insert.result ++++ insert.reject @@ -1,3 +1,15 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MRG_MYISAM does not support transactions. diff --git a/storage/myisammrg/mysql-test/storage_engine/trx/level_read_committed.rdiff b/storage/myisammrg/mysql-test/storage_engine/trx/level_read_committed.rdiff index 9e7c340c524..a0f9a74ece7 100644 --- a/storage/myisammrg/mysql-test/storage_engine/trx/level_read_committed.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/trx/level_read_committed.rdiff @@ -1,5 +1,5 @@ ---- level_read_committed.result 2013-01-22 22:05:05.246633000 +0400 -+++ level_read_committed.reject 2013-01-23 03:22:36.603654615 +0400 +--- level_read_committed.result ++++ level_read_committed.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MRG_MYISAM does not support transactions. diff --git a/storage/myisammrg/mysql-test/storage_engine/trx/level_read_uncommitted.rdiff b/storage/myisammrg/mysql-test/storage_engine/trx/level_read_uncommitted.rdiff index d44e4aa7a12..d2d6b261eef 100644 --- a/storage/myisammrg/mysql-test/storage_engine/trx/level_read_uncommitted.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/trx/level_read_uncommitted.rdiff @@ -1,5 +1,5 @@ ---- level_read_uncommitted.result 2013-01-22 22:05:05.246633000 +0400 -+++ level_read_uncommitted.reject 2013-01-23 03:22:37.263646318 +0400 +--- level_read_uncommitted.result ++++ level_read_uncommitted.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MRG_MYISAM does not support transactions. diff --git a/storage/myisammrg/mysql-test/storage_engine/trx/level_repeatable_read.rdiff b/storage/myisammrg/mysql-test/storage_engine/trx/level_repeatable_read.rdiff index b24376a9c28..e049c56f67c 100644 --- a/storage/myisammrg/mysql-test/storage_engine/trx/level_repeatable_read.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/trx/level_repeatable_read.rdiff @@ -1,5 +1,5 @@ ---- level_repeatable_read.result 2013-01-22 22:05:05.246633000 +0400 -+++ level_repeatable_read.reject 2013-01-23 03:22:37.867638724 +0400 +--- level_repeatable_read.result ++++ level_repeatable_read.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MRG_MYISAM does not support transactions. diff --git a/storage/myisammrg/mysql-test/storage_engine/trx/level_serializable.rdiff b/storage/myisammrg/mysql-test/storage_engine/trx/level_serializable.rdiff index 3567e718459..56953a3bf6d 100644 --- a/storage/myisammrg/mysql-test/storage_engine/trx/level_serializable.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/trx/level_serializable.rdiff @@ -1,5 +1,5 @@ ---- level_serializable.result 2013-01-22 22:05:05.246633000 +0400 -+++ level_serializable.reject 2013-01-23 03:22:38.471631132 +0400 +--- level_serializable.result ++++ level_serializable.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MRG_MYISAM does not support transactions. diff --git a/storage/myisammrg/mysql-test/storage_engine/trx/select_for_update.rdiff b/storage/myisammrg/mysql-test/storage_engine/trx/select_for_update.rdiff index bad014d87ed..a29686bc851 100644 --- a/storage/myisammrg/mysql-test/storage_engine/trx/select_for_update.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/trx/select_for_update.rdiff @@ -1,5 +1,5 @@ ---- select_for_update.result 2013-01-22 22:05:05.246633000 +0400 -+++ select_for_update.reject 2013-01-23 03:22:39.123622935 +0400 +--- select_for_update.result ++++ select_for_update.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MRG_MYISAM does not support transactions. diff --git a/storage/myisammrg/mysql-test/storage_engine/trx/select_lock_in_share_mode.rdiff b/storage/myisammrg/mysql-test/storage_engine/trx/select_lock_in_share_mode.rdiff index db3eec1bc24..2db37c985a4 100644 --- a/storage/myisammrg/mysql-test/storage_engine/trx/select_lock_in_share_mode.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/trx/select_lock_in_share_mode.rdiff @@ -1,5 +1,5 @@ ---- select_lock_in_share_mode.result 2013-01-22 22:05:05.246633000 +0400 -+++ select_lock_in_share_mode.reject 2013-01-23 03:22:39.739615191 +0400 +--- select_lock_in_share_mode.result ++++ select_lock_in_share_mode.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MRG_MYISAM does not support transactions. diff --git a/storage/myisammrg/mysql-test/storage_engine/trx/update.rdiff b/storage/myisammrg/mysql-test/storage_engine/trx/update.rdiff index baac054766b..b0a589c8fd1 100644 --- a/storage/myisammrg/mysql-test/storage_engine/trx/update.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/trx/update.rdiff @@ -1,5 +1,5 @@ ---- update.result 2013-01-22 22:05:05.246633000 +0400 -+++ update.reject 2013-01-23 03:22:40.355607446 +0400 +--- update.result ++++ update.reject @@ -1,3 +1,15 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MRG_MYISAM does not support transactions. diff --git a/storage/myisammrg/mysql-test/storage_engine/trx/xa.rdiff b/storage/myisammrg/mysql-test/storage_engine/trx/xa.rdiff index a491287337d..1f6e2b9e24f 100644 --- a/storage/myisammrg/mysql-test/storage_engine/trx/xa.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/trx/xa.rdiff @@ -1,5 +1,5 @@ ---- xa.result 2013-01-22 22:05:05.246633000 +0400 -+++ xa.reject 2013-01-23 03:22:41.047598747 +0400 +--- xa.result ++++ xa.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MRG_MYISAM does not support XA. diff --git a/storage/myisammrg/mysql-test/storage_engine/trx/xa_recovery.rdiff b/storage/myisammrg/mysql-test/storage_engine/trx/xa_recovery.rdiff index fa920abefc8..51964b6c32b 100644 --- a/storage/myisammrg/mysql-test/storage_engine/trx/xa_recovery.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/trx/xa_recovery.rdiff @@ -1,5 +1,5 @@ ---- xa_recovery.result 2013-01-22 22:05:05.246633000 +0400 -+++ xa_recovery.reject 2013-01-23 03:22:43.247571090 +0400 +--- xa_recovery.result ++++ xa_recovery.reject @@ -1,3 +1,9 @@ +# -- WARNING ---------------------------------------------------------------- +# According to I_S.ENGINES, MRG_MYISAM does not support XA. diff --git a/storage/myisammrg/mysql-test/storage_engine/type_char_indexes.rdiff b/storage/myisammrg/mysql-test/storage_engine/type_char_indexes.rdiff index 797907fa71a..da11d4120a1 100644 --- a/storage/myisammrg/mysql-test/storage_engine/type_char_indexes.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/type_char_indexes.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/type_char_indexes.result 2014-10-12 14:22:11.000000000 +0400 -+++ suite/storage_engine/type_char_indexes.reject 2014-10-12 14:22:41.000000000 +0400 +--- suite/storage_engine/type_char_indexes.result ++++ suite/storage_engine/type_char_indexes.reject @@ -100,7 +100,7 @@ Warning 1681 'engine_condition_pushdown=on' is deprecated and will be removed in a future release. EXPLAIN SELECT c,c20,v16,v128 FROM t1 WHERE c > 'a'; diff --git a/storage/myisammrg/mysql-test/storage_engine/type_float_indexes.rdiff b/storage/myisammrg/mysql-test/storage_engine/type_float_indexes.rdiff index eb4da4db951..053136f7b9f 100644 --- a/storage/myisammrg/mysql-test/storage_engine/type_float_indexes.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/type_float_indexes.rdiff @@ -1,5 +1,5 @@ ---- type_float_indexes.result 2013-01-22 22:05:05.246633000 +0400 -+++ type_float_indexes.reject 2013-01-23 02:51:13.059333973 +0400 +--- type_float_indexes.result ++++ type_float_indexes.reject @@ -60,7 +60,7 @@ ALTER TABLE t1 ADD UNIQUE KEY(d); EXPLAIN SELECT d FROM t1 WHERE r > 0 and d > 0 ORDER BY d; diff --git a/storage/myisammrg/mysql-test/storage_engine/type_spatial.rdiff b/storage/myisammrg/mysql-test/storage_engine/type_spatial.rdiff index 6f337ffb638..99bc91cc3b8 100644 --- a/storage/myisammrg/mysql-test/storage_engine/type_spatial.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/type_spatial.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/type_spatial.result 2013-08-05 17:52:53.000000000 +0400 -+++ suite/storage_engine/type_spatial.reject 2013-08-05 17:56:37.000000000 +0400 +--- suite/storage_engine/type_spatial.result ++++ suite/storage_engine/type_spatial.reject @@ -2,699 +2,15 @@ DROP DATABASE IF EXISTS gis_ogs; CREATE DATABASE gis_ogs; diff --git a/storage/myisammrg/mysql-test/storage_engine/type_spatial_indexes.rdiff b/storage/myisammrg/mysql-test/storage_engine/type_spatial_indexes.rdiff index 04c56979244..3d5ae37b840 100644 --- a/storage/myisammrg/mysql-test/storage_engine/type_spatial_indexes.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/type_spatial_indexes.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/type_spatial_indexes.result 2013-08-05 18:08:49.000000000 +0400 -+++ suite/storage_engine/type_spatial_indexes.reject 2013-08-05 18:27:47.000000000 +0400 +--- suite/storage_engine/type_spatial_indexes.result ++++ suite/storage_engine/type_spatial_indexes.reject @@ -2,1399 +2,31 @@ DROP DATABASE IF EXISTS gis_ogs; CREATE DATABASE gis_ogs; diff --git a/storage/myisammrg/mysql-test/storage_engine/vcol.rdiff b/storage/myisammrg/mysql-test/storage_engine/vcol.rdiff index 6c4971c63be..cc1218f43e3 100644 --- a/storage/myisammrg/mysql-test/storage_engine/vcol.rdiff +++ b/storage/myisammrg/mysql-test/storage_engine/vcol.rdiff @@ -1,5 +1,5 @@ ---- vcol.result 2013-01-22 22:05:05.246633000 +0400 -+++ vcol.reject 2013-01-23 02:51:26.851160587 +0400 +--- vcol.result ++++ vcol.reject @@ -1,69 +1,12 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a , b GENERATED ALWAYS AS (a+1)) ENGINE= ; diff --git a/storage/rocksdb/mysql-test/storage_engine/cache_index.rdiff b/storage/rocksdb/mysql-test/storage_engine/cache_index.rdiff index 76e7705e377..1151a95d1f8 100644 --- a/storage/rocksdb/mysql-test/storage_engine/cache_index.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/cache_index.rdiff @@ -1,5 +1,5 @@ ---- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/cache_index.result 2017-06-22 00:33:46.419995639 +0300 -+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/cache_index.reject 2017-06-22 01:11:22.479981459 +0300 +--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/cache_index.result ++++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/cache_index.reject @@ -12,31 +12,31 @@ SET GLOBAL .key_buffer_size=128*1024; CACHE INDEX t1 INDEX (a), t2 IN ; diff --git a/storage/rocksdb/mysql-test/storage_engine/checksum_table_live.rdiff b/storage/rocksdb/mysql-test/storage_engine/checksum_table_live.rdiff index 094136ee926..d0b35c939bd 100644 --- a/storage/rocksdb/mysql-test/storage_engine/checksum_table_live.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/checksum_table_live.rdiff @@ -1,5 +1,5 @@ ---- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/checksum_table_live.result 2017-06-22 00:33:46.419995639 +0300 -+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/checksum_table_live.reject 2017-06-22 01:12:38.695980980 +0300 +--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/checksum_table_live.result ++++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/checksum_table_live.reject @@ -11,8 +11,8 @@ test.t1 4272806499 CHECKSUM TABLE t1, t2 QUICK; diff --git a/storage/rocksdb/mysql-test/storage_engine/index.rdiff b/storage/rocksdb/mysql-test/storage_engine/index.rdiff index 76d6c6dd8e4..d8cd56e9d70 100644 --- a/storage/rocksdb/mysql-test/storage_engine/index.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/index.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/index.result 2017-03-12 04:57:07.169911845 +0200 -+++ suite/storage_engine/index.reject 2017-08-14 22:41:06.548555663 +0300 +--- suite/storage_engine/index.result ++++ suite/storage_engine/index.reject @@ -4,7 +4,7 @@ ) ENGINE= ; SHOW KEYS IN t1; diff --git a/storage/rocksdb/mysql-test/storage_engine/index_type_btree.rdiff b/storage/rocksdb/mysql-test/storage_engine/index_type_btree.rdiff index 5fcffbea13b..08cb76dbb7a 100644 --- a/storage/rocksdb/mysql-test/storage_engine/index_type_btree.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/index_type_btree.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/index_type_btree.result 2017-03-12 04:57:07.169911845 +0200 -+++ suite/storage_engine/index_type_btree.reject 2017-08-14 22:50:47.264555216 +0300 +--- suite/storage_engine/index_type_btree.result ++++ suite/storage_engine/index_type_btree.reject @@ -4,7 +4,7 @@ ) ENGINE= ; SHOW KEYS IN t1; diff --git a/storage/rocksdb/mysql-test/storage_engine/index_type_hash.rdiff b/storage/rocksdb/mysql-test/storage_engine/index_type_hash.rdiff index 815b2983b87..709c8e42632 100644 --- a/storage/rocksdb/mysql-test/storage_engine/index_type_hash.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/index_type_hash.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/index_type_hash.result 2017-03-12 04:57:07.169911845 +0200 -+++ suite/storage_engine/index_type_hash.reject 2017-08-14 22:51:55.644555163 +0300 +--- suite/storage_engine/index_type_hash.result ++++ suite/storage_engine/index_type_hash.reject @@ -4,7 +4,7 @@ ) ENGINE= ; SHOW KEYS IN t1; diff --git a/storage/rocksdb/mysql-test/storage_engine/misc.rdiff b/storage/rocksdb/mysql-test/storage_engine/misc.rdiff index cdbad003217..0d2f085074f 100644 --- a/storage/rocksdb/mysql-test/storage_engine/misc.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/misc.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/misc.result 2018-02-23 03:01:49.673249912 +0200 -+++ suite/storage_engine/misc.reject 2018-02-23 03:02:05.669249564 +0200 +--- suite/storage_engine/misc.result ++++ suite/storage_engine/misc.reject @@ -28,6 +28,10 @@ SELECT TABLE_NAME, COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE ORDER BY TABLE_NAME; diff --git a/storage/rocksdb/mysql-test/storage_engine/parts/checksum_table.rdiff b/storage/rocksdb/mysql-test/storage_engine/parts/checksum_table.rdiff index bf3347a4341..62b4c77306a 100644 --- a/storage/rocksdb/mysql-test/storage_engine/parts/checksum_table.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/parts/checksum_table.rdiff @@ -1,5 +1,5 @@ ---- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/parts/checksum_table.result 2017-06-22 00:33:46.419995639 +0300 -+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/parts/checksum_table.reject 2017-06-22 19:25:02.935568998 +0300 +--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/parts/checksum_table.result ++++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/parts/checksum_table.reject @@ -31,8 +31,8 @@ test.t1 4272806499 CHECKSUM TABLE t1, t2 QUICK; diff --git a/storage/rocksdb/mysql-test/storage_engine/parts/create_table.rdiff b/storage/rocksdb/mysql-test/storage_engine/parts/create_table.rdiff index b2cb47a0927..9c46bece70e 100644 --- a/storage/rocksdb/mysql-test/storage_engine/parts/create_table.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/parts/create_table.rdiff @@ -1,5 +1,5 @@ ---- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/parts/create_table.result 2017-06-22 00:33:46.419995639 +0300 -+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/parts/create_table.reject 2017-06-22 19:25:05.335568983 +0300 +--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/parts/create_table.result ++++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/parts/create_table.reject @@ -65,7 +65,7 @@ 1 SIMPLE t1 abc,def # # # # # # # EXPLAIN PARTITIONS SELECT a FROM t1 WHERE a = 100; diff --git a/storage/rocksdb/mysql-test/storage_engine/show_engine.rdiff b/storage/rocksdb/mysql-test/storage_engine/show_engine.rdiff index 15a9bb6f171..869be38fa6e 100644 --- a/storage/rocksdb/mysql-test/storage_engine/show_engine.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/show_engine.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/show_engine.result 2017-03-12 04:57:07.169911845 +0200 -+++ suite/storage_engine/show_engine.reject 2017-08-14 22:58:15.508554871 +0300 +--- suite/storage_engine/show_engine.result ++++ suite/storage_engine/show_engine.reject @@ -4,7 +4,11 @@ # volatile data (timestamps, memory info, etc.) SHOW ENGINE STATUS; diff --git a/storage/rocksdb/mysql-test/storage_engine/show_table_status.rdiff b/storage/rocksdb/mysql-test/storage_engine/show_table_status.rdiff index d7252eb54ed..7f78b3bfda2 100644 --- a/storage/rocksdb/mysql-test/storage_engine/show_table_status.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/show_table_status.rdiff @@ -1,5 +1,5 @@ ---- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/show_table_status.result 2017-06-22 00:33:46.423995639 +0300 -+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/show_table_status.reject 2017-06-22 14:04:10.723690009 +0300 +--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/show_table_status.result ++++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/show_table_status.reject @@ -19,7 +19,7 @@ Create_time ### Update_time ### diff --git a/storage/rocksdb/mysql-test/storage_engine/tbl_opt_insert_method.rdiff b/storage/rocksdb/mysql-test/storage_engine/tbl_opt_insert_method.rdiff index 20f594fbb40..f2a5c24857b 100644 --- a/storage/rocksdb/mysql-test/storage_engine/tbl_opt_insert_method.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/tbl_opt_insert_method.rdiff @@ -1,5 +1,5 @@ ---- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/tbl_opt_insert_method.result 2017-06-22 00:33:46.423995639 +0300 -+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/tbl_opt_insert_method.reject 2017-06-22 02:39:45.243948128 +0300 +--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/tbl_opt_insert_method.result ++++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/tbl_opt_insert_method.reject @@ -5,7 +5,7 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, diff --git a/storage/rocksdb/mysql-test/storage_engine/tbl_opt_union.rdiff b/storage/rocksdb/mysql-test/storage_engine/tbl_opt_union.rdiff index 0d65ad0744a..04ff062fa41 100644 --- a/storage/rocksdb/mysql-test/storage_engine/tbl_opt_union.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/tbl_opt_union.rdiff @@ -1,5 +1,5 @@ ---- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/tbl_opt_union.result 2017-06-22 00:33:46.423995639 +0300 -+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/tbl_opt_union.reject 2017-06-22 02:41:02.719947641 +0300 +--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/tbl_opt_union.result ++++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/tbl_opt_union.reject @@ -4,11 +4,11 @@ Table Create Table t1 CREATE TABLE `t1` ( diff --git a/storage/rocksdb/mysql-test/storage_engine/tbl_temporary.rdiff b/storage/rocksdb/mysql-test/storage_engine/tbl_temporary.rdiff index d24806e7c9f..34a2161a891 100644 --- a/storage/rocksdb/mysql-test/storage_engine/tbl_temporary.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/tbl_temporary.rdiff @@ -1,5 +1,5 @@ ---- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/tbl_temporary.result 2017-06-22 00:33:46.423995639 +0300 -+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/tbl_temporary.reject 2017-06-22 15:27:50.643658456 +0300 +--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/tbl_temporary.result ++++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/tbl_temporary.reject @@ -1,11 +1,14 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c CHAR(1)) ENGINE=MyISAM; diff --git a/storage/rocksdb/mysql-test/storage_engine/truncate_table.rdiff b/storage/rocksdb/mysql-test/storage_engine/truncate_table.rdiff index 9ca7861d51e..1ebdeb1d30b 100644 --- a/storage/rocksdb/mysql-test/storage_engine/truncate_table.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/truncate_table.rdiff @@ -1,5 +1,5 @@ ---- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/truncate_table.result 2017-06-22 00:33:46.423995639 +0300 -+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/truncate_table.reject 2017-06-22 02:43:27.183946733 +0300 +--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/truncate_table.result ++++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/truncate_table.reject @@ -29,13 +29,12 @@ CREATE TABLE t1 (a , b ) ENGINE= ; INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'); diff --git a/storage/rocksdb/mysql-test/storage_engine/trx/delete.rdiff b/storage/rocksdb/mysql-test/storage_engine/trx/delete.rdiff index dac23b83579..7e9f7fd8ce8 100644 --- a/storage/rocksdb/mysql-test/storage_engine/trx/delete.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/trx/delete.rdiff @@ -1,5 +1,5 @@ ---- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/delete.result 2017-06-22 00:33:46.423995639 +0300 -+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/delete.reject 2017-06-22 19:29:36.827567276 +0300 +--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/delete.result ++++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/delete.reject @@ -68,5 +68,7 @@ DELETE FROM t1; INSERT INTO t1 (a,b) VALUES (1,'a'); diff --git a/storage/rocksdb/mysql-test/storage_engine/trx/insert.rdiff b/storage/rocksdb/mysql-test/storage_engine/trx/insert.rdiff index 36a71076a2b..532bb1f4c7b 100644 --- a/storage/rocksdb/mysql-test/storage_engine/trx/insert.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/trx/insert.rdiff @@ -1,5 +1,5 @@ ---- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/insert.result 2017-06-22 00:33:46.423995639 +0300 -+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/insert.reject 2017-06-22 19:29:39.131567262 +0300 +--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/insert.result ++++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/insert.reject @@ -37,18 +37,18 @@ INSERT INTO t1 SET a = 11, b = 'f'; INSERT t1 SET b = DEFAULT; diff --git a/storage/rocksdb/mysql-test/storage_engine/trx/level_read_committed.rdiff b/storage/rocksdb/mysql-test/storage_engine/trx/level_read_committed.rdiff index 6b9e4a3f4e9..c847dcaae70 100644 --- a/storage/rocksdb/mysql-test/storage_engine/trx/level_read_committed.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/trx/level_read_committed.rdiff @@ -1,5 +1,5 @@ ---- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/level_read_committed.result 2017-06-22 00:33:46.423995639 +0300 -+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/level_read_committed.reject 2017-06-22 19:29:41.459567247 +0300 +--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/level_read_committed.result ++++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/level_read_committed.reject @@ -77,6 +77,7 @@ CREATE TABLE t1 (a ) ENGINE= ; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; diff --git a/storage/rocksdb/mysql-test/storage_engine/trx/level_repeatable_read.rdiff b/storage/rocksdb/mysql-test/storage_engine/trx/level_repeatable_read.rdiff index cf770755243..e5e300d7d87 100644 --- a/storage/rocksdb/mysql-test/storage_engine/trx/level_repeatable_read.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/trx/level_repeatable_read.rdiff @@ -1,5 +1,5 @@ ---- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/level_repeatable_read.result 2017-06-22 00:33:46.423995639 +0300 -+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/level_repeatable_read.reject 2017-06-22 20:33:13.935543284 +0300 +--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/level_repeatable_read.result ++++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/level_repeatable_read.reject @@ -24,8 +24,7 @@ SELECT a FROM t1; a diff --git a/storage/rocksdb/mysql-test/storage_engine/trx/update.rdiff b/storage/rocksdb/mysql-test/storage_engine/trx/update.rdiff index ab181947733..1430782b491 100644 --- a/storage/rocksdb/mysql-test/storage_engine/trx/update.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/trx/update.rdiff @@ -1,5 +1,5 @@ ---- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/update.result 2017-06-22 00:33:46.423995639 +0300 -+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/update.reject 2017-06-22 19:29:57.267567148 +0300 +--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/update.result ++++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/trx/update.reject @@ -29,20 +29,23 @@ SAVEPOINT spt1; UPDATE t1 SET b = ''; diff --git a/storage/rocksdb/mysql-test/storage_engine/type_binary_indexes.rdiff b/storage/rocksdb/mysql-test/storage_engine/type_binary_indexes.rdiff index 5eec9d24250..55c269374bb 100644 --- a/storage/rocksdb/mysql-test/storage_engine/type_binary_indexes.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/type_binary_indexes.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/type_binary_indexes.result 2017-03-12 04:57:07.173911845 +0200 -+++ suite/storage_engine/type_binary_indexes.reject 2017-08-14 22:54:02.144555066 +0300 +--- suite/storage_engine/type_binary_indexes.result ++++ suite/storage_engine/type_binary_indexes.reject @@ -91,7 +91,7 @@ INSERT INTO t1 (b,b20,v16,v128) SELECT b,b20,v16,v128 FROM t1; EXPLAIN SELECT HEX(SUBSTRING(v16,0,3)) FROM t1 WHERE v16 LIKE 'varchar%'; diff --git a/storage/rocksdb/mysql-test/storage_engine/type_bit_indexes.rdiff b/storage/rocksdb/mysql-test/storage_engine/type_bit_indexes.rdiff index e53a33b4fba..5825ca2731c 100644 --- a/storage/rocksdb/mysql-test/storage_engine/type_bit_indexes.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/type_bit_indexes.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/type_bit_indexes.result 2017-12-12 20:34:34.000000000 +0200 -+++ suite/storage_engine/type_bit_indexes.reject 2017-12-12 20:35:24.539330056 +0200 +--- suite/storage_engine/type_bit_indexes.result ++++ suite/storage_engine/type_bit_indexes.reject @@ -69,7 +69,7 @@ (1,0xFFFF,0xFFFFFFFF,0xFFFFFFFFFFFFFFFF); EXPLAIN SELECT HEX(b+c) FROM t1 WHERE c > 1 OR HEX(b) < 0xFFFFFF; diff --git a/storage/rocksdb/mysql-test/storage_engine/type_enum_indexes.rdiff b/storage/rocksdb/mysql-test/storage_engine/type_enum_indexes.rdiff index be83fb6e212..bd6290ae112 100644 --- a/storage/rocksdb/mysql-test/storage_engine/type_enum_indexes.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/type_enum_indexes.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/type_enum_indexes.result 2017-03-12 04:38:50.000000000 +0200 -+++ suite/storage_engine/type_enum_indexes.reject 2017-12-12 20:36:47.455331726 +0200 +--- suite/storage_engine/type_enum_indexes.result ++++ suite/storage_engine/type_enum_indexes.reject @@ -30,7 +30,7 @@ t1 0 a_b 2 b # # NULL NULL # # EXPLAIN SELECT a FROM t1 WHERE b > 'test2' ORDER BY a; diff --git a/storage/rocksdb/mysql-test/storage_engine/type_set_indexes.rdiff b/storage/rocksdb/mysql-test/storage_engine/type_set_indexes.rdiff index 2703e81b745..1608f617c75 100644 --- a/storage/rocksdb/mysql-test/storage_engine/type_set_indexes.rdiff +++ b/storage/rocksdb/mysql-test/storage_engine/type_set_indexes.rdiff @@ -1,5 +1,5 @@ ---- suite/storage_engine/type_set_indexes.result 2017-03-12 04:38:50.000000000 +0200 -+++ suite/storage_engine/type_set_indexes.reject 2017-12-12 20:37:16.187332305 +0200 +--- suite/storage_engine/type_set_indexes.result ++++ suite/storage_engine/type_set_indexes.reject @@ -97,7 +97,7 @@ Warning 1265 Data truncated for column 'b' at row 7 EXPLAIN SELECT a FROM t1 WHERE FIND_IN_SET('Europe',a) > 0; From 2085f36c6c547fc8333a9bdf44b51d4070b69f19 Mon Sep 17 00:00:00 2001 From: Monty Date: Fri, 27 Dec 2024 17:31:42 +0200 Subject: [PATCH 14/31] Removed not used and not visible send_metdata_skip variable. Reviewed-by: Sergei Golubchik --- sql/sql_class.h | 1 - 1 file changed, 1 deletion(-) diff --git a/sql/sql_class.h b/sql/sql_class.h index 8e3bb7c7467..326f0dc150d 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -1037,7 +1037,6 @@ typedef struct system_status_var ulonglong table_open_cache_hits; ulonglong table_open_cache_misses; ulonglong table_open_cache_overflows; - ulonglong send_metadata_skips; double last_query_cost; double cpu_time, busy_time; uint32 threads_running; From 130d6f9c4bfaa63b2156eef7fe5ca0ffa27554af Mon Sep 17 00:00:00 2001 From: Monty Date: Sat, 28 Dec 2024 11:06:04 +0200 Subject: [PATCH 15/31] Fixed memory leak in get_window_functions_required_cursors() Found by buildbot with test main.gis --- sql/sql_window.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sql/sql_window.cc b/sql/sql_window.cc index 816d49a1a65..7beba09387f 100644 --- a/sql/sql_window.cc +++ b/sql/sql_window.cc @@ -2726,7 +2726,10 @@ bool get_window_functions_required_cursors( item_win_func->requires_special_cursors()) { if (add_special_frame_cursors(thd, cursor_manager, item_win_func)) + { + delete cursor_manager; return true; + } cursor_managers->push_back(cursor_manager); continue; } From a2d37705ca5a79149b1b064fe3a0be0bbf7eaf73 Mon Sep 17 00:00:00 2001 From: Monty Date: Thu, 2 Jan 2025 15:15:22 +0200 Subject: [PATCH 16/31] Only print "InnoDB: Transaction was aborted..." if log_warnings >= 4 This is a minor fixup for MDEV-24035 Failing assertion UT_LIST_GET_LEN(lock.trx_locks) == 0 causing disruption and replication failure --- include/mysql/service_log_warnings.h | 52 +++++++++++++++++++++++++++ sql/sql_class.cc | 14 ++++++++ storage/innobase/handler/ha_innodb.cc | 6 ++-- 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 include/mysql/service_log_warnings.h diff --git a/include/mysql/service_log_warnings.h b/include/mysql/service_log_warnings.h new file mode 100644 index 00000000000..f55df70ef8e --- /dev/null +++ b/include/mysql/service_log_warnings.h @@ -0,0 +1,52 @@ +/* Copyright (c) 2013, 2018, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef MYSQL_SERVICE_LOG_WARNINGS +#define MYSQL_SERVICE_LOG_WARNINGS + +/** + @file + This service provides access to the log warning level for the + current session. + + thd_log_warnings(thd) + @return thd->log_warnings +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +extern struct thd_log_warnings_service_st { + void *(*thd_log_warnings)(MYSQL_THD); +} *thd_log_warnings_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN +# define thd_log_warnings(THD) thd_log_warnings_service->thd_log_warnings(THD) +#else +/** + MDL_context accessor + @param thd the current session + @return pointer to thd->mdl_context +*/ +int thd_log_warnings(MYSQL_THD thd); +#endif + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 059d6c03d3a..f500b740892 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -5805,6 +5805,20 @@ extern "C" void *thd_mdl_context(MYSQL_THD thd) return &thd->mdl_context; } + +/** + log_warnings accessor + @param thd the current session + + @return log warning level +*/ + +extern "C" int thd_log_warnings(const MYSQL_THD thd) +{ + return thd->variables.log_warnings; +} + + /** Send check/repair message to the user diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index ee18adbf909..c520de7c297 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -48,6 +48,7 @@ this program; if not, write to the Free Software Foundation, Inc., #include #include #include +#include #include "sql_type_geom.h" #include "scope.h" #include "srv0srv.h" @@ -2154,8 +2155,9 @@ static void innodb_transaction_abort(THD *thd, bool all, dberr_t err) noexcept { ut_ad(trx->state == TRX_STATE_NOT_STARTED); trx->state= TRX_STATE_ABORTED; - sql_print_error("InnoDB: Transaction was aborted due to %s", - ut_strerr(err)); + if (thd_log_warnings(thd) >= 4) + sql_print_error("InnoDB: Transaction was aborted due to %s", + ut_strerr(err)); } thd_mark_transaction_to_rollback(thd, all); } From 6abbfdef7aeea5b12e64f41f9e788b3e2b8c2d4a Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 2 May 2024 22:14:19 +0200 Subject: [PATCH 17/31] sporadic failures of binlog_encryption.rpl_parallel_gco_wait_kill CURRENT_TEST: binlog_encryption.rpl_parallel_gco_wait_kill mysqltest: In included file "./suite/rpl/t/rpl_parallel_gco_wait_kill.test": included from /home/buildbot/amd64-ubuntu-2004-debug/build/mysql-test/suite/binlog_encryption/rpl_parallel_gco_wait_kill.test at line 2: At line 334: Can't initialize replace from 'replace_result $thd_id THD_ID' An sql thread can reach the "Slave has read all relay log" state and then start reading relay log again. Let's use a more generic pattern to retrieve the sql thread ID even if it's not in the "read all relay log" state. --- mysql-test/suite/rpl/t/rpl_parallel_gco_wait_kill.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql-test/suite/rpl/t/rpl_parallel_gco_wait_kill.test b/mysql-test/suite/rpl/t/rpl_parallel_gco_wait_kill.test index c5d2b85cf34..c34c4f20dc0 100644 --- a/mysql-test/suite/rpl/t/rpl_parallel_gco_wait_kill.test +++ b/mysql-test/suite/rpl/t/rpl_parallel_gco_wait_kill.test @@ -300,7 +300,7 @@ SET GLOBAL slave_parallel_threads=10; # Find the thread id of the driver SQL thread that we want to kill. --let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE '%Slave has read all relay log%' --source include/wait_condition.inc ---let $thd_id= `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE '%Slave has read all relay log%'` +--let $thd_id= `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE '%relay log%'` SET @old_max_queued= @@GLOBAL.slave_parallel_max_queued; SET GLOBAL slave_parallel_max_queued=9000; From fd9a11d8a5b820f8d08b28fb2f198edc6f196342 Mon Sep 17 00:00:00 2001 From: Julius Goryavsky Date: Mon, 6 Jan 2025 01:43:42 +0100 Subject: [PATCH 18/31] MDEV-35749: Add support for --use-memory option for SST with mariabackup Mariabackup (mariadb-backup) supports the --use-memory option that sets the buffer pool size for innodb. However, current SST scripts do not use this option. This commit adds support for this option, the value for which can be specified via the "use_memory" parameter in the configuration file in the [sst], [mariabackup] or [xtrabackup] sections (supported only for compatibility with old configurations). In addition, if the innodb_buffer_pool_size option is specified in the user configuration (in the main server configuration sections) or passed to the SST scripts or the server via arguments, its value is also passed to mariadb-backup as the value for the --use-memory option. A new section name [mariabackup] has also been added, which can be used instead of the deprecated [xtrabackup] (the section name "mariabackup" was specified in the documentation, but was not actually supported by SST scripts before this commit). --- .../galera_sst_mariabackup_use_memory.result | 13 +++++ .../t/galera_sst_mariabackup_use_memory.cnf | 8 +++ .../t/galera_sst_mariabackup_use_memory.test | 53 +++++++++++++++++++ scripts/wsrep_sst_common.sh | 24 +++++++-- scripts/wsrep_sst_mariabackup.sh | 40 +++++++++----- 5 files changed, 121 insertions(+), 17 deletions(-) create mode 100644 mysql-test/suite/galera/r/galera_sst_mariabackup_use_memory.result create mode 100644 mysql-test/suite/galera/t/galera_sst_mariabackup_use_memory.cnf create mode 100644 mysql-test/suite/galera/t/galera_sst_mariabackup_use_memory.test diff --git a/mysql-test/suite/galera/r/galera_sst_mariabackup_use_memory.result b/mysql-test/suite/galera/r/galera_sst_mariabackup_use_memory.result new file mode 100644 index 00000000000..1d631198990 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_sst_mariabackup_use_memory.result @@ -0,0 +1,13 @@ +connection node_2; +connection node_1; +connection node_1; +connection node_2; +connection node_2; +Shutting down server ... +connection node_1; +Cleaning var directory ... +connection node_2; +Starting server ... +include/assert_grep.inc [mariabackup: Using 128974848 bytes for buffer pool \(set by --use-memory parameter\)] +disconnect node_2; +disconnect node_1; diff --git a/mysql-test/suite/galera/t/galera_sst_mariabackup_use_memory.cnf b/mysql-test/suite/galera/t/galera_sst_mariabackup_use_memory.cnf new file mode 100644 index 00000000000..05a647eb090 --- /dev/null +++ b/mysql-test/suite/galera/t/galera_sst_mariabackup_use_memory.cnf @@ -0,0 +1,8 @@ +!include ../galera_2nodes.cnf + +[mysqld] +wsrep_sst_method=mariabackup +wsrep_sst_auth="root:" + +[mariabackup] +use_memory=123m diff --git a/mysql-test/suite/galera/t/galera_sst_mariabackup_use_memory.test b/mysql-test/suite/galera/t/galera_sst_mariabackup_use_memory.test new file mode 100644 index 00000000000..f6ba873976e --- /dev/null +++ b/mysql-test/suite/galera/t/galera_sst_mariabackup_use_memory.test @@ -0,0 +1,53 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc +--source include/have_mariabackup.inc + +# Save original auto_increment_offset values. +--let $node_1=node_1 +--let $node_2=node_2 +--source include/auto_increment_offset_save.inc + +--connection node_2 + +--echo Shutting down server ... +--source include/shutdown_mysqld.inc + +--connection node_1 +--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' +--source include/wait_condition.inc + +# +# Force SST +# +--echo Cleaning var directory ... +--remove_file $MYSQLTEST_VARDIR/mysqld.2/data/grastate.dat +--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data/mtr +--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data/performance_schema +--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data/test +--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data/mysql +--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data + +--connection node_2 + +--echo Starting server ... +let $restart_noprint=2; +--source include/start_mysqld.inc + +--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; +--source include/wait_condition.inc + +--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready'; +--source include/wait_condition.inc + +# Confirm that IST did not take place +--let $assert_text = mariabackup: Using 128974848 bytes for buffer pool \(set by --use-memory parameter\) +--let $assert_select = mariabackup: Using 128974848 bytes for buffer pool \(set by --use-memory parameter\) +--let $assert_count = 1 +--let $assert_file = $MYSQLTEST_VARDIR/mysqld.2/data/mariabackup.prepare.log +--let $assert_only_after = Starting InnoDB instance for recovery +--source include/assert_grep.inc + +# Restore original auto_increment_offset values. +--source include/auto_increment_offset_restore.inc + +--source include/galera_end.inc diff --git a/scripts/wsrep_sst_common.sh b/scripts/wsrep_sst_common.sh index ff4befa6680..550165b0c3a 100644 --- a/scripts/wsrep_sst_common.sh +++ b/scripts/wsrep_sst_common.sh @@ -209,6 +209,7 @@ INNODB_DATA_HOME_DIR=$(trim_dir "${INNODB_DATA_HOME_DIR:-}") INNODB_LOG_GROUP_HOME=$(trim_dir "${INNODB_LOG_GROUP_HOME:-}") INNODB_UNDO_DIR=$(trim_dir "${INNODB_UNDO_DIR:-}") INNODB_BUFFER_POOL="" +INNODB_BUFFER_POOL_SIZE="" INNODB_FORCE_RECOVERY="" INNOEXTRA="" @@ -329,6 +330,10 @@ case "$1" in readonly INNODB_BUFFER_POOL=$(trim_string "$2") shift ;; + '--innodb-buffer-pool-size') + readonly INNODB_BUFFER_POOL_SIZE=$(trim_string "$2") + shift + ;; '--defaults-file') file=$(trim_string "$2") readonly WSREP_SST_OPT_DEFAULT="$1=$file" @@ -607,6 +612,12 @@ case "$1" in fi skip_mysqld_arg=1 ;; + '--innodb-buffer-pool-size') + if [ -z "$INNODB_BUFFER_POOL_SIZE" ]; then + MYSQLD_OPT_INNODB_BUFFER_POOL_SIZE=$(trim_string "$value") + fi + skip_mysqld_arg=1 + ;; '--innodb-force-recovery') if [ -n "$value" -a "$value" != "0" ]; then INNODB_FORCE_RECOVERY=$(trim_string "$value") @@ -696,6 +707,10 @@ if [ -n "${MYSQLD_OPT_INNODB_BUFFER_POOL:-}" -a \ -z "$INNODB_BUFFER_POOL" ]; then readonly INNODB_BUFFER_POOL="$MYSQLD_OPT_INNODB_BUFFER_POOL" fi +if [ -n "${MYSQLD_OPT_INNODB_BUFFER_POOL_SIZE:-}" -a \ + -z "$INNODB_BUFFER_POOL_SIZE" ]; then + readonly INNODB_BUFFER_POOL_SIZE="$MYSQLD_OPT_INNODB_BUFFER_POOL_SIZE" +fi if [ -n "${MYSQLD_OPT_LOG_BIN:-}" -a \ -z "$WSREP_SST_OPT_BINLOG" ]; then readonly WSREP_SST_OPT_BINLOG="$MYSQLD_OPT_LOG_BIN" @@ -752,6 +767,9 @@ fi if [ -n "$INNODB_BUFFER_POOL" ]; then INNOEXTRA="$INNOEXTRA --innodb-buffer-pool-filename='$INNODB_BUFFER_POOL'" fi +if [ -n "$INNODB_BUFFER_POOL_SIZE" ]; then + INNOEXTRA="$INNOEXTRA --innodb-buffer-pool-size='$INNODB_BUFFER_POOL_SIZE'" +fi if [ -n "$WSREP_SST_OPT_BINLOG" ]; then INNOEXTRA="$INNOEXTRA --log-bin='$WSREP_SST_OPT_BINLOG'" if [ -n "$WSREP_SST_OPT_BINLOG_INDEX" ]; then @@ -1775,14 +1793,14 @@ simple_cleanup() create_data() { OLD_PWD="$(pwd)" + DATA_DIR="$OLD_PWD" if [ -n "$DATA" -a "$DATA" != '.' ]; then [ ! -d "$DATA" ] && mkdir -p "$DATA" cd "$DATA" + DATA_DIR="$(pwd)" + cd "$OLD_PWD" fi - DATA_DIR="$(pwd)" - - cd "$OLD_PWD" } create_dirs() diff --git a/scripts/wsrep_sst_mariabackup.sh b/scripts/wsrep_sst_mariabackup.sh index e50704b7cdc..3e13efb6c6d 100644 --- a/scripts/wsrep_sst_mariabackup.sh +++ b/scripts/wsrep_sst_mariabackup.sh @@ -540,7 +540,8 @@ adjust_progress() fi } -encgroups='--mysqld|sst|xtrabackup' +bkgroups='sst|xtrabackup|mariabackup' +encgroups="--mysqld|$bkgroups" read_cnf() { @@ -596,26 +597,34 @@ read_cnf() ssl_dhparams=$(parse_cnf "$encgroups" 'ssl-dhparams') fi - sockopt=$(parse_cnf sst sockopt "") - progress=$(parse_cnf sst progress "") + sockopt=$(parse_cnf sst sockopt) + progress=$(parse_cnf sst progress) ttime=$(parse_cnf sst time 0) cpat='.*\.pem$\|.*galera\.cache$\|.*sst_in_progress$\|.*\.sst$\|.*gvwstate\.dat$\|.*grastate\.dat$\|.*\.err$\|.*\.log$\|.*RPM_UPGRADE_MARKER$\|.*RPM_UPGRADE_HISTORY$' [ "$OS" = 'FreeBSD' ] && cpat=$(echo "$cpat" | sed 's/\\|/|/g') cpat=$(parse_cnf sst cpat "$cpat") - scomp=$(parse_cnf sst compressor "") - sdecomp=$(parse_cnf sst decompressor "") + scomp=$(parse_cnf sst compressor) + sdecomp=$(parse_cnf sst decompressor) - rlimit=$(parse_cnf sst rlimit "") + rlimit=$(parse_cnf sst rlimit) uextra=$(parse_cnf sst use-extra 0) - speciald=$(parse_cnf sst sst-special-dirs 1) - iopts=$(parse_cnf sst inno-backup-opts "") - iapts=$(parse_cnf sst inno-apply-opts "") - impts=$(parse_cnf sst inno-move-opts "") - stimeout=$(parse_cnf sst sst-initial-timeout 300) - ssyslog=$(parse_cnf sst sst-syslog 0) - ssystag=$(parse_cnf mysqld_safe syslog-tag "${SST_SYSLOG_TAG:-}") + speciald=$(parse_cnf sst 'sst-special-dirs' 1) + iopts=$(parse_cnf "$bkgroups" 'inno-backup-opts') + iapts=$(parse_cnf "$bkgroups" 'inno-apply-opts') + impts=$(parse_cnf "$bkgroups" 'inno-move-opts') + use_memory=$(parse_cnf "$bkgroups" 'use-memory') + if [ -z "$use_memory" ]; then + if [ -n "$INNODB_BUFFER_POOL_SIZE" ]; then + use_memory="$INNODB_BUFFER_POOL_SIZE" + else + use_memory=$(parse_cnf '--mysqld' 'innodb-buffer-pool-size') + fi + fi + stimeout=$(parse_cnf sst 'sst-initial-timeout' 300) + ssyslog=$(parse_cnf sst 'sst-syslog' 0) + ssystag=$(parse_cnf mysqld_safe 'syslog-tag' "${SST_SYSLOG_TAG:-}") ssystag="$ssystag-" - sstlogarchive=$(parse_cnf sst sst-log-archive 1) + sstlogarchive=$(parse_cnf sst 'sst-log-archive' 1) sstlogarchivedir="" if [ $sstlogarchive -ne 0 ]; then sstlogarchivedir=$(parse_cnf sst sst-log-archive-dir \ @@ -1053,6 +1062,9 @@ setup_commands() if [ -n "$INNODB_FORCE_RECOVERY" ]; then recovery=" --innodb-force-recovery=$INNODB_FORCE_RECOVERY" fi + if [ -n "$use_memory" ]; then + INNOEXTRA="$INNOEXTRA --use-memory=$use_memory" + fi INNOAPPLY="$BACKUP_BIN --prepare$disver$recovery${iapts:+ }$iapts$INNOEXTRA --target-dir='$DATA' --datadir='$DATA'$mysqld_args $INNOAPPLY" INNOMOVE="$BACKUP_BIN$WSREP_SST_OPT_CONF --move-back$disver${impts:+ }$impts$INNOEXTRA --galera-info --force-non-empty-directories --target-dir='$DATA' --datadir='${TDATA:-$DATA}' $INNOMOVE" INNOBACKUP="$BACKUP_BIN$WSREP_SST_OPT_CONF --backup$disver${iopts:+ }$iopts$tmpopts$INNOEXTRA --galera-info --stream=$sfmt --target-dir='$itmpdir' --datadir='$DATA'$mysqld_args $INNOBACKUP" From cc5d7389991616bd630f3e460f92cb81fcb0e416 Mon Sep 17 00:00:00 2001 From: Monty Date: Tue, 7 Jan 2025 12:12:24 +0200 Subject: [PATCH 19/31] Disable mmap usage in Aria and MyISAM when compiling with valgrind This removes a valgrind warning "cannot read program header" while it tries to search for memory leaks. --- storage/maria/ma_extra.c | 6 +++--- storage/myisam/mi_extra.c | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/storage/maria/ma_extra.c b/storage/maria/ma_extra.c index 6be1edbc5ce..3b562c26613 100644 --- a/storage/maria/ma_extra.c +++ b/storage/maria/ma_extra.c @@ -74,7 +74,7 @@ int maria_extra(MARIA_HA *info, enum ha_extra_function function, } if (info->s->file_map) /* Don't use cache if mmap */ break; -#if defined(HAVE_MMAP) && defined(HAVE_MADVISE) +#if defined(HAVE_MMAP) && defined(HAVE_MADVISE) && !defined(HAVE_valgrind) if ((share->options & HA_OPTION_COMPRESS_RECORD)) { mysql_mutex_lock(&share->intern_lock); @@ -162,7 +162,7 @@ int maria_extra(MARIA_HA *info, enum ha_extra_function function, error= end_io_cache(&info->rec_cache); /* Sergei will insert full text index caching here */ } -#if defined(HAVE_MMAP) && defined(HAVE_MADVISE) +#if defined(HAVE_MMAP) && defined(HAVE_MADVISE) && !defined(HAVE_valgrind) if (info->opt_flag & MEMMAP_USED) madvise((char*) share->file_map, share->state.state.data_file_length, MADV_RANDOM); @@ -456,7 +456,7 @@ int maria_extra(MARIA_HA *info, enum ha_extra_function function, maria_extra_keyflag(info, function); break; case HA_EXTRA_MMAP: -#ifdef HAVE_MMAP +#if defined(HAVE_MMAP) && !defined(HAVE_valgrind) if (block_records) break; /* Not supported */ mysql_mutex_lock(&share->intern_lock); diff --git a/storage/myisam/mi_extra.c b/storage/myisam/mi_extra.c index 4ce138e888c..453e8869f1e 100644 --- a/storage/myisam/mi_extra.c +++ b/storage/myisam/mi_extra.c @@ -69,7 +69,7 @@ int mi_extra(MI_INFO *info, enum ha_extra_function function, void *extra_arg) } if (info->s->file_map) /* Don't use cache if mmap */ break; -#if defined(HAVE_MMAP) && defined(HAVE_MADVISE) +#if defined(HAVE_MMAP) && defined(HAVE_MADVISE) && !defined(HAVE_valgrind) if ((share->options & HA_OPTION_COMPRESS_RECORD)) { mysql_mutex_lock(&share->intern_lock); @@ -155,7 +155,7 @@ int mi_extra(MI_INFO *info, enum ha_extra_function function, void *extra_arg) error=end_io_cache(&info->rec_cache); /* Sergei will insert full text index caching here */ } -#if defined(HAVE_MMAP) && defined(HAVE_MADVISE) +#if defined(HAVE_MMAP) && defined(HAVE_MADVISE) && !defined(HAVE_valgrind) if (info->opt_flag & MEMMAP_USED) madvise((char*) share->file_map, share->state.state.data_file_length, MADV_RANDOM); @@ -320,7 +320,7 @@ int mi_extra(MI_INFO *info, enum ha_extra_function function, void *extra_arg) mi_extra_keyflag(info, function); break; case HA_EXTRA_MMAP: -#ifdef HAVE_MMAP +#if defined(HAVE_MMAP) && !defined(HAVE_valgrind) mysql_mutex_lock(&share->intern_lock); /* Memory map the data file if it is not already mapped. It is safe From f8cf4932903aa3e14076357cdfc9abed01c390b6 Mon Sep 17 00:00:00 2001 From: Thirunarayanan Balathandayuthapani Date: Tue, 7 Jan 2025 18:39:46 +0530 Subject: [PATCH 20/31] MDEV-34898 Doublewrite recovery of innodb_checksum_algorithm=full_crc32 encrypted pages does not work - InnoDB fails to recover the full crc32 encrypted page from doublewrite buffer. The reason is that buf_dblwr_t::recover() fails to identify the space id from the page because the page has been encrypted from FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION bytes. Fix: === buf_dblwr_t::recover(): preserve any pages whose space_id does not match a known tablespace. These could be encrypted pages of tablespaces that had been created with innodb_checksum_algorithm=full_crc32. buf_page_t::read_complete(): If the page looks corrupted and the tablespace is encrypted and in full_crc32 format, try to restore the page from doublewrite buffer. recv_dblwr_t::recover_encrypted_page(): Find the page which has the same page number and try to decrypt the page using space->crypt_data. After decryption, compare the space id. Write the recovered page back to the file. --- extra/mariabackup/xtrabackup.cc | 3 +- .../encryption/r/debug_key_management.result | 1 + .../encryption/r/doublewrite_debug.result | 81 +++++++ .../encryption/t/debug_key_management.test | 1 + .../suite/encryption/t/doublewrite_debug.opt | 3 + .../suite/encryption/t/doublewrite_debug.test | 223 ++++++++++++++++++ storage/innobase/buf/buf0buf.cc | 11 + storage/innobase/buf/buf0dblwr.cc | 13 +- storage/innobase/include/log0recv.h | 15 +- storage/innobase/log/log0recv.cc | 43 ++++ storage/innobase/srv/srv0start.cc | 11 +- 11 files changed, 395 insertions(+), 10 deletions(-) create mode 100644 mysql-test/suite/encryption/r/doublewrite_debug.result create mode 100644 mysql-test/suite/encryption/t/doublewrite_debug.opt create mode 100644 mysql-test/suite/encryption/t/doublewrite_debug.test diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc index 3342ec47760..c1d7085237f 100644 --- a/extra/mariabackup/xtrabackup.cc +++ b/extra/mariabackup/xtrabackup.cc @@ -6185,7 +6185,8 @@ static bool xtrabackup_prepare_func(char** argv) srv_max_dirty_pages_pct_lwm = srv_max_buf_pool_modified_pct; } - if (innodb_init()) { + recv_sys.recovery_on = false; + if (innodb_init()) { goto error_cleanup; } diff --git a/mysql-test/suite/encryption/r/debug_key_management.result b/mysql-test/suite/encryption/r/debug_key_management.result index 7fe681d52ae..394477969ad 100644 --- a/mysql-test/suite/encryption/r/debug_key_management.result +++ b/mysql-test/suite/encryption/r/debug_key_management.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("InnoDB: Encrypted page \\[page id: space=[1-9][0-9]*, page number=[0-9]*\\] in file"); create table t1(a serial) engine=innoDB; set global innodb_encrypt_tables=ON; show variables like 'innodb_encrypt%'; diff --git a/mysql-test/suite/encryption/r/doublewrite_debug.result b/mysql-test/suite/encryption/r/doublewrite_debug.result new file mode 100644 index 00000000000..b289df9f77d --- /dev/null +++ b/mysql-test/suite/encryption/r/doublewrite_debug.result @@ -0,0 +1,81 @@ +call mtr.add_suppression("InnoDB: Encrypted page \\[page id: space=[1-9][0-9]*, page number=3\\] in file .*test.t[12]\\.ibd looks corrupted"); +call mtr.add_suppression("InnoDB: Unable to apply log to corrupted page "); +call mtr.add_suppression("InnoDB: Plugin initialization aborted"); +call mtr.add_suppression("Plugin 'InnoDB' init function returned error"); +call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed"); +create table t1 (f1 int primary key, f2 blob)page_compressed = 1 engine=innodb stats_persistent=0; +create table t2(f1 int primary key, f2 blob)engine=innodb stats_persistent=0; +start transaction; +insert into t1 values(1, repeat('#',12)); +insert into t1 values(2, repeat('+',12)); +insert into t1 values(3, repeat('/',12)); +insert into t1 values(4, repeat('-',12)); +insert into t1 values(5, repeat('.',12)); +insert into t2 select * from t1; +commit work; +SET GLOBAL innodb_fast_shutdown = 0; +# restart: --debug_dbug=+d,ib_log_checkpoint_avoid_hard --innodb_flush_sync=0 +select space into @t1_space_id from information_schema.innodb_sys_tablespaces where name='test/t1'; +select space into @t2_space_id from information_schema.innodb_sys_tablespaces where name='test/t2'; +begin; +insert into t1 values (6, repeat('%', 400)); +insert into t2 values (6, repeat('%', 400)); +# xtrabackup prepare +set global innodb_saved_page_number_debug = 3; +set global innodb_fil_make_page_dirty_debug = @t1_space_id; +set global innodb_saved_page_number_debug = 3; +set global innodb_fil_make_page_dirty_debug = @t2_space_id; +set global innodb_buf_flush_list_now = 1; +# Kill the server +# restart +FOUND 2 /InnoDB: Recovered page \[page id: space=[1-9]*, page number=3\]/ in mysqld.1.err +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +check table t2; +Table Op Msg_type Msg_text +test.t2 check status OK +select f1, f2 from t1; +f1 f2 +1 ############ +2 ++++++++++++ +3 //////////// +4 ------------ +5 ............ +select f1, f2 from t2; +f1 f2 +1 ############ +2 ++++++++++++ +3 //////////// +4 ------------ +5 ............ +SET GLOBAL innodb_fast_shutdown = 0; +# shutdown server +# remove datadir +# xtrabackup move back +# restart: --debug_dbug=+d,ib_log_checkpoint_avoid_hard --innodb_flush_sync=0 +select space into @t1_space_id from information_schema.innodb_sys_tablespaces where name='test/t1'; +begin; +insert into t1 values (6, repeat('%', 400)); +set global innodb_saved_page_number_debug = 3; +set global innodb_fil_make_page_dirty_debug = @t1_space_id; +set global innodb_buf_flush_list_now = 1; +# Kill the server +# Corrupt the page 3 in t1.ibd file +# Assign the maximum value to lsn in doublewrite buffer page +# restart +FOUND 1 /InnoDB: Encrypted page \[page id: space=[1-9]*, page number=3\] in file .*test.t1.ibd looks corrupted/ in mysqld.1.err +select * from t1; +ERROR 42000: Unknown storage engine 'InnoDB' +# shutdown server +# remove datadir +# xtrabackup move back +# restart +select * from t1; +f1 f2 +1 ############ +2 ++++++++++++ +3 //////////// +4 ------------ +5 ............ +drop table t2, t1; diff --git a/mysql-test/suite/encryption/t/debug_key_management.test b/mysql-test/suite/encryption/t/debug_key_management.test index 45a93040d73..9638391e690 100644 --- a/mysql-test/suite/encryption/t/debug_key_management.test +++ b/mysql-test/suite/encryption/t/debug_key_management.test @@ -3,6 +3,7 @@ -- source include/innodb_undo_tablespaces.inc -- source include/not_embedded.inc +call mtr.add_suppression("InnoDB: Encrypted page \\[page id: space=[1-9][0-9]*, page number=[0-9]*\\] in file"); if (`select count(*) = 0 from information_schema.plugins where plugin_name = 'debug_key_management' and plugin_status='active'`) { diff --git a/mysql-test/suite/encryption/t/doublewrite_debug.opt b/mysql-test/suite/encryption/t/doublewrite_debug.opt new file mode 100644 index 00000000000..ed86654270b --- /dev/null +++ b/mysql-test/suite/encryption/t/doublewrite_debug.opt @@ -0,0 +1,3 @@ +--innodb-use-atomic-writes=0 +--innodb-encrypt-tables=FORCE +--innodb_sys_tablespaces diff --git a/mysql-test/suite/encryption/t/doublewrite_debug.test b/mysql-test/suite/encryption/t/doublewrite_debug.test new file mode 100644 index 00000000000..4dc6032c902 --- /dev/null +++ b/mysql-test/suite/encryption/t/doublewrite_debug.test @@ -0,0 +1,223 @@ +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/not_embedded.inc +--source include/have_example_key_management_plugin.inc +call mtr.add_suppression("InnoDB: Encrypted page \\[page id: space=[1-9][0-9]*, page number=3\\] in file .*test.t[12]\\.ibd looks corrupted"); +call mtr.add_suppression("InnoDB: Unable to apply log to corrupted page "); +call mtr.add_suppression("InnoDB: Plugin initialization aborted"); +call mtr.add_suppression("Plugin 'InnoDB' init function returned error"); +call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed"); + +let INNODB_PAGE_SIZE=`select @@innodb_page_size`; +let MYSQLD_DATADIR=`select @@datadir`; +let ALGO=`select @@innodb_checksum_algorithm`; + +create table t1 (f1 int primary key, f2 blob)page_compressed = 1 engine=innodb stats_persistent=0; +create table t2(f1 int primary key, f2 blob)engine=innodb stats_persistent=0; + +start transaction; +insert into t1 values(1, repeat('#',12)); +insert into t1 values(2, repeat('+',12)); +insert into t1 values(3, repeat('/',12)); +insert into t1 values(4, repeat('-',12)); +insert into t1 values(5, repeat('.',12)); +insert into t2 select * from t1; +commit work; + +# Slow shutdown and restart to make sure ibuf merge is finished +SET GLOBAL innodb_fast_shutdown = 0; +let $shutdown_timeout=; +let $restart_parameters=--debug_dbug=+d,ib_log_checkpoint_avoid_hard --innodb_flush_sync=0; +--source include/restart_mysqld.inc +--source ../../suite/innodb/include/no_checkpoint_start.inc + +select space into @t1_space_id from information_schema.innodb_sys_tablespaces where name='test/t1'; +select space into @t2_space_id from information_schema.innodb_sys_tablespaces where name='test/t2'; + +begin; +insert into t1 values (6, repeat('%', 400)); +insert into t2 values (6, repeat('%', 400)); + +# Copy the t1.ibd, t2.ibd file +let $targetdir=$MYSQLTEST_VARDIR/tmp/backup_1; +--disable_result_log +exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir; +--enable_result_log + +echo # xtrabackup prepare; +--disable_result_log +exec $XTRABACKUP --prepare --target-dir=$targetdir; + +set global innodb_saved_page_number_debug = 3; +set global innodb_fil_make_page_dirty_debug = @t1_space_id; + +set global innodb_saved_page_number_debug = 3; +set global innodb_fil_make_page_dirty_debug = @t2_space_id; + +set global innodb_buf_flush_list_now = 1; +--let CLEANUP_IF_CHECKPOINT=drop table t1, t2, unexpected_checkpoint; +--source ../../suite/innodb/include/no_checkpoint_end.inc +# Corrupt the page 3 in t1.ibd, t2.ibd file +perl; +use IO::Handle; +do "$ENV{MTR_SUITE_DIR}/include/crc32.pl"; +my $polynomial = 0x82f63b78; # CRC-32C +my $algo = $ENV{ALGO}; +die "Unsupported innodb_checksum_algorithm=$algo\n" unless $algo =~ /crc32/; + +my $fname= "$ENV{'MYSQLD_DATADIR'}test/t1.ibd"; +my $page_size = $ENV{INNODB_PAGE_SIZE}; +my $page; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/crc32.pl"; +open(FILE, "+<", $fname) or die; +sysseek(FILE, 3*$page_size, 0); +sysread(FILE, $page, $page_size)==$page_size||die "Unable to read $name\n"; +sysseek(FILE, 3*$page_size, 0)||die "Unable to seek $fname\n"; +my $corrupted = $page; +# Set FIL_PAGE_LSN to the maximum +substr($corrupted, 16, 8) = chr(255) x 8; +substr($corrupted, $page_size - 8, 8) = chr(255) x 8; +if ($algo =~ /full_crc32/) +{ + my $ck = mycrc32(substr($corrupted, 0, $page_size - 4), 0, $polynomial); + substr($corrupted, $page_size - 4, 4) = pack("N", $ck); +} +else +{ + # Replace the innodb_checksum_algorithm=crc32 checksum + my $ck= pack("N", + mycrc32(substr($corrupted, 4, 22), 0, $polynomial) ^ + mycrc32(substr($corrupted_, 38, $page_size - 38 - 8), 0, + $polynomial)); + substr ($corrupted, 0, 4) = $ck; + substr ($corrupted, $page_size - 8, 4) = $ck; +} +syswrite(FILE, $corrupted); +close FILE; + +# Zero the complete page +my $fname= "$ENV{'MYSQLD_DATADIR'}test/t2.ibd"; +open(FILE, "+<", $fname) or die; +FILE->autoflush(1); +binmode FILE; +sysseek(FILE, 3*$page_size, 0); +print FILE chr(0) x ($ENV{'INNODB_PAGE_SIZE'}); +close FILE; +EOF + +# Successful recover from doublewrite buffer +let $restart_parameters=; +--source include/start_mysqld.inc +let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err; +let SEARCH_PATTERN=InnoDB: Recovered page \\[page id: space=[1-9]*, page number=3\\]; +--source include/search_pattern_in_file.inc + +check table t1; +check table t2; +select f1, f2 from t1; +select f1, f2 from t2; + +SET GLOBAL innodb_fast_shutdown = 0; +let $shutdown_timeout=; +let $restart_parameters=--debug_dbug=+d,ib_log_checkpoint_avoid_hard --innodb_flush_sync=0; +--source ../../mariabackup/include/restart_and_restore.inc +--source ../../suite/innodb/include/no_checkpoint_start.inc +select space into @t1_space_id from information_schema.innodb_sys_tablespaces where name='test/t1'; + +begin; +insert into t1 values (6, repeat('%', 400)); + +set global innodb_saved_page_number_debug = 3; +set global innodb_fil_make_page_dirty_debug = @t1_space_id; + +set global innodb_buf_flush_list_now = 1; +--let CLEANUP_IF_CHECKPOINT=drop table t1, unexpected_checkpoint; +--source ../../suite/innodb/include/no_checkpoint_end.inc + +--echo # Corrupt the page 3 in t1.ibd file +--echo # Assign the maximum value to lsn in doublewrite buffer page +perl; +use IO::Handle; +do "$ENV{MTR_SUITE_DIR}/include/crc32.pl"; +my $polynomial = 0x82f63b78; # CRC-32C +my $algo = $ENV{ALGO}; +die "Unsupported innodb_checksum_algorithm=$algo\n" unless $algo =~ /crc32/; + +my $fname= "$ENV{'MYSQLD_DATADIR'}test/t1.ibd"; +my $page_size = $ENV{INNODB_PAGE_SIZE}; +my $page; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/crc32.pl"; +open(FILE, "+<", $fname) or die; +sysseek(FILE, 3*$page_size, 0); +sysread(FILE, $page, $page_size)==$page_size||die "Unable to read $name\n"; +sysseek(FILE, 3*$page_size, 0)||die "Unable to seek $fname\n"; +my $corrupted = $page; +# Set FIL_PAGE_LSN to the maximum +substr($corrupted, 16, 8) = chr(255) x 8; +substr($corrupted, $page_size - 8, 8) = chr(255) x 8; +if ($algo =~ /full_crc32/) +{ + my $ck = mycrc32(substr($corrupted, 0, $page_size - 4), 0, $polynomial); + substr($corrupted, $page_size - 4, 4) = pack("N", $ck); +} +else +{ + # Replace the innodb_checksum_algorithm=crc32 checksum + my $ck= pack("N", + mycrc32(substr($corrupted, 4, 22), 0, $polynomial) ^ + mycrc32(substr($corrupted_, 38, $page_size - 38 - 8), 0, + $polynomial)); + substr ($corrupted, 0, 4) = $ck; + substr ($corrupted, $page_size - 8, 4) = $ck; +} +syswrite(FILE, $corrupted); +close FILE; + +# Change the page lsn to maximum value +open(FILE, "+<", "$ENV{MYSQLD_DATADIR}ibdata1")||die "cannot open ibdata1\n"; +sysseek(FILE, 6 * $page_size - 190, 0)||die "Unable to seek ibdata1\n"; +sysread(FILE, $_, 12) == 12||die "Unable to read TRX_SYS\n"; +my($magic,$d1,$d2)=unpack "NNN", $_; +die "magic=$magic, $d1, $d2\n" unless $magic == 536853855 && $d2 >= $d1 + 64; +sysseek(FILE, $d1 * $page_size, 0)||die "Unable to seek ibdata1\n"; +# Find the page in the doublewrite buffer +for (my $d = $d1; $d < $d2 + 64; $d++) +{ + sysread(FILE, $_, $page_size)==$page_size||die "Cannot read doublewrite\n"; + next unless $_ eq $page; + sysseek(FILE, $d * $page_size, 0)||die "Unable to seek ibdata1\n"; + substr($_, 16, 8) = chr(255) x 8; + if ($algo =~ /full_crc32/) + { + my $ck = mycrc32(substr($_, 0, $page_size - 4), 0, $polynomial); + substr($_, $page_size - 4, 4) = pack("N", $ck); + } + else + { + # Replace the innodb_checksum_algorithm=crc32 checksum + my $ck= pack("N", + mycrc32(substr($_, 4, 22), 0, $polynomial) ^ + mycrc32(substr($_, 38, $page_size - 38 - 8), 0, + $polynomial)); + substr ($_, 0, 4) = $ck; + substr ($_, $page_size - 8, 4) = $ck; + } + syswrite(FILE, $_, $page_size)==$page_size||die; + close(FILE); + exit 0; +} +die "Did not find the page in the doublewrite buffer ($d1,$d2)\n"; +EOF + +let $restart_parameters=; +--source include/start_mysqld.inc +let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err; +let SEARCH_PATTERN=InnoDB: Encrypted page \\[page id: space=[1-9]*, page number=3\\] in file .*test.t1.ibd looks corrupted; +--source include/search_pattern_in_file.inc + +--error ER_UNKNOWN_STORAGE_ENGINE +select * from t1; + +--source ../../mariabackup/include/restart_and_restore.inc +select * from t1; +drop table t2, t1; diff --git a/storage/innobase/buf/buf0buf.cc b/storage/innobase/buf/buf0buf.cc index 9387a146aee..0e4c2c5b0f2 100644 --- a/storage/innobase/buf/buf0buf.cc +++ b/storage/innobase/buf/buf0buf.cc @@ -3767,6 +3767,16 @@ database_corrupted_compressed: if (err == DB_PAGE_CORRUPTED || err == DB_DECRYPTION_FAILED) { release_page: + if (node.space->full_crc32() && node.space->crypt_data && + recv_recovery_is_on() && + recv_sys.dblwr.find_encrypted_page(node, id().page_no(), + const_cast(read_frame))) + { + /* Recover from doublewrite buffer */ + err= DB_SUCCESS; + goto success_page; + } + if (recv_sys.free_corrupted_page(expected_id, node)); else if (err == DB_FAIL) err= DB_PAGE_CORRUPTED; @@ -3788,6 +3798,7 @@ release_page: buf_pool.corrupted_evict(this, buf_page_t::READ_FIX); return err; } +success_page: const bool recovery= recv_recovery_is_on(); diff --git a/storage/innobase/buf/buf0dblwr.cc b/storage/innobase/buf/buf0dblwr.cc index f53710caf1d..96d4c5e7c5e 100644 --- a/storage/innobase/buf/buf0dblwr.cc +++ b/storage/innobase/buf/buf0dblwr.cc @@ -370,6 +370,7 @@ void buf_dblwr_t::recover() srv_page_size)); byte *const buf= read_buf + srv_page_size; + std::deque encrypted_pages; for (recv_dblwr_t::list::iterator i= recv_sys.dblwr.pages.begin(); i != recv_sys.dblwr.pages.end(); ++i, ++page_no_dblwr) { @@ -385,8 +386,16 @@ void buf_dblwr_t::recover() fil_space_t *space= fil_space_t::get(space_id); if (!space) - /* The tablespace that this page once belonged to does not exist */ + { + /* These pages does not appear to belong to any tablespace. + There is a possibility that this page could be + encrypted using full_crc32 format. If innodb encounters + any corrupted encrypted page during recovery then + InnoDB should use this page to find the valid page. + See find_encrypted_page() */ + encrypted_pages.push_back(*i); continue; + } if (UNIV_UNLIKELY(page_no >= space->get_size())) { @@ -465,6 +474,8 @@ next_page: } recv_sys.dblwr.pages.clear(); + for (byte *page : encrypted_pages) + recv_sys.dblwr.pages.push_back(page); fil_flush_file_spaces(); aligned_free(read_buf); } diff --git a/storage/innobase/include/log0recv.h b/storage/innobase/include/log0recv.h index fb7028126c8..f58543d7683 100644 --- a/storage/innobase/include/log0recv.h +++ b/storage/innobase/include/log0recv.h @@ -150,6 +150,16 @@ struct recv_dblwr_t const fil_space_t *space= nullptr, byte *tmp_buf= nullptr) const noexcept; + /** Find the doublewrite copy of an encrypted page with the + smallest FIL_PAGE_LSN that is large enough for recovery. + @param space tablespace object + @param page_no page number to find + @param buf buffer for unencrypted page + @return buf + @retval nullptr if the page was not found in doublewrite buffer */ + byte *find_encrypted_page(const fil_node_t &space, uint32_t page_no, + byte *buf) noexcept; + /** Restore the first page of the given tablespace from doublewrite buffer. 1) Find the page which has page_no as 0 @@ -257,8 +267,9 @@ private: during log scan or apply */ bool found_corrupt_fs; public: - /** whether we are applying redo log records during crash recovery */ - bool recovery_on; + /** whether we are applying redo log records during crash recovery. + This is protected by recv_sys.mutex */ + Atomic_relaxed recovery_on= false; /** whether recv_recover_page(), invoked from buf_page_t::read_complete(), should apply log records*/ bool apply_log_recs; diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index cb408313279..7b02de62119 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -3785,6 +3785,7 @@ void recv_sys_t::apply(bool last_batch) /* We skipped this in buf_page_create(). */ mlog_init.mark_ibuf_exist(); mlog_init.clear(); + dblwr.pages.clear(); } else { @@ -4841,6 +4842,48 @@ bool recv_dblwr_t::validate_page(const page_id_t page_id, lsn_t max_lsn, goto check_if_corrupted; } +byte *recv_dblwr_t::find_encrypted_page(const fil_node_t &node, + uint32_t page_no, + byte *buf) noexcept +{ + ut_ad(node.space->crypt_data); + ut_ad(node.space->full_crc32()); + mysql_mutex_lock(&recv_sys.mutex); + byte *result_page= nullptr; + for (list::iterator page_it= pages.begin(); page_it != pages.end(); + page_it++) + { + if (page_get_page_no(*page_it) != page_no || + buf_page_is_corrupted(true, *page_it, node.space->flags)) + continue; + memcpy(buf, *page_it, node.space->physical_size()); + buf_tmp_buffer_t *slot= buf_pool.io_buf_reserve(false); + ut_a(slot); + slot->allocate(); + bool invalidate= + !fil_space_decrypt(node.space, slot->crypt_buf, buf) || + (node.space->is_compressed() && + !fil_page_decompress(slot->crypt_buf, buf, node.space->flags)); + slot->release(); + + if (invalidate || + mach_read_from_4(buf + FIL_PAGE_SPACE_ID) != node.space->id) + continue; + + result_page= *page_it; + pages.erase(page_it); + break; + } + mysql_mutex_unlock(&recv_sys.mutex); + if (result_page) + sql_print_information("InnoDB: Recovered page [page id: space=" + UINT32PF ", page number=" UINT32PF "] " + "to '%s' from the doublewrite buffer.", + uint32_t(node.space->id), page_no, + node.name); + return result_page; +} + const byte *recv_dblwr_t::find_page(const page_id_t page_id, lsn_t max_lsn, const fil_space_t *space, byte *tmp_buf) const noexcept diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc index c3397c88336..ff1a363565a 100644 --- a/storage/innobase/srv/srv0start.cc +++ b/storage/innobase/srv/srv0start.cc @@ -324,8 +324,11 @@ static dberr_t create_log_file(bool create_new_db, lsn_t lsn, srv_startup_is_before_trx_rollback_phase = false; } - /* Enable checkpoints in buf_flush_page_cleaner(). */ + /* After disabling recv_no_log_write, enable checkpoints + in buf_flush_page_cleaner(). This could help to avoid + crash during log file resizing */ recv_sys.recovery_on = false; + mysql_mutex_unlock(&log_sys.mutex); log_make_checkpoint(); @@ -1351,8 +1354,7 @@ dberr_t srv_start(bool create_new_db) return(srv_init_abort(DB_ERROR)); } - /* Enable checkpoints in the page cleaner. */ - recv_sys.recovery_on = false; + ut_ad(!recv_sys.recovery_on); err= recv_recovery_read_max_checkpoint(); @@ -1507,8 +1509,6 @@ dberr_t srv_start(bool create_new_db) : recv_recovery_from_checkpoint_start(flushed_lsn); recv_sys.close_files(); - recv_sys.dblwr.pages.clear(); - if (err != DB_SUCCESS) { return(srv_init_abort(err)); } @@ -1667,7 +1667,6 @@ dberr_t srv_start(bool create_new_db) << "Starting to delete and rewrite log file."; srv_log_file_size = srv_log_file_size_requested; - err = create_log_file(false, flushed_lsn, logfile0); if (err == DB_SUCCESS) { From a2f510fccff23e5011486c240587b8f1a98ecacc Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Mon, 23 Dec 2024 15:58:55 +0100 Subject: [PATCH 21/31] MDEV-33978 P_S.THREADS is not showing all server threads This patch only makes sure Linux getevents thread is shown in PS --- tpool/aio_linux.cc | 7 +++++-- tpool/aio_win.cc | 2 ++ tpool/tpool.h | 13 +++++++++---- tpool/tpool_generic.cc | 6 ++---- tpool/tpool_win.cc | 7 ++----- 5 files changed, 20 insertions(+), 15 deletions(-) diff --git a/tpool/aio_linux.cc b/tpool/aio_linux.cc index 6997cbcccab..1f52e62bd07 100644 --- a/tpool/aio_linux.cc +++ b/tpool/aio_linux.cc @@ -102,6 +102,7 @@ class aio_linux final : public aio */ constexpr unsigned MAX_EVENTS= 256; + aio->m_pool->m_worker_init_callback(); io_event events[MAX_EVENTS]; for (;;) { @@ -110,14 +111,14 @@ class aio_linux final : public aio continue; case -EINVAL: if (shutdown_in_progress) - return; + goto end; /* fall through */ default: if (ret < 0) { fprintf(stderr, "io_getevents returned %d\n", ret); abort(); - return; + goto end; } for (int i= 0; i < ret; i++) { @@ -142,6 +143,8 @@ class aio_linux final : public aio } } } +end: + aio->m_pool->m_worker_destroy_callback(); } public: diff --git a/tpool/aio_win.cc b/tpool/aio_win.cc index eec37383152..f483e3ca1e1 100644 --- a/tpool/aio_win.cc +++ b/tpool/aio_win.cc @@ -92,7 +92,9 @@ public: static void aio_completion_thread_proc(tpool_generic_win_aio* aio) { + aio->m_pool->m_worker_init_callback(); aio->completion_thread_work(); + aio->m_pool->m_worker_destroy_callback(); } ~tpool_generic_win_aio() diff --git a/tpool/tpool.h b/tpool/tpool.h index 7ac6763ae23..a5dccca5e91 100644 --- a/tpool/tpool.h +++ b/tpool/tpool.h @@ -27,6 +27,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 - 1301 USA*/ #define NOMINMAX #endif #include +#include + /** Windows-specific native file handle struct. Apart from the actual handle, contains PTP_IO @@ -202,21 +204,24 @@ protected: std::unique_ptr m_aio; virtual aio *create_native_aio(int max_io)= 0; +public: /** Functions to be called at worker thread start/end can be used for example to set some TLS variables */ - void (*m_worker_init_callback)(void); - void (*m_worker_destroy_callback)(void); + void (*m_worker_init_callback)(void)= [] {}; + void (*m_worker_destroy_callback)(void)= [] {}; -public: - thread_pool() : m_aio(), m_worker_init_callback(), m_worker_destroy_callback() + thread_pool() + : m_aio() { } virtual void submit_task(task *t)= 0; virtual timer* create_timer(callback_func func, void *data=nullptr) = 0; void set_thread_callbacks(void (*init)(), void (*destroy)()) { + assert(init); + assert(destroy); m_worker_init_callback= init; m_worker_destroy_callback= destroy; } diff --git a/tpool/tpool_generic.cc b/tpool/tpool_generic.cc index 9697194e0b2..cd4dd5f0bde 100644 --- a/tpool/tpool_generic.cc +++ b/tpool/tpool_generic.cc @@ -571,8 +571,7 @@ void thread_pool_generic::worker_main(worker_data *thread_var) { task* task; set_tls_pool(this); - if(m_worker_init_callback) - m_worker_init_callback(); + m_worker_init_callback(); tls_worker_data = thread_var; @@ -581,8 +580,7 @@ void thread_pool_generic::worker_main(worker_data *thread_var) task->execute(); } - if (m_worker_destroy_callback) - m_worker_destroy_callback(); + m_worker_destroy_callback(); worker_end(thread_var); } diff --git a/tpool/tpool_win.cc b/tpool/tpool_win.cc index 2b413b8d1b6..c012c4b6408 100644 --- a/tpool/tpool_win.cc +++ b/tpool/tpool_win.cc @@ -45,9 +45,7 @@ class thread_pool_win : public thread_pool if (!m_pool) return; - if (m_pool->m_worker_destroy_callback) - m_pool->m_worker_destroy_callback(); - + m_pool->m_worker_destroy_callback(); m_pool->m_thread_count--; } /** This needs to be called before every IO or simple task callback.*/ @@ -63,8 +61,7 @@ class thread_pool_win : public thread_pool m_pool = pool; m_pool->m_thread_count++; // Call the thread init function. - if (m_pool->m_worker_init_callback) - m_pool->m_worker_init_callback(); + m_pool->m_worker_init_callback(); } }; From 4e9c7031a54e91ddada7dec7e16001f6b4944995 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Fri, 27 Dec 2024 13:07:04 +0100 Subject: [PATCH 22/31] MDEV-35575 Fix memory leak, when installing auth_gssapi plugin fails. Make sure to release memory, which was allocated by gss_import_name(). Also when plugin_init() fails. --- plugin/auth_gssapi/gssapi_server.cc | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/plugin/auth_gssapi/gssapi_server.cc b/plugin/auth_gssapi/gssapi_server.cc index db7bda9a6b4..8896c39859d 100644 --- a/plugin/auth_gssapi/gssapi_server.cc +++ b/plugin/auth_gssapi/gssapi_server.cc @@ -85,6 +85,15 @@ cleanup: return default_name; } +static void release_service_name() +{ + if (service_name != GSS_C_NO_NAME) + { + OM_uint32 minor; + gss_release_name(&minor, &service_name); + service_name= GSS_C_NO_NAME; + } +} int plugin_init() { @@ -127,6 +136,7 @@ int plugin_init() if (GSS_ERROR(major)) { log_error(major, minor, "gss_acquire_cred failed"); + release_service_name(); return -1; } gss_release_cred(&minor, &cred); @@ -136,11 +146,7 @@ int plugin_init() int plugin_deinit() { - if (service_name != GSS_C_NO_NAME) - { - OM_uint32 minor; - gss_release_name(&minor, &service_name); - } + release_service_name(); return 0; } From 680d461b5d5ba4ee6d69c11acde495950ce5d238 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 25 Oct 2024 13:41:28 +0200 Subject: [PATCH 23/31] MDEV-35239 Mariabackup incorrectly thinks we are on a multithreaded slave if slave_parallel_workers > 0 don't require GTID enabled for multi-threaded slave in MariaDB it's only needed for MySQL with it out-of-order commits. --- extra/mariabackup/backup_mysql.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extra/mariabackup/backup_mysql.cc b/extra/mariabackup/backup_mysql.cc index d4fb6346bea..c0097fd3c45 100644 --- a/extra/mariabackup/backup_mysql.cc +++ b/extra/mariabackup/backup_mysql.cc @@ -614,7 +614,7 @@ detect_mysql_capabilities_for_backup() } if (opt_slave_info && have_multi_threaded_slave && - !have_gtid_slave) { + !have_gtid_slave && server_flavor != FLAVOR_MARIADB) { msg("The --slave-info option requires GTID enabled for a " "multi-threaded slave."); return(false); From 828b928fcecea727ca2aa29841575a663f7bdce7 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sun, 15 Dec 2024 20:14:16 +0100 Subject: [PATCH 24/31] MDEV-35651 NO_UNSIGNED_SUBTRACTION does not work for multiple unsigned integers restore correct unsigned-unsigned logic followup for 031f11717d9 --- mysql-test/main/func_math.result | 15 +++++++++++++-- mysql-test/main/func_math.test | 14 ++++++++------ sql/item_func.cc | 5 +++-- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/mysql-test/main/func_math.result b/mysql-test/main/func_math.result index 4296a983d71..c5896953664 100644 --- a/mysql-test/main/func_math.result +++ b/mysql-test/main/func_math.result @@ -1,4 +1,3 @@ -drop table if exists t1; select floor(5.5),floor(-5.5); floor(5.5) floor(-5.5) 5 -6 @@ -3632,5 +3631,17 @@ SELECT(ASIN(-1)+ LN(-1)) % (ATAN(-1) MOD FLOOR(1)) * (TRUNCATE(EXP(-1.e-2),-1.e+ c1 NULL # -# End of 10.5 tests +# MDEV-35651 NO_UNSIGNED_SUBTRACTION does not work for multiple unsigned integers # +set sql_mode=no_unsigned_subtraction; +select cast(0 as unsigned) - 1; +cast(0 as unsigned) - 1 +-1 +select 2-cast(3 as unsigned); +2-cast(3 as unsigned) +-1 +select cast(1 as unsigned) - cast(2 as unsigned); +cast(1 as unsigned) - cast(2 as unsigned) +-1 +set sql_mode=default; +# End of 10.5 tests diff --git a/mysql-test/main/func_math.test b/mysql-test/main/func_math.test index d16fc3bc37b..938d7e00e14 100644 --- a/mysql-test/main/func_math.test +++ b/mysql-test/main/func_math.test @@ -4,10 +4,6 @@ --source include/default_charset.inc ---disable_warnings -drop table if exists t1; ---enable_warnings - select floor(5.5),floor(-5.5); explain extended select floor(5.5),floor(-5.5); select ceiling(5.5),ceiling(-5.5); @@ -1941,7 +1937,13 @@ SELECT (TRUNCATE(EXP(-1.e-2),-1.e+30) % RADIANS(-1)) AS c1; SELECT (TRUNCATE(EXP(-1.e-2),-1.e+30) % RADIANS(-1)) * (LAST_DAY('1-03-30 1:29:12') MOD 1 + COS(-1)) AS c1; SELECT(ASIN(-1)+ LN(-1)) % (ATAN(-1) MOD FLOOR(1)) * (TRUNCATE(EXP(-1.e-2),-1.e+30) % RADIANS(-1)) * (LAST_DAY('1-03-30 1:29:12') MOD 1 + COS(-1)) AS c1; +--echo # +--echo # MDEV-35651 NO_UNSIGNED_SUBTRACTION does not work for multiple unsigned integers +--echo # +set sql_mode=no_unsigned_subtraction; +select cast(0 as unsigned) - 1; +select 2-cast(3 as unsigned); +select cast(1 as unsigned) - cast(2 as unsigned); +set sql_mode=default; ---echo # --echo # End of 10.5 tests ---echo # diff --git a/sql/item_func.cc b/sql/item_func.cc index 34e4727681e..6a7b12ae4a0 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -1316,9 +1316,10 @@ longlong Item_func_minus::int_op() { if (args[1]->unsigned_flag) { - if ((ulonglong) val0 < (ulonglong) val1) + if ((ulonglong) val0 >= (ulonglong) val1) + res_unsigned= TRUE; + else if ((ulonglong)val1 - (ulonglong)val0 > (ulonglong)LONGLONG_MAX) goto err; - res_unsigned= TRUE; } else { From b059f6051085657062fd1d3a5a6e5ff9cbf53050 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 23 Dec 2024 17:44:24 +0100 Subject: [PATCH 25/31] MDEV-35704 Error message mispelled when altering table engine to MEMORY reset progress report output before printing the error message. need to flush(stdout), because error message goes to stderr --- client/mysql.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/client/mysql.cc b/client/mysql.cc index 0d41ab928ec..e7e44c929d8 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -5122,6 +5122,9 @@ put_info(const char *str,INFO_TYPE info_type, uint error, const char *sqlstate) } if (!opt_silent || info_type == INFO_ERROR) { + report_progress_end(); + fflush(stdout); + if (!inited) { #ifdef HAVE_SETUPTERM From 9f9072c3440a008c2cef84da1b77378892176999 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 23 Dec 2024 21:55:02 +0100 Subject: [PATCH 26/31] MDEV-34733 main.mysqld--help-aria test failure: feedback plugin: failed to retrieve the MAC address * replace the message away in the test result * remove "feedback plugin:" prefix, it's a server message, not plugin's * downgrade to the warning, because 1) it's not a failure, no operation was aborted, server still works 2) it's something actionable, so not a [Note] either --- mysql-test/main/mysqld--help-aria.test | 6 +++--- mysql-test/mysql-test-run.pl | 2 +- sql/mysqld.cc | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mysql-test/main/mysqld--help-aria.test b/mysql-test/main/mysqld--help-aria.test index 2bd332c1484..4f0da282040 100644 --- a/mysql-test/main/mysqld--help-aria.test +++ b/mysql-test/main/mysqld--help-aria.test @@ -6,7 +6,7 @@ flush tables; --let $args=--table-cache=5 --max-connections=10 --log-warnings=1 --silent-startup --lower-case-table-names=1 --help --verbose --exec $MYSQLD_CMD $args > $MYSQL_TMP_DIR/mysqld--help2.txt 2> $MYSQL_TMP_DIR/mysqld--help2.err ---replace_regex /mysqld/mariadbd/ /\d\d\d\d-\d*-\d* *\d*:\d*:\d* \d* // +--replace_regex /mysqld/mariadbd/ /\d\d\d\d-\d*-\d* *\d*:\d*:\d* \d* // /^.*failed to retrieve the MAC address\n// --cat_file $MYSQL_TMP_DIR/mysqld--help2.err --echo # @@ -14,7 +14,7 @@ flush tables; --echo # --exec $MYSQLD_CMD $args --datadir=$MYSQL_TMP_DIR/help > $MYSQL_TMP_DIR/mysqld--help2.txt 2> $MYSQL_TMP_DIR/mysqld--help2.err ---replace_regex /\d\d\d\d-\d*-\d* *\d*:\d*:\d* \d* // +--replace_regex /mysqld/mariadbd/ /\d\d\d\d-\d*-\d* *\d*:\d*:\d* \d* // /^.*failed to retrieve the MAC address\n// --cat_file $MYSQL_TMP_DIR/mysqld--help2.err --echo # @@ -23,7 +23,7 @@ flush tables; --mkdir $MYSQL_TMP_DIR/help --exec $MYSQLD_CMD $args --datadir=$MYSQL_TMP_DIR/help > $MYSQL_TMP_DIR/mysqld--help2.txt 2> $MYSQL_TMP_DIR/mysqld--help2.err ---replace_regex /\d\d\d\d-\d*-\d* *\d*:\d*:\d* \d* // +--replace_regex /mysqld/mariadbd/ /\d\d\d\d-\d*-\d* *\d*:\d*:\d* \d* // /^.*failed to retrieve the MAC address\n// --cat_file $MYSQL_TMP_DIR/mysqld--help2.err --list_files $MYSQL_TMP_DIR/help diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 83d5fe088f8..815eae1bb26 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -4487,7 +4487,7 @@ sub extract_warning_lines ($$) { qr|InnoDB: io_setup\(\) failed with EAGAIN|, qr/InnoDB: Failed to set (O_DIRECT|DIRECTIO_ON) on file/, qr|setrlimit could not change the size of core files to 'infinity';|, - qr|feedback plugin: failed to retrieve the MAC address|, + qr|failed to retrieve the MAC address|, qr|Plugin 'FEEDBACK' init function returned error|, qr|Plugin 'FEEDBACK' registration as a INFORMATION SCHEMA failed|, qr|'log-bin-use-v1-row-events' is MySQL .* compatible option|, diff --git a/sql/mysqld.cc b/sql/mysqld.cc index a9fa24c2064..31d9084f235 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -9866,7 +9866,7 @@ static int calculate_server_uid(char *dest) int2store(rawbuf, mysqld_port); if (my_gethwaddr(rawbuf + 2)) { - sql_print_error("feedback plugin: failed to retrieve the MAC address"); + sql_print_warning("failed to retrieve the MAC address"); return 1; } From 0031f4a74fcf7c61493409af5da5ab2c90905113 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 24 Dec 2024 17:53:03 +0100 Subject: [PATCH 27/31] MDEV-35663 Sporadic connection failures during FLUSH PRIVILEGES during FLUSH PRIVILEGES, allow_all_hosts temporarily goes out of sync with acl_check_hosts and acl_wild_hosts. As it's tested in acl_check_host() without a mutex, let's re-test it under a mutex to make sure the value is correct. Note that it's just an optimization and it's ok to see outdated allow_all_hosts value here. --- sql/sql_acl.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 949e9825dde..59980264741 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -3948,7 +3948,8 @@ bool acl_check_host(const char *host, const char *ip) return 0; mysql_mutex_lock(&acl_cache->lock); - if ((host && my_hash_search(&acl_check_hosts,(uchar*) host,strlen(host))) || + if (allow_all_hosts || + (host && my_hash_search(&acl_check_hosts,(uchar*) host,strlen(host))) || (ip && my_hash_search(&acl_check_hosts,(uchar*) ip, strlen(ip)))) { mysql_mutex_unlock(&acl_cache->lock); From 9508a44c376186b433b023b04cc5025860b2a52a Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sat, 28 Dec 2024 20:15:43 +0100 Subject: [PATCH 28/31] enforce no trailing \n in Diagnostic_area messages that is in my_error(), push_warning(), etc --- mysql-test/main/long_unique_debug.result | 26 --- .../binlog/r/binlog_max_extension.result | 1 - .../binlog/r/binlog_no_uniqfile_crash.result | 1 - ...binlog_show_binlog_event_random_pos.result | 1 - .../rpl_binlog_errors.result | 9 - .../binlog_encryption/rpl_checksum.result | 1 - .../suite/rpl/r/rpl_binlog_errors.result | 9 - mysql-test/suite/rpl/r/rpl_checksum.result | 1 - sql/share/errmsg-utf8.txt | 200 +++++++++--------- sql/sql_error.cc | 1 + sql/sql_repl.cc | 2 +- sql/table.cc | 2 +- storage/connect/domdoc.cpp | 6 +- storage/innobase/handler/ha_innodb.cc | 25 +-- storage/maria/ma_check.c | 4 +- storage/myisam/mi_check.c | 8 +- 16 files changed, 123 insertions(+), 174 deletions(-) diff --git a/mysql-test/main/long_unique_debug.result b/mysql-test/main/long_unique_debug.result index fb56a9d024b..01df77fc58b 100644 --- a/mysql-test/main/long_unique_debug.result +++ b/mysql-test/main/long_unique_debug.result @@ -90,13 +90,11 @@ table->field[0]->offset = 1 table->field[0]->field_length = 10 table->field[0]->null_pos wrt to record 0 = 0 table->field[0]->null_bit_pos = 1 - table->field[1]->field_name DB_ROW_HASH_1 table->field[1]->offset = 11 table->field[1]->field_length = 8 table->field[1]->null_pos wrt to record 0 = 0 table->field[1]->null_bit_pos = 2 - SET debug_dbug=""; drop table t1; SET debug_dbug="d,print_long_unique_internal_state"; @@ -182,37 +180,31 @@ table->field[0]->offset = 1 table->field[0]->field_length = 10 table->field[0]->null_pos wrt to record 0 = 0 table->field[0]->null_bit_pos = 1 - table->field[1]->field_name b table->field[1]->offset = 11 table->field[1]->field_length = 10 table->field[1]->null_pos wrt to record 0 = 0 table->field[1]->null_bit_pos = 2 - table->field[2]->field_name c table->field[2]->offset = 21 table->field[2]->field_length = 10 table->field[2]->null_pos wrt to record 0 = 0 table->field[2]->null_bit_pos = 4 - table->field[3]->field_name DB_ROW_HASH_1 table->field[3]->offset = 31 table->field[3]->field_length = 8 table->field[3]->null_pos wrt to record 0 = 0 table->field[3]->null_bit_pos = 8 - table->field[4]->field_name DB_ROW_HASH_2 table->field[4]->offset = 39 table->field[4]->field_length = 8 table->field[4]->null_pos wrt to record 0 = 0 table->field[4]->null_bit_pos = 16 - table->field[5]->field_name DB_ROW_HASH_3 table->field[5]->offset = 47 table->field[5]->field_length = 8 table->field[5]->null_pos wrt to record 0 = 0 table->field[5]->null_bit_pos = 32 - SET debug_dbug=""; drop table t1; SET debug_dbug="d,print_long_unique_internal_state"; @@ -290,37 +282,31 @@ table->field[0]->offset = 1 table->field[0]->field_length = 10 table->field[0]->null_pos wrt to record 0 = 0 table->field[0]->null_bit_pos = 1 - table->field[1]->field_name b table->field[1]->offset = 11 table->field[1]->field_length = 10 table->field[1]->null_pos wrt to record 0 = 0 table->field[1]->null_bit_pos = 2 - table->field[2]->field_name c table->field[2]->offset = 21 table->field[2]->field_length = 10 table->field[2]->null_pos wrt to record 0 = 0 table->field[2]->null_bit_pos = 4 - table->field[3]->field_name d table->field[3]->offset = 31 table->field[3]->field_length = 10 table->field[3]->null_pos wrt to record 0 = 0 table->field[3]->null_bit_pos = 8 - table->field[4]->field_name DB_ROW_HASH_1 table->field[4]->offset = 41 table->field[4]->field_length = 8 table->field[4]->null_pos wrt to record 0 = 0 table->field[4]->null_bit_pos = 16 - table->field[5]->field_name DB_ROW_HASH_2 table->field[5]->offset = 49 table->field[5]->field_length = 8 table->field[5]->null_pos wrt to record 0 = 0 table->field[5]->null_bit_pos = 32 - SET debug_dbug=""; drop table t1; SET debug_dbug="d,print_long_unique_internal_state"; @@ -406,31 +392,26 @@ table->field[0]->offset = 1 table->field[0]->field_length = 4 table->field[0]->null_pos wrt to record 0 = -1 table->field[0]->null_bit_pos = 0 - table->field[1]->field_name b table->field[1]->offset = 5 table->field[1]->field_length = 10 table->field[1]->null_pos wrt to record 0 = 0 table->field[1]->null_bit_pos = 1 - table->field[2]->field_name c table->field[2]->offset = 15 table->field[2]->field_length = 10 table->field[2]->null_pos wrt to record 0 = -1 table->field[2]->null_bit_pos = 0 - table->field[3]->field_name DB_ROW_HASH_1 table->field[3]->offset = 25 table->field[3]->field_length = 8 table->field[3]->null_pos wrt to record 0 = 0 table->field[3]->null_bit_pos = 2 - table->field[4]->field_name DB_ROW_HASH_2 table->field[4]->offset = 33 table->field[4]->field_length = 8 table->field[4]->null_pos wrt to record 0 = -1 table->field[4]->null_bit_pos = 0 - SET debug_dbug=""; drop table t1; ##Using hash @@ -487,25 +468,21 @@ table->field[0]->offset = 1 table->field[0]->field_length = 4 table->field[0]->null_pos wrt to record 0 = 0 table->field[0]->null_bit_pos = 2 - table->field[1]->field_name b table->field[1]->offset = 5 table->field[1]->field_length = 4 table->field[1]->null_pos wrt to record 0 = 0 table->field[1]->null_bit_pos = 4 - table->field[2]->field_name c table->field[2]->offset = 9 table->field[2]->field_length = 4 table->field[2]->null_pos wrt to record 0 = 0 table->field[2]->null_bit_pos = 8 - table->field[3]->field_name DB_ROW_HASH_1 table->field[3]->offset = 13 table->field[3]->field_length = 8 table->field[3]->null_pos wrt to record 0 = 0 table->field[3]->null_bit_pos = 16 - SET debug_dbug=""; drop table t1; ##Using hash but with memory engine so no long unique column @@ -562,18 +539,15 @@ table->field[0]->offset = 1 table->field[0]->field_length = 4 table->field[0]->null_pos wrt to record 0 = 0 table->field[0]->null_bit_pos = 2 - table->field[1]->field_name b table->field[1]->offset = 5 table->field[1]->field_length = 4 table->field[1]->null_pos wrt to record 0 = 0 table->field[1]->null_bit_pos = 4 - table->field[2]->field_name c table->field[2]->offset = 9 table->field[2]->field_length = 4 table->field[2]->null_pos wrt to record 0 = 0 table->field[2]->null_bit_pos = 8 - SET debug_dbug=""; drop table t1; diff --git a/mysql-test/suite/binlog/r/binlog_max_extension.result b/mysql-test/suite/binlog/r/binlog_max_extension.result index f69ffcce16a..f353b071589 100644 --- a/mysql-test/suite/binlog/r/binlog_max_extension.result +++ b/mysql-test/suite/binlog/r/binlog_max_extension.result @@ -4,4 +4,3 @@ call mtr.add_suppression("Can't generate a unique log-filename"); RESET MASTER; FLUSH LOGS; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - diff --git a/mysql-test/suite/binlog/r/binlog_no_uniqfile_crash.result b/mysql-test/suite/binlog/r/binlog_no_uniqfile_crash.result index 88ed236a528..bd3d699a74a 100644 --- a/mysql-test/suite/binlog/r/binlog_no_uniqfile_crash.result +++ b/mysql-test/suite/binlog/r/binlog_no_uniqfile_crash.result @@ -16,7 +16,6 @@ master-bin.2147483647 # Gtid # # GTID #-#-# master-bin.2147483647 # Query # # CREATE DATABASE db1 RESET MASTER TO 2147483648; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - FOUND 1 /Turning logging off for the whole duration of the MariaDB server process/ in mysqld.1.err "Following CREATE DATABSE db2 command will not be present in binary log" "as binary log got closed due to ER_NO_UNIQUE_LOGFILE error." diff --git a/mysql-test/suite/binlog/r/binlog_show_binlog_event_random_pos.result b/mysql-test/suite/binlog/r/binlog_show_binlog_event_random_pos.result index c2e634ebe82..014019a3294 100644 --- a/mysql-test/suite/binlog/r/binlog_show_binlog_event_random_pos.result +++ b/mysql-test/suite/binlog/r/binlog_show_binlog_event_random_pos.result @@ -11,5 +11,4 @@ UPDATE t1 SET c1=repeat('b',255); INSERT INTO t1 VALUES (repeat('a', 255), repeat('a', 255),repeat('a', 255),repeat('a', 255),repeat('a', 255)); SHOW BINLOG EVENTS FROM POS; ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Invalid pos specified. Requested from pos:POS is greater than actual file size:MAX_POS - DROP TABLE t1; diff --git a/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result b/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result index 4c667bd7f5a..a4228c6e781 100644 --- a/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result +++ b/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result @@ -26,7 +26,6 @@ RESET MASTER; SET @@global.debug_dbug="d,error_unique_log_filename"; FLUSH LOGS; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - # assert: must show one binlog show binary logs; Log_name File_size @@ -52,7 +51,6 @@ RESET MASTER; SET @@global.debug_dbug="d,error_unique_log_filename"; LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug_46166.data' INTO TABLE t2; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - # assert: must show one entry SELECT count(*) FROM t2; count(*) @@ -78,7 +76,6 @@ LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug_46166.data' INTO TABLE t2; INSERT INTO t2 VALUES ('muse'); COMMIT; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - # assert: must show three entries SELECT count(*) FROM t2; count(*) @@ -95,7 +92,6 @@ count(*) 0 LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug_46166.data' INTO TABLE t4; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - # assert: must show 1 entry SELECT count(*) FROM t4; count(*) @@ -118,13 +114,10 @@ count(*) 0 LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug_46166.data' INTO TABLE t4; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug_46166.data' INTO TABLE t2; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - INSERT INTO t2 VALUES ('aaa'), ('bbb'), ('ccc'); ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - # INFO: Count(*) Before Offending DELETEs # assert: must show 1 entry SELECT count(*) FROM t4; @@ -136,10 +129,8 @@ count(*) 4 DELETE FROM t4; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - DELETE FROM t2; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - # INFO: Count(*) After Offending DELETEs # assert: must show zero entries SELECT count(*) FROM t4; diff --git a/mysql-test/suite/binlog_encryption/rpl_checksum.result b/mysql-test/suite/binlog_encryption/rpl_checksum.result index 22220b8e9fb..bfc4c4e831c 100644 --- a/mysql-test/suite/binlog_encryption/rpl_checksum.result +++ b/mysql-test/suite/binlog_encryption/rpl_checksum.result @@ -171,7 +171,6 @@ SET @old_dbug= @@GLOBAL.debug_dbug; SET debug_dbug= '+d,binlog_inject_new_name_error'; FLUSH LOGS; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - SET debug_dbug= @old_dbug; INSERT INTO t4 VALUES (2); connection slave; diff --git a/mysql-test/suite/rpl/r/rpl_binlog_errors.result b/mysql-test/suite/rpl/r/rpl_binlog_errors.result index 4c667bd7f5a..a4228c6e781 100644 --- a/mysql-test/suite/rpl/r/rpl_binlog_errors.result +++ b/mysql-test/suite/rpl/r/rpl_binlog_errors.result @@ -26,7 +26,6 @@ RESET MASTER; SET @@global.debug_dbug="d,error_unique_log_filename"; FLUSH LOGS; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - # assert: must show one binlog show binary logs; Log_name File_size @@ -52,7 +51,6 @@ RESET MASTER; SET @@global.debug_dbug="d,error_unique_log_filename"; LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug_46166.data' INTO TABLE t2; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - # assert: must show one entry SELECT count(*) FROM t2; count(*) @@ -78,7 +76,6 @@ LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug_46166.data' INTO TABLE t2; INSERT INTO t2 VALUES ('muse'); COMMIT; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - # assert: must show three entries SELECT count(*) FROM t2; count(*) @@ -95,7 +92,6 @@ count(*) 0 LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug_46166.data' INTO TABLE t4; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - # assert: must show 1 entry SELECT count(*) FROM t4; count(*) @@ -118,13 +114,10 @@ count(*) 0 LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug_46166.data' INTO TABLE t4; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug_46166.data' INTO TABLE t2; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - INSERT INTO t2 VALUES ('aaa'), ('bbb'), ('ccc'); ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - # INFO: Count(*) Before Offending DELETEs # assert: must show 1 entry SELECT count(*) FROM t4; @@ -136,10 +129,8 @@ count(*) 4 DELETE FROM t4; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - DELETE FROM t2; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - # INFO: Count(*) After Offending DELETEs # assert: must show zero entries SELECT count(*) FROM t4; diff --git a/mysql-test/suite/rpl/r/rpl_checksum.result b/mysql-test/suite/rpl/r/rpl_checksum.result index 21d8ca22feb..94f119016c5 100644 --- a/mysql-test/suite/rpl/r/rpl_checksum.result +++ b/mysql-test/suite/rpl/r/rpl_checksum.result @@ -171,7 +171,6 @@ SET @old_dbug= @@GLOBAL.debug_dbug; SET debug_dbug= '+d,binlog_inject_new_name_error'; FLUSH LOGS; ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) - SET debug_dbug= @old_dbug; INSERT INTO t4 VALUES (2); connection slave; diff --git a/sql/share/errmsg-utf8.txt b/sql/share/errmsg-utf8.txt index 5be526dbece..87cf8938c90 100644 --- a/sql/share/errmsg-utf8.txt +++ b/sql/share/errmsg-utf8.txt @@ -1903,83 +1903,83 @@ ER_NORMAL_SHUTDOWN swe "%s (%s): Normal avslutning" ukr "%s (%s): Нормальне завершення" ER_GOT_SIGNAL - chi "%s: 收到信号 %d. 强行中止!\n" - cze "%s: přijat signal %d, končím\n" - dan "%s: Fangede signal %d. Afslutter!!\n" - eng "%s: Got signal %d. Aborting!\n" - est "%s: sain signaali %d. Lõpetan!\n" - fre "%s: Reçu le signal %d. Abandonne!\n" - ger "%s: Signal %d erhalten. Abbruch!\n" - greek "%s: Ελήφθη το μήνυμα %d. Η διαδικασία εγκαταλείπεται!\n" - hindi "%s: सिग्नल %d मिलने के कारण सिस्टम बंद किया जा रहा है!\n" - hun "%s: %d jelzes. Megszakitva!\n" - ita "%s: Ricevuto segnale %d. Interruzione!\n" - jpn "%s: シグナル %d を受信しました。強制終了します!\n" - kor "%s: %d 신호가 들어왔음. 중지!\n" - nla "%s: Signaal %d. Systeem breekt af!\n" - nor "%s: Oppdaget signal %d. Avslutter!\n" - norwegian-ny "%s: Oppdaga signal %d. Avsluttar!\n" - pol "%s: Otrzymano sygnał %d. Kończenie działania!\n" - por "%s: Obteve sinal %d. Abortando!\n" - rum "%s: Semnal %d obtinut. Aborting!\n" - rus "%s: Получен сигнал %d. Прекращаем!\n" - serbian "%s: Dobio signal %d. Prekidam!\n" - slo "%s: prijatý signál %d, ukončenie (Abort)!\n" - spa "%s: Recibiendo signal %d. Abortando!\n" - swe "%s: Fick signal %d. Avslutar!\n" - ukr "%s: Отримано сигнал %d. Перериваюсь!\n" + chi "%s: 收到信号 %d. 强行中止!" + cze "%s: přijat signal %d, končím" + dan "%s: Fangede signal %d. Afslutter!!" + eng "%s: Got signal %d. Aborting!" + est "%s: sain signaali %d. Lõpetan!" + fre "%s: Reçu le signal %d. Abandonne!" + ger "%s: Signal %d erhalten. Abbruch!" + greek "%s: Ελήφθη το μήνυμα %d. Η διαδικασία εγκαταλείπεται!" + hindi "%s: सिग्नल %d मिलने के कारण सिस्टम बंद किया जा रहा है!" + hun "%s: %d jelzes. Megszakitva!" + ita "%s: Ricevuto segnale %d. Interruzione!" + jpn "%s: シグナル %d を受信しました。強制終了します!" + kor "%s: %d 신호가 들어왔음. 중지!" + nla "%s: Signaal %d. Systeem breekt af!" + nor "%s: Oppdaget signal %d. Avslutter!" + norwegian-ny "%s: Oppdaga signal %d. Avsluttar!" + pol "%s: Otrzymano sygnał %d. Kończenie działania!" + por "%s: Obteve sinal %d. Abortando!" + rum "%s: Semnal %d obtinut. Aborting!" + rus "%s: Получен сигнал %d. Прекращаем!" + serbian "%s: Dobio signal %d. Prekidam!" + slo "%s: prijatý signál %d, ukončenie (Abort)!" + spa "%s: Recibiendo signal %d. Abortando!" + swe "%s: Fick signal %d. Avslutar!" + ukr "%s: Отримано сигнал %d. Перериваюсь!" ER_SHUTDOWN_COMPLETE - chi "%s:关闭完成\n" - cze "%s: ukončení práce hotovo\n" - dan "%s: Server lukket\n" - eng "%s: Shutdown complete\n" - est "%s: Lõpp\n" - fre "%s: Arrêt du serveur terminé\n" - ger "%s: Herunterfahren beendet\n" - greek "%s: Η διαδικασία Shutdown ολοκληρώθηκε\n" - hindi "%s: शटडाउन पूर्ण\n" - hun "%s: A leallitas kesz\n" - ita "%s: Shutdown completato\n" - jpn "%s: シャットダウン完了\n" - kor "%s: Shutdown 이 완료됨!\n" - nla "%s: Afsluiten afgerond\n" - nor "%s: Avslutning komplett\n" - norwegian-ny "%s: Nedkopling komplett\n" - pol "%s: Zakończenie działania wykonane\n" - por "%s: 'Shutdown' completo\n" - rum "%s: Terminare completa\n" - rus "%s: Остановка завершена\n" - serbian "%s: Gašenje završeno\n" - slo "%s: práca ukončená\n" - spa "%s: Apagado completado\n" - swe "%s: Avslutning klar\n" - ukr "%s: Роботу завершено\n" + chi "%s:关闭完成" + cze "%s: ukončení práce hotovo" + dan "%s: Server lukket" + eng "%s: Shutdown complete" + est "%s: Lõpp" + fre "%s: Arrêt du serveur terminé" + ger "%s: Herunterfahren beendet" + greek "%s: Η διαδικασία Shutdown ολοκληρώθηκε" + hindi "%s: शटडाउन पूर्ण" + hun "%s: A leallitas kesz" + ita "%s: Shutdown completato" + jpn "%s: シャットダウン完了" + kor "%s: Shutdown 이 완료됨!" + nla "%s: Afsluiten afgerond" + nor "%s: Avslutning komplett" + norwegian-ny "%s: Nedkopling komplett" + pol "%s: Zakończenie działania wykonane" + por "%s: 'Shutdown' completo" + rum "%s: Terminare completa" + rus "%s: Остановка завершена" + serbian "%s: Gašenje završeno" + slo "%s: práca ukončená" + spa "%s: Apagado completado" + swe "%s: Avslutning klar" + ukr "%s: Роботу завершено" ER_FORCING_CLOSE 08S01 - chi "%s: 强行关闭线程 %ld 用户: '%-.48s'\n" - cze "%s: násilné uzavření threadu %ld uživatele '%-.48s'\n" - dan "%s: Forceret nedlukning af tråd: %ld bruger: '%-.48s'\n" - eng "%s: Forcing close of thread %ld user: '%-.48s'\n" - est "%s: Sulgen jõuga lõime %ld kasutaja: '%-.48s'\n" - fre "%s: Arrêt forcé de la tâche (thread) %ld utilisateur: '%-.48s'\n" - ger "%s: Thread %ld zwangsweise beendet. Benutzer: '%-.48s'\n" - greek "%s: Το thread θα κλείσει %ld user: '%-.48s'\n" - hindi "%s: %ld थ्रेड बंद किया जा रहा है (यूज़र: '%-.48s')\n" - hun "%s: A(z) %ld thread kenyszeritett zarasa. Felhasznalo: '%-.48s'\n" - ita "%s: Forzata la chiusura del thread %ld utente: '%-.48s'\n" - jpn "%s: スレッド %ld を強制終了します (ユーザー: '%-.48s')\n" - kor "%s: thread %ld의 강제 종료 user: '%-.48s'\n" - nla "%s: Afsluiten afgedwongen van thread %ld gebruiker: '%-.48s'\n" - nor "%s: Påtvinget avslutning av tråd %ld bruker: '%-.48s'\n" - norwegian-ny "%s: Påtvinga avslutning av tråd %ld brukar: '%-.48s'\n" - pol "%s: Wymuszenie zamknięcia w?tku %ld użytkownik: '%-.48s'\n" - por "%s: Forçando finalização da 'thread' %ld - usuário '%-.48s'\n" - rum "%s: Terminare fortata a thread-ului %ld utilizatorului: '%-.48s'\n" - rus "%s: Принудительно закрываем поток %ld пользователя: '%-.48s'\n" - serbian "%s: Usiljeno gašenje thread-a %ld koji pripada korisniku: '%-.48s'\n" - slo "%s: násilné ukončenie vlákna %ld užívateľa '%-.48s'\n" - spa "%s: Forzando a cerrar el thread %ld usuario: '%-.48s'\n" - swe "%s: Stänger av tråd %ld; användare: '%-.48s'\n" - ukr "%s: Прискорюю закриття гілки %ld користувача: '%-.48s'\n" + chi "%s: 强行关闭线程 %ld 用户: '%-.48s'" + cze "%s: násilné uzavření threadu %ld uživatele '%-.48s'" + dan "%s: Forceret nedlukning af tråd: %ld bruger: '%-.48s'" + eng "%s: Forcing close of thread %ld user: '%-.48s'" + est "%s: Sulgen jõuga lõime %ld kasutaja: '%-.48s'" + fre "%s: Arrêt forcé de la tâche (thread) %ld utilisateur: '%-.48s'" + ger "%s: Thread %ld zwangsweise beendet. Benutzer: '%-.48s'" + greek "%s: Το thread θα κλείσει %ld user: '%-.48s'" + hindi "%s: %ld थ्रेड बंद किया जा रहा है (यूज़र: '%-.48s')" + hun "%s: A(z) %ld thread kenyszeritett zarasa. Felhasznalo: '%-.48s'" + ita "%s: Forzata la chiusura del thread %ld utente: '%-.48s'" + jpn "%s: スレッド %ld を強制終了します (ユーザー: '%-.48s')" + kor "%s: thread %ld의 강제 종료 user: '%-.48s'" + nla "%s: Afsluiten afgedwongen van thread %ld gebruiker: '%-.48s'" + nor "%s: Påtvinget avslutning av tråd %ld bruker: '%-.48s'" + norwegian-ny "%s: Påtvinga avslutning av tråd %ld brukar: '%-.48s'" + pol "%s: Wymuszenie zamknięcia w?tku %ld użytkownik: '%-.48s'" + por "%s: Forçando finalização da 'thread' %ld - usuário '%-.48s'" + rum "%s: Terminare fortata a thread-ului %ld utilizatorului: '%-.48s'" + rus "%s: Принудительно закрываем поток %ld пользователя: '%-.48s'" + serbian "%s: Usiljeno gašenje thread-a %ld koji pripada korisniku: '%-.48s'" + slo "%s: násilné ukončenie vlákna %ld užívateľa '%-.48s'" + spa "%s: Forzando a cerrar el thread %ld usuario: '%-.48s'" + swe "%s: Stänger av tråd %ld; användare: '%-.48s'" + ukr "%s: Прискорюю закриття гілки %ld користувача: '%-.48s'" ER_IPSOCK_ERROR 08S01 chi "无法创建IP插口" cze "Nemohu vytvořit IP socket" @@ -2398,31 +2398,31 @@ ER_TOO_BIG_SET swe "För många alternativ till kolumn %-.192s för SET" ukr "Забагато строк для стовбця %-.192s та SET" ER_NO_UNIQUE_LOGFILE - chi "无法生成唯一的log-filename%-.200s.(1-999)\ n" - cze "Nemohu vytvořit jednoznačné jméno logovacího souboru %-.200s.(1-999)\n" - dan "Kan ikke lave unikt log-filnavn %-.200s.(1-999)\n" - eng "Can't generate a unique log-filename %-.200s.(1-999)\n" - est "Ei suuda luua unikaalset logifaili nime %-.200s.(1-999)\n" - fre "Ne peut générer un unique nom de journal %-.200s.(1-999)\n" - ger "Kann keinen eindeutigen Dateinamen für die Logdatei %-.200s(1-999) erzeugen\n" - greek "Αδύνατη η δημιουργία unique log-filename %-.200s.(1-999)\n" - hindi "एक अनूठा लॉग-फ़ाइल नाम %-.200s.(1-999) उत्पन्न नहीं कर सके\n" - hun "Egyedi log-filenev nem generalhato: %-.200s.(1-999)\n" - ita "Impossibile generare un nome del file log unico %-.200s.(1-999)\n" - jpn "一意なログファイル名 %-.200s.(1-999) を生成できません。\n" - kor "Unique 로그화일 '%-.200s'를 만들수 없습니다.(1-999)\n" - nla "Het is niet mogelijk een unieke naam te maken voor de logfile %-.200s.(1-999)\n" - nor "Kan ikke lage unikt loggfilnavn %-.200s.(1-999)\n" - norwegian-ny "Kan ikkje lage unikt loggfilnavn %-.200s.(1-999)\n" - pol "Nie można stworzyć unikalnej nazwy pliku z logiem %-.200s.(1-999)\n" - por "Não pode gerar um nome de arquivo de 'log' único '%-.200s'.(1-999)\n" - rum "Nu pot sa generez un nume de log unic %-.200s.(1-999)\n" - rus "Невозможно создать уникальное имя файла журнала %-.200s.(1-999)\n" - serbian "Ne mogu da generišem jedinstveno ime log-file-a: '%-.200s.(1-999)'\n" - slo "Nemôžem vytvoriť unikátne meno log-súboru %-.200s.(1-999)\n" - spa "No puede crear un unico archivo log %-.200s.(1-999)\n" - swe "Kan inte generera ett unikt filnamn %-.200s.(1-999)\n" - ukr "Не можу згенерувати унікальне ім'я log-файлу %-.200s.(1-999)\n" + chi "无法生成唯一的log-filename%-.200s.(1-999)" + cze "Nemohu vytvořit jednoznačné jméno logovacího souboru %-.200s.(1-999)" + dan "Kan ikke lave unikt log-filnavn %-.200s.(1-999)" + eng "Can't generate a unique log-filename %-.200s.(1-999)" + est "Ei suuda luua unikaalset logifaili nime %-.200s.(1-999)" + fre "Ne peut générer un unique nom de journal %-.200s.(1-999)" + ger "Kann keinen eindeutigen Dateinamen für die Logdatei %-.200s(1-999) erzeugen" + greek "Αδύνατη η δημιουργία unique log-filename %-.200s.(1-999)" + hindi "एक अनूठा लॉग-फ़ाइल नाम %-.200s.(1-999) उत्पन्न नहीं कर सके" + hun "Egyedi log-filenev nem generalhato: %-.200s.(1-999)" + ita "Impossibile generare un nome del file log unico %-.200s.(1-999)" + jpn "一意なログファイル名 %-.200s.(1-999) を生成できません。" + kor "Unique 로그화일 '%-.200s'를 만들수 없습니다.(1-999)" + nla "Het is niet mogelijk een unieke naam te maken voor de logfile %-.200s.(1-999)" + nor "Kan ikke lage unikt loggfilnavn %-.200s.(1-999)" + norwegian-ny "Kan ikkje lage unikt loggfilnavn %-.200s.(1-999)" + pol "Nie można stworzyć unikalnej nazwy pliku z logiem %-.200s.(1-999)" + por "Não pode gerar um nome de arquivo de 'log' único '%-.200s'.(1-999)" + rum "Nu pot sa generez un nume de log unic %-.200s.(1-999)" + rus "Невозможно создать уникальное имя файла журнала %-.200s.(1-999)" + serbian "Ne mogu da generišem jedinstveno ime log-file-a: '%-.200s.(1-999)'" + slo "Nemôžem vytvoriť unikátne meno log-súboru %-.200s.(1-999)" + spa "No puede crear un unico archivo log %-.200s.(1-999)" + swe "Kan inte generera ett unikt filnamn %-.200s.(1-999)" + ukr "Не можу згенерувати унікальне ім'я log-файлу %-.200s.(1-999)" ER_TABLE_NOT_LOCKED_FOR_WRITE chi "表 '%-.192s' 有 READ 锁,无法更新" cze "Tabulka '%-.192s' byla zamčena s READ a nemůže být změněna" diff --git a/sql/sql_error.cc b/sql/sql_error.cc index 6a3730ed3df..e40a9a70f26 100644 --- a/sql/sql_error.cc +++ b/sql/sql_error.cc @@ -692,6 +692,7 @@ Sql_condition *Warning_info::push_warning(THD *thd, const char *msg) { Sql_condition *cond= NULL; + DBUG_ASSERT(msg[strlen(msg)-1] != '\n'); if (! m_read_only) { diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index 54290cff242..6ad5159737c 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -4114,7 +4114,7 @@ bool mysql_show_binlog_events(THD* thd) if (lex_mi->pos > binlog_size) { snprintf(errmsg_buf, sizeof(errmsg_buf), "Invalid pos specified. Requested from pos:%llu is " - "greater than actual file size:%lu\n", lex_mi->pos, + "greater than actual file size:%lu", lex_mi->pos, (ulong)s.st_size); errmsg= errmsg_buf; goto err; diff --git a/sql/table.cc b/sql/table.cc index 1333cbff397..aaec593df76 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -3891,7 +3891,7 @@ static void print_long_unique_table(TABLE *table) "table->field[%u]->offset = %" PRIdPTR "\n" // `%td` not available "table->field[%u]->field_length = %d\n" "table->field[%u]->null_pos wrt to record 0 = %" PRIdPTR "\n" - "table->field[%u]->null_bit_pos = %d\n", + "table->field[%u]->null_bit_pos = %d", i, field->field_name.str, i, field->ptr- table->record[0], i, field->pack_length(), diff --git a/storage/connect/domdoc.cpp b/storage/connect/domdoc.cpp index b881a10628e..13f3180a59c 100644 --- a/storage/connect/domdoc.cpp +++ b/storage/connect/domdoc.cpp @@ -243,8 +243,10 @@ int DOMDOC::DumpDoc(PGLOBAL g, char *ofn) try { Docp->save(ofn); } catch(_com_error e) { - snprintf(g->Message, sizeof(g->Message), "%s: %s", MSG(COM_ERROR), - _com_util::ConvertBSTRToString(e.Description())); + int i = snprintf(g->Message, sizeof(g->Message), "%s: %s", MSG(COM_ERROR), + _com_util::ConvertBSTRToString(e.Description())); + for (i--; i >= 0 && g->Message[i] == '\n'; i--) + g->Message[i] = 0; rc = -1; } catch(...) {} diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index ad0f894f924..c2341aa667a 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -12684,7 +12684,7 @@ int create_table_info_t::create_table(bool create_fk) " on table %s. Please check" " the index definition to" " make sure it is of correct" - " type\n", + " type", FTS_DOC_ID_INDEX_NAME, m_table->name.m_name); @@ -12753,7 +12753,7 @@ int create_table_info_t::create_table(bool create_fk) "Create table '%s' with foreign key constraint" " failed. There is no index in the referenced" " table where the referenced columns appear" - " as the first columns.\n", m_table_name); + " as the first columns.", m_table_name); break; case DB_CHILD_NO_INDEX: @@ -12763,7 +12763,7 @@ int create_table_info_t::create_table(bool create_fk) "Create table '%s' with foreign key constraint" " failed. There is no index in the referencing" " table where referencing columns appear" - " as the first columns.\n", m_table_name); + " as the first columns.", m_table_name); break; case DB_NO_FK_ON_S_BASE_COL: push_warning_printf( @@ -12772,7 +12772,7 @@ int create_table_info_t::create_table(bool create_fk) "Create table '%s' with foreign key constraint" " failed. Cannot add foreign key constraint" " placed on the base column of stored" - " column. \n", + " column. ", m_table_name); default: break; @@ -14868,7 +14868,7 @@ ha_innobase::optimize( } else { push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, uint(err), - "InnoDB: Cannot defragment table %s: returned error code %d\n", + "InnoDB: Cannot defragment table %s: returned error code %d", m_prebuilt->table->name.m_name, err); if(err == ER_SP_ALREADY_EXISTS) { @@ -21376,8 +21376,7 @@ innodb_compression_algorithm_validate( if (compression_algorithm == PAGE_LZ4_ALGORITHM) { push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, HA_ERR_UNSUPPORTED, - "InnoDB: innodb_compression_algorithm = %lu unsupported.\n" - "InnoDB: liblz4 is not installed. \n", + "InnoDB: innodb_compression_algorithm = %lu unsupported. liblz4 is not installed.", compression_algorithm); DBUG_RETURN(1); } @@ -21387,8 +21386,7 @@ innodb_compression_algorithm_validate( if (compression_algorithm == PAGE_LZO_ALGORITHM) { push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, HA_ERR_UNSUPPORTED, - "InnoDB: innodb_compression_algorithm = %lu unsupported.\n" - "InnoDB: liblzo is not installed. \n", + "InnoDB: innodb_compression_algorithm = %lu unsupported. liblzo is not installed.", compression_algorithm); DBUG_RETURN(1); } @@ -21398,8 +21396,7 @@ innodb_compression_algorithm_validate( if (compression_algorithm == PAGE_LZMA_ALGORITHM) { push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, HA_ERR_UNSUPPORTED, - "InnoDB: innodb_compression_algorithm = %lu unsupported.\n" - "InnoDB: liblzma is not installed. \n", + "InnoDB: innodb_compression_algorithm = %lu unsupported. liblzma is not installed.", compression_algorithm); DBUG_RETURN(1); } @@ -21409,8 +21406,7 @@ innodb_compression_algorithm_validate( if (compression_algorithm == PAGE_BZIP2_ALGORITHM) { push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, HA_ERR_UNSUPPORTED, - "InnoDB: innodb_compression_algorithm = %lu unsupported.\n" - "InnoDB: libbz2 is not installed. \n", + "InnoDB: innodb_compression_algorithm = %lu unsupported. libbz2 is not installed.", compression_algorithm); DBUG_RETURN(1); } @@ -21420,8 +21416,7 @@ innodb_compression_algorithm_validate( if (compression_algorithm == PAGE_SNAPPY_ALGORITHM) { push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, HA_ERR_UNSUPPORTED, - "InnoDB: innodb_compression_algorithm = %lu unsupported.\n" - "InnoDB: libsnappy is not installed. \n", + "InnoDB: innodb_compression_algorithm = %lu unsupported. libsnappy is not installed.", compression_algorithm); DBUG_RETURN(1); } diff --git a/storage/maria/ma_check.c b/storage/maria/ma_check.c index 761ad0b7443..121f2056b55 100644 --- a/storage/maria/ma_check.c +++ b/storage/maria/ma_check.c @@ -5429,7 +5429,7 @@ static int sort_get_next_record(MARIA_SORT_PARAM *sort_param) if (! searching) _ma_check_print_info(param, "Found block with wrong recordlength: %lu " - "at %s\n", + "at %s", block_info.rec_len, llstr(sort_param->pos,llbuff)); continue; @@ -6429,7 +6429,7 @@ void _ma_update_auto_increment_key(HA_CHECK *param, MARIA_HA *info, { if (!(param->testflag & T_VERY_SILENT)) _ma_check_print_info(param, - "Table: %s doesn't have an auto increment key\n", + "Table: %s doesn't have an auto increment key", param->isam_file_name); DBUG_VOID_RETURN; } diff --git a/storage/myisam/mi_check.c b/storage/myisam/mi_check.c index 2bf400d08f3..e46dc35f861 100644 --- a/storage/myisam/mi_check.c +++ b/storage/myisam/mi_check.c @@ -1272,7 +1272,7 @@ int chk_data_link(HA_CHECK *param, MI_INFO *info, my_bool extend) (HA_OPTION_CHECKSUM | HA_OPTION_COMPRESS_RECORD))) { mi_check_print_warning(param, - "Record checksum is not the same as checksum stored in the index file\n"); + "Record checksum is not the same as checksum stored in the index file"); error=1; } else if (!extend) @@ -3625,7 +3625,7 @@ static int sort_get_next_record(MI_SORT_PARAM *sort_param) block_info.rec_len > (uint) share->max_pack_length) { if (! searching) - mi_check_print_info(param,"Found block with wrong recordlength: %ld at %s\n", + mi_check_print_info(param,"Found block with wrong recordlength: %ld at %s", block_info.rec_len, llstr(sort_param->pos,llbuff)); continue; @@ -4135,7 +4135,7 @@ static int sort_delete_record(MI_SORT_PARAM *sort_param) if (info->s->options & HA_OPTION_COMPRESS_RECORD) { mi_check_print_error(param, - "Recover aborted; Can't run standard recovery on compressed tables with errors in data-file. Use switch 'myisamchk --safe-recover' to fix it\n"); + "Recover aborted; Can't run standard recovery on compressed tables with errors in data-file. Use switch 'myisamchk --safe-recover' to fix it"); DBUG_RETURN(1); } @@ -4537,7 +4537,7 @@ void update_auto_increment_key(HA_CHECK *param, MI_INFO *info, { if (!(param->testflag & T_VERY_SILENT)) mi_check_print_info(param, - "Table: %s doesn't have an auto increment key\n", + "Table: %s doesn't have an auto increment key", param->isam_file_name); DBUG_VOID_RETURN; } From 3bf8b60cafb6f78759fbf06eab70f23a8ba546a9 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sat, 28 Dec 2024 20:16:22 +0100 Subject: [PATCH 29/31] clarify the message when filesort is aborted by LIMIT ROWS EXAMINED --- mysql-test/main/information_schema.result | 2 +- mysql-test/main/limit_rows_examined.result | 4 ++-- sql/filesort.cc | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mysql-test/main/information_schema.result b/mysql-test/main/information_schema.result index ebc1aeffce4..502373c8bef 100644 --- a/mysql-test/main/information_schema.result +++ b/mysql-test/main/information_schema.result @@ -2240,7 +2240,7 @@ drop database dummy; USE test; CREATE VIEW v AS SELECT table_schema AS object_schema, table_name AS object_name, table_type AS object_type FROM information_schema.tables ORDER BY object_schema; SELECT * FROM v LIMIT ROWS EXAMINED 9; -ERROR HY000: Sort aborted: +ERROR HY000: Sort aborted: LIMIT ROWS EXAMINED DROP VIEW v; # # MDEV-23408 Wrong result upon query from I_S and further Assertion `!alias_arg || strlen(alias_arg->str) == alias_arg->length' failed with certain connection charset diff --git a/mysql-test/main/limit_rows_examined.result b/mysql-test/main/limit_rows_examined.result index 7bea8862c18..99c48dba454 100644 --- a/mysql-test/main/limit_rows_examined.result +++ b/mysql-test/main/limit_rows_examined.result @@ -608,7 +608,7 @@ select c1, c2 from t3 order by c2, c1 LIMIT ROWS EXAMINED 2; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t3 ALL NULL NULL NULL NULL 5 Using filesort select c1, c2 from t3 order by c2, c1 LIMIT ROWS EXAMINED 2; -ERROR HY000: Sort aborted: +ERROR HY000: Sort aborted: LIMIT ROWS EXAMINED explain select c1, c2 from t3i order by c2, c1 LIMIT ROWS EXAMINED 2; id select_type table type possible_keys key key_len ref rows Extra @@ -624,7 +624,7 @@ select c1, c2 from t3i order by c2, c1 desc LIMIT ROWS EXAMINED 2; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t3i index NULL it3j 8 NULL 5 Using index; Using filesort select c1, c2 from t3i order by c2, c1 desc LIMIT ROWS EXAMINED 2; -ERROR HY000: Sort aborted: +ERROR HY000: Sort aborted: LIMIT ROWS EXAMINED drop table t3,t3i; ========================================================================= INSERT/DELETE/UPDATE diff --git a/sql/filesort.cc b/sql/filesort.cc index 6f7513275bd..822c52700a6 100644 --- a/sql/filesort.cc +++ b/sql/filesort.cc @@ -474,7 +474,7 @@ SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort, MYF(0), ER_THD(thd, ER_FILSORT_ABORT), kill_errno ? ER_THD(thd, kill_errno) : - thd->killed == ABORT_QUERY ? "" : + thd->killed == ABORT_QUERY ? "LIMIT ROWS EXAMINED" : thd->get_stmt_da()->message()); if (global_system_variables.log_warnings > 1) From 1d6f857534eeadd1b6aaa37d8e27c081421d2ffa Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sun, 29 Dec 2024 16:20:19 +0100 Subject: [PATCH 30/31] MDEV-35607 Compile error with gcc-15 (signal returns) set policy CMP0067 to NEW, this will make try_compile to use project-wide CMAKE_C_STANDARD and CMAKE_CXX_STANDARD settings --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 36b6a91068d..642f7b39b99 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,7 +31,7 @@ ENDIF() # in RPM's: #set(CPACK_RPM_SPEC_MORE_DEFINE "%define __spec_install_post /bin/true") -FOREACH(p CMP0022 CMP0046 CMP0040 CMP0048 CMP0054 CMP0074 CMP0075 CMP0069 CMP0135) +FOREACH(p CMP0022 CMP0046 CMP0040 CMP0048 CMP0054 CMP0067 CMP0074 CMP0075 CMP0069 CMP0135) IF(POLICY ${p}) CMAKE_POLICY(SET ${p} NEW) ENDIF() From 3bbbeae792433e87a88b9b5773eade4486a7504b Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 7 Jan 2025 16:46:32 +0100 Subject: [PATCH 31/31] fix a memory leak --- sql/sql_window.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sql/sql_window.cc b/sql/sql_window.cc index 565a1b964b5..3f3b63e53ed 100644 --- a/sql/sql_window.cc +++ b/sql/sql_window.cc @@ -2730,7 +2730,10 @@ bool get_window_functions_required_cursors( item_win_func->requires_special_cursors()) { if (add_special_frame_cursors(thd, cursor_manager, item_win_func)) + { + delete cursor_manager; return true; + } cursor_managers->push_back(cursor_manager); continue; }