56 lines
1.5 KiB
Text
56 lines
1.5 KiB
Text
# Run only with hypergraph optimizer
|
|
--source include/have_hypergraph.inc
|
|
--source include/index_merge_innodb.inc
|
|
|
|
--echo #
|
|
--echo # Bug#35383419: WL#14808:ASSERT: `read_rows >= 0.0' in
|
|
--echo # Cost_model_server::tmptable_readwrite_cos
|
|
--echo #
|
|
CREATE TABLE t1 (f1 INT, f2 INT, f3 INT, PRIMARY KEY(f1), KEY(f2), KEY(f3));
|
|
SELECT 1
|
|
FROM t1 WHERE (f3 IN (SELECT f3 FROM t1)) AND f1 IN (75, 70) OR (f2 IS NULL);
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Bug#35387885: Assertion failure: row0mysql.cc in my_server_abort
|
|
--echo # at ../sql/signal_handler.cc
|
|
--echo #
|
|
|
|
CREATE TABLE t1 (f1 INT AUTO_INCREMENT, f2 INT, f3 INT,
|
|
PRIMARY KEY(f1), KEY(f2), KEY(f3));
|
|
|
|
INSERT INTO t1 (f2,f3)
|
|
WITH RECURSIVE qn(n) AS
|
|
(SELECT 0 UNION ALL SELECT n+1 FROM qn WHERE n<20)
|
|
SELECT 2,3 FROM qn;
|
|
|
|
ANALYZE TABLE t1;
|
|
# Should choose sort-union(f3,f2) because the condition "f2 BETWEEN 5 AND 10"
|
|
# would make it cheaper compared to union(f3, pk)
|
|
--replace_regex $elide_costs_and_rows
|
|
EXPLAIN FORMAT=tree SELECT COUNT(f2)
|
|
FROM t1 WHERE (f3 = 10 OR f2 BETWEEN 5 AND 10) AND f1 = f2;
|
|
SELECT COUNT(f2) FROM t1 WHERE (f3 = 10 OR f2 BETWEEN 5 AND 10) AND f1 = f2;
|
|
DROP TABLE t1;
|
|
|
|
|
|
--echo #
|
|
--echo # Bug#35785032 Hypergraph: Wrong first row cost for rowid intersectq
|
|
--echo #
|
|
|
|
CREATE TABLE t1 (
|
|
a INT PRIMARY KEY,
|
|
b INT,
|
|
c INT,
|
|
KEY k_b(b),
|
|
KEY k_c(c)
|
|
);
|
|
|
|
INSERT INTO t1 VALUES (1,0,0),(2,1,1),(3,0,0),(4,1,1),(5,0,0),
|
|
(6,1,1),(7,0,0),(8,1,1),(9,0,0),(10,1,1);
|
|
|
|
ANALYZE TABLE t1;
|
|
|
|
EXPLAIN FORMAT=TREE SELECT * FROM t1 WHERE b=0 AND c=0;
|
|
|
|
DROP TABLE t1;
|