mariadb/mysql-test/suite
Marko Mäkelä e5c4c0842d MDEV-35443: opt_search_plan_for_table() may degrade to full table scan
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
2024-12-19 14:05:16 +02:00
..
archive MDEV-22964: archive.archive and main.mysqlbinlog_{row,stmt}_compressed) 2024-12-16 10:04:07 +11:00
binlog MDEV-35350: Backport search_pattern_in_file.inc SEARCH_WAIT to 10.5 2024-11-12 05:54:50 -07:00
binlog_encryption
client
compat MDEV-31005: Make working cursor-protocol 2024-09-18 18:39:26 +07:00
csv
encryption MDEV-31005: Make working cursor-protocol 2024-09-18 18:39:26 +07:00
engines MDEV-31005: Make working cursor-protocol 2024-09-18 18:39:26 +07:00
federated MDEV-31005: Make working cursor-protocol 2024-09-18 18:39:26 +07:00
funcs_1 MDEV-34716 Fix mysql.servers socket max length too short 2024-12-17 10:40:57 +11:00
funcs_2
galera MDEV-26266 Update wsrep-lib 2024-12-17 09:52:32 +01:00
galera_3nodes MDEV-35473 : Sporadic failures in the galera_3nodes.galera_evs_suspect_timeout mtr test 2024-11-28 01:02:35 +01:00
galera_3nodes_sr
galera_sr MDEV-35344: post-fix correction for other galera tests 2024-11-06 04:59:10 +01:00
gcol MDEV-31005: Make working cursor-protocol 2024-09-18 18:39:26 +07:00
handler MDEV-30263 Assertion failure in Protocol::end_statement upon HANDLER READ with invalid timestamp 2024-12-13 16:27:14 +01:00
heap
innodb MDEV-35443: opt_search_plan_for_table() may degrade to full table scan 2024-12-19 14:05:16 +02:00
innodb_fts Correct cursor protocol tests main.{loaddata,grant_plugin} & innodb_fts.fulltext 2024-11-21 21:43:44 +11:00
innodb_gis MDEV-35116 InnoDB fails to set error index for HA_ERR_NULL_IN_SPATIAL 2024-10-14 14:28:24 +05:30
innodb_i_s
innodb_zip
jp
json MDEV-31005: Make working cursor-protocol 2024-09-18 18:39:26 +07:00
large_tests
maria
mariabackup
mtr/t
mtr2
multi_source
optimizer_unfixed_bugs
parts MDEV-35648 Update partition lc2 tests for mac 2024-12-17 15:28:33 +11:00
perfschema MDEV-31005: Make working cursor-protocol 2024-09-18 18:39:26 +07:00
perfschema_stress
period MDEV-31005: Make working cursor-protocol 2024-09-18 18:39:26 +07:00
plugins MDEV-35604: SIGSEGV in filter_query_type | log_statement_ex / auditing 2024-12-09 09:42:26 +01:00
roles MDEV-31005: Make working cursor-protocol 2024-09-18 18:39:26 +07:00
rpl MDEV-35098 rpl.rpl_mysqldump_gtid_slave_pos fails in buildbot 2024-12-16 19:43:41 +02:00
s3
sql_sequence MDEV-35144 CREATE TABLE ... LIKE uses current innodb_compression_default instead of the create value 2024-10-17 16:28:39 +02:00
storage_engine
stress
sys_vars Revert "MDEV-35019 Provide a way to enable "rollback XA on disconnect" behavior we had before 10.5.2" 2024-10-16 13:23:47 +02:00
unit
vcol MDEV-31005: Make working cursor-protocol 2024-09-18 18:39:26 +07:00
versioning MDEV-15330 Cleanup: load_data.test removed 2024-12-03 13:49:42 +03:00
wsrep wsrep mtr suite: update for galera library 26.4.21 2024-12-17 09:57:29 +01:00