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

MDEV-10683: main.order_by_optimizer_innodb fails in buildbot

Fix order_by_optimizer_innodb and order_by_innodb tests.

The problem was that the query could be ran before InnoDB was
ready to provide a realistic statistic for #records in the table.

It provided a number that was too low, which caused the optimizer
to decide that range access plan wasn't advantageous and discard it.
This commit is contained in:
Sergei Petrunia
2023-10-05 16:57:52 +03:00
parent e4ce61ac0f
commit 422774b40a
4 changed files with 17 additions and 0 deletions

View File

@ -159,6 +159,12 @@ insert into t2 values
(1,2,'2019-03-05 00:00:00','2019-03-06 00:00:00'),
(2,3,'2019-03-05 00:00:00','2019-03-06 00:00:00'),
(3,3,'2019-03-06 00:00:00','2019-03-05 00:00:00');
analyze table t1,t2 persistent for all;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
test.t2 analyze status Engine-independent statistics collected
test.t2 analyze status OK
select
t1.id,t2.id
from
@ -177,6 +183,10 @@ id id
2 1
3 3
create index for_latest_sort on t2 (d1 desc, d2 desc, id desc);
analyze table t2 persistent for all;
Table Op Msg_type Msg_text
test.t2 analyze status Engine-independent statistics collected
test.t2 analyze status OK
select
t1.id,t2.id
from

View File

@ -148,6 +148,7 @@ insert into t2 values
(2,3,'2019-03-05 00:00:00','2019-03-06 00:00:00'),
(3,3,'2019-03-06 00:00:00','2019-03-05 00:00:00');
analyze table t1,t2 persistent for all;
select
t1.id,t2.id
from
@ -163,6 +164,7 @@ from
);
create index for_latest_sort on t2 (d1 desc, d2 desc, id desc);
analyze table t2 persistent for all;
select
t1.id,t2.id

View File

@ -24,6 +24,10 @@ REPEAT('filler-data-', 10),
REPEAT('filler-data-', 10)
from
t1;
analyze table t2 persistent for all;
Table Op Msg_type Msg_text
test.t2 analyze status Engine-independent statistics collected
test.t2 analyze status OK
select pk1, count(*) from t2 group by pk1;
pk1 count(*)
0 1

View File

@ -33,6 +33,7 @@ select
from
t1;
analyze table t2 persistent for all;
select pk1, count(*) from t2 group by pk1;
--echo # The following should use range(ux_pk1_fd5), two key parts (key_len=5+8=13)