mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
MDEV-32901: innodb.mdev-14846 fails in 11.0
InnoDB could return off-by-1 estimates for the involved tables. This would cause off-by-many difference in join output cardinality for the top-level SELECT, and so different query plan for the subquery. The fix: Introduce mysql-test/include/innodb_stable_estimates.{inc,opt} which disables InnoDB's background statistics collection, and use it.
This commit is contained in:
parent
5c4c1844bf
commit
bd23b3dc06
3 changed files with 15 additions and 0 deletions
12
mysql-test/include/innodb_stable_estimates.inc
Normal file
12
mysql-test/include/innodb_stable_estimates.inc
Normal file
|
@ -0,0 +1,12 @@
|
|||
#
|
||||
# Include this file in your .test file if your testcase uses InnoDB tables
|
||||
# requiring stable query plans, which likely requires that InnoDB produces
|
||||
# stable estimates for #records in tables.
|
||||
#
|
||||
# How it works:
|
||||
# Unstable InnoDB estimates are caused by InnoDB's background statistics
|
||||
# collection. When you include this file, MTR will use server options from
|
||||
# include/innodb_stable_estimates.opt, which disables background statistics
|
||||
# collection.
|
||||
# (and no, InnoDB team objects to using this configuration for all MTR tests)
|
||||
#
|
1
mysql-test/include/innodb_stable_estimates.opt
Normal file
1
mysql-test/include/innodb_stable_estimates.opt
Normal file
|
@ -0,0 +1 @@
|
|||
--innodb_stats_auto_recalc=0
|
|
@ -2,6 +2,8 @@
|
|||
--source include/count_sessions.inc
|
||||
--source include/have_debug_sync.inc
|
||||
|
||||
--source include/innodb_stable_estimates.inc
|
||||
|
||||
CREATE TABLE t1 (
|
||||
pk INT,
|
||||
f1 VARCHAR(10) NOT NULL,
|
||||
|
|
Loading…
Reference in a new issue