1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-23991 fixup: Initialize the memory

Also, revert the work-around for the test that was attempted in
commit 85613a3247.

This issue was caught by MemorySanitizer as well as on the
Microsoft Windows debug builds, thanks to /MD being used
starting with 10.4.

The code fix will also be applied to 10.2 because the regression
was introduced in commit afc9d00c66.
This commit is contained in:
Marko Mäkelä
2020-10-30 11:04:16 +02:00
parent 9936235985
commit 199863d72b
4 changed files with 23 additions and 5 deletions

View File

@ -150,6 +150,15 @@
Handler_read_rnd_deleted 0 Handler_read_rnd_deleted 0
Handler_read_rnd_next 0 Handler_read_rnd_next 0
explain explain
@@ -209,7 +209,7 @@
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000
or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE lineitem index_merge PRIMARY,i_l_shipdate,i_l_receiptdate,i_l_orderkey,i_l_orderkey_quantity i_l_shipdate,i_l_receiptdate # NULL # Using
+1 SIMPLE lineitem index_merge PRIMARY,i_l_shipdate,i_l_receiptdate,i_l_orderkey,i_l_orderkey_quantity i_l_shipdate,PRIMARY,i_l_receiptdate,PRIMARY # NULL # Using
flush status;
select l_orderkey, l_linenumber from lineitem
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000
@@ -220,12 +220,12 @@ @@ -220,12 +220,12 @@
5959 3 5959 3
show status like 'handler_read_next'; show status like 'handler_read_next';

View File

@ -204,6 +204,12 @@ Handler_read_retry 0
Handler_read_rnd 3 Handler_read_rnd 3
Handler_read_rnd_deleted 0 Handler_read_rnd_deleted 0
Handler_read_rnd_next 0 Handler_read_rnd_next 0
explain
select l_orderkey, l_linenumber from lineitem
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000
or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE lineitem index_merge PRIMARY,i_l_shipdate,i_l_receiptdate,i_l_orderkey,i_l_orderkey_quantity i_l_shipdate,i_l_receiptdate # NULL # Using
flush status; flush status;
select l_orderkey, l_linenumber from lineitem select l_orderkey, l_linenumber from lineitem
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000 where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000

View File

@ -98,11 +98,11 @@ select l_orderkey, l_linenumber
or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000; or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000;
show status like 'handler_read%'; show status like 'handler_read%';
# FIXME: optimizer_switch=extended_keys=off occasionally gets wrong plan --replace_column 7 # 9 # 10 Using
#explain explain
#select l_orderkey, l_linenumber from lineitem select l_orderkey, l_linenumber from lineitem
# where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000 where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000
# or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000; or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000;
flush status; flush status;
select l_orderkey, l_linenumber from lineitem select l_orderkey, l_linenumber from lineitem
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000 where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000

View File

@ -2244,6 +2244,9 @@ dict_stats_update_persistent(
} }
ut_ad(!dict_index_is_ibuf(index)); ut_ad(!dict_index_is_ibuf(index));
mutex_enter(&dict_sys.mutex);
dict_stats_empty_index(index, false);
mutex_exit(&dict_sys.mutex);
index_stats_t stats = dict_stats_analyze_index(index); index_stats_t stats = dict_stats_analyze_index(index);