mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +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:
@ -159,6 +159,12 @@ insert into t2 values
|
|||||||
(1,2,'2019-03-05 00:00:00','2019-03-06 00:00:00'),
|
(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'),
|
(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');
|
(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
|
select
|
||||||
t1.id,t2.id
|
t1.id,t2.id
|
||||||
from
|
from
|
||||||
@ -177,6 +183,10 @@ id id
|
|||||||
2 1
|
2 1
|
||||||
3 3
|
3 3
|
||||||
create index for_latest_sort on t2 (d1 desc, d2 desc, id desc);
|
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
|
select
|
||||||
t1.id,t2.id
|
t1.id,t2.id
|
||||||
from
|
from
|
||||||
|
@ -148,6 +148,7 @@ insert into t2 values
|
|||||||
(2,3,'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');
|
(3,3,'2019-03-06 00:00:00','2019-03-05 00:00:00');
|
||||||
|
|
||||||
|
analyze table t1,t2 persistent for all;
|
||||||
select
|
select
|
||||||
t1.id,t2.id
|
t1.id,t2.id
|
||||||
from
|
from
|
||||||
@ -163,6 +164,7 @@ from
|
|||||||
);
|
);
|
||||||
|
|
||||||
create index for_latest_sort on t2 (d1 desc, d2 desc, id desc);
|
create index for_latest_sort on t2 (d1 desc, d2 desc, id desc);
|
||||||
|
analyze table t2 persistent for all;
|
||||||
|
|
||||||
select
|
select
|
||||||
t1.id,t2.id
|
t1.id,t2.id
|
||||||
|
@ -24,6 +24,10 @@ REPEAT('filler-data-', 10),
|
|||||||
REPEAT('filler-data-', 10)
|
REPEAT('filler-data-', 10)
|
||||||
from
|
from
|
||||||
t1;
|
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;
|
select pk1, count(*) from t2 group by pk1;
|
||||||
pk1 count(*)
|
pk1 count(*)
|
||||||
0 1
|
0 1
|
||||||
|
@ -33,6 +33,7 @@ select
|
|||||||
from
|
from
|
||||||
t1;
|
t1;
|
||||||
|
|
||||||
|
analyze table t2 persistent for all;
|
||||||
select pk1, count(*) from t2 group by pk1;
|
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)
|
--echo # The following should use range(ux_pk1_fd5), two key parts (key_len=5+8=13)
|
||||||
|
Reference in New Issue
Block a user