# 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;