Bug #120088 Hypergraph MTR tests failing

Submitted: 17 Mar 19:01 Modified: 24 Mar 18:10
Reporter: Laurynas Biveinis (OCA) Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server: Optimizer Severity:S7 (Test Cases)
Version:9.7.0-er OS:Any
Assigned to: CPU Architecture:Any

[17 Mar 19:01] Laurynas Biveinis
Description:
[ 50%] main.hypergraph_io_cost                   [ fail ]
        Test ended at 2026-03-17 20:52:46

CURRENT_TEST: main.hypergraph_io_cost
--- /Users/laurynas/vilniusdb/mysql-9.7.0-er/mysql-test/r/hypergraph_io_cost.result	2026-03-09 14:03:48
+++ /Users/laurynas/vilniusdb/mysql-9.7.0-er/_build-release/mysql-test/var/log/hypergraph_io_cost.reject	2026-03-17 21:52:45
@@ -31,7 +31,7 @@
 EXPLAIN FORMAT=TREE SELECT b FROM t1 WHERE a<3000;
 EXPLAIN
 -> Filter: (t1.a < 3000)  (...)
-    -> Table scan on t1  (...)
+    -> Index scan on t1 using PRIMARY  (...)

 EXPLAIN FORMAT=TREE SELECT * FROM t1 x1, t1 x2 WHERE x1.pk<10 AND x1.b=x2.a;
 EXPLAIN
@@ -42,14 +42,14 @@
 EXPLAIN FORMAT=TREE SELECT * FROM t1 x1, t1 x2 WHERE x1.pk<1000 AND x1.b=x2.a;
 EXPLAIN
 -> Inner hash join (x1.b = x2.a)  (...)
-    -> Table scan on x2  (...)
+    -> Index scan on x2 using PRIMARY  (...)
     -> Hash
         -> Index range scan on x1 using PRIMARY over (pk < 1000)  (...)

 EXPLAIN FORMAT=TREE SELECT * FROM t1 x1, t1 x2 WHERE x1.pk<3000 AND x1.b=x2.a;
 EXPLAIN
 -> Inner hash join (x1.b = x2.a)  (...)
-    -> Table scan on x2  (...)
+    -> Index scan on x2 using PRIMARY  (...)
     -> Hash
         -> Index range scan on x1 using PRIMARY over (pk < 3000)  (...)

mysqltest: Result content mismatch

How to repeat:
Server built with -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=Release -DWITH_SYSTEM_LIBS=ON -DWITH_NDBCLUSTER_STORAGE_ENGINE=OFF -DMYSQL_MAINTAINER_MODE=ON -DFORCE_COLORED_OUTPUT=ON -DCMAKE_CXX_FLAGS=-g -DCMAKE_CXX_FLAGS_DEBUG=-g -DCMAKE_CXX_FLAGS_RELEASE=-O2 -DNDEBUG -g

$ ./mtr main.hypergraph_io_cost
[17 Mar 19:03] Laurynas Biveinis
Likewise  main.index_merge_innodb_hypergraph:

[ 50%] main.index_merge_innodb_hypergraph        [ fail ]
        Test ended at 2026-03-17 21:01:55

CURRENT_TEST: main.index_merge_innodb_hypergraph
--- /Users/laurynas/vilniusdb/mysql-9.7.0-er/mysql-test/r/index_merge_innodb_hypergraph.result	2026-03-09 14:03:48
+++ /Users/laurynas/vilniusdb/mysql-9.7.0-er/_build-release/mysql-test/var/log/index_merge_innodb_hypergraph.reject	2026-03-17 22:01:54
@@ -1827,7 +1827,7 @@
 WHERE c = 1 AND b = 1 AND d = 1;
 EXPLAIN
 -> Filter: ((t1.d = 1) and (t1.b = 1) and (t1.c = 1))  (rows=2)
-    -> Table scan on t1  (rows=4)
+    -> Index scan on t1 using PRIMARY  (rows=4)

 CREATE TABLE t2 ( a INT )
 SELECT a
@@ -1882,7 +1882,7 @@
 AND ((pk BETWEEN 141 AND 141) OR (col_int_key > 141)));
 EXPLAIN
 -> Filter: ((t1.col_varchar_key >= 'l') or (((t1.pk = 141) or (t1.col_varchar_key <> 'l')) and ((t1.pk = 141) or (t1.col_int_key > 141))))  (rows=2)
-    -> Covering index scan on t1 using col_varchar_key  (rows=2)
+    -> Index scan on t1 using PRIMARY  (rows=2)

 SELECT col_int_key
 FROM t1
@@ -2219,7 +2219,7 @@
     -> Select #2 (subquery in condition; dependent)
         -> Aggregate: count(0)  (rows=1)
             -> Filter: ((t2.f3 = 'h') and (t2.f2 = t1.f1))  (rows=2)
-                -> Table scan on t2  (rows=4)
+                -> Index scan on t2 using PRIMARY  (rows=4)

 Warnings:
 Note	1276	Field or reference 'test.t1.f1' of SELECT #2 was resolved in SELECT #1
@@ -2387,7 +2387,7 @@
 EXPLAIN
 -> Update t1 (buffered)  (rows=0.00914)
     -> Hash semijoin (FirstMatch) (cast(t1.col_varchar_key as double) = cast(t2.col_int_key as double)), (cast(t1.col_varchar_nokey as double) = cast(t2.col_int_key as double))  (rows=0.00914)
-        -> Table scan on t1  (rows=2)
+        -> Index scan on t1 using PRIMARY  (rows=2)
         -> Hash
             -> Filter: ((t2.col_time_key,t2.col_int_key,t2.col_int_key) in ((0,'a','m'),(0,'n',7)))  (rows=0.192)
                 -> Intersect rows sorted by row ID  (rows=3.5)
@@ -2480,7 +2480,7 @@
 EXPLAIN
 -> Aggregate: count(t1.f2)  (...)
     -> Filter: ((t1.f1 = t1.f2) and ((t1.f3 = 10) or (t1.f2 between 5 and 10)))  (...)
-        -> Table scan on t1  (...)
+        -> Index scan on t1 using PRIMARY  (...)

 SELECT COUNT(f2) FROM t1 WHERE (f3 = 10 OR f2 BETWEEN 5 AND 10) AND f1 = f2;
 COUNT(f2)

mysqltest: Result content mismatch
[24 Mar 18:10] Øystein Grøvlen
Hi Laurynas,

Thank you for the bug report.  This has already been fixed in Bug#117866/Bug#37784391 and will be part of the upcoming 9.7.0 release.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.039 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.