Description:
[ RUN ] MakeHypergraphTest.AntiJoin
/Users/laurynas/vilniusdb/mysql-9.7.0/unittest/gunit/hypergraph_optimizer-t.cc:509: Failure
Expected equality of these values:
0
graph.predicates.size()
Which is: 1
Google Test trace:
/Users/laurynas/vilniusdb/mysql-9.7.0/unittest/gunit/hypergraph_optimizer-t.cc:484: Join list after simplification:
* (aj-nest) ((t1.x = t2.x) and (t2.y = t3.y)) join_type=left
* t3 join_type=inner
* t2 join_type=inner
* t1 join_type=inner
Made this relational tree; WHERE condition is true:
* Antijoin [companion set 0x7fc1931b8] (extra join condition = (t1.x = t2.x) AND (t2.y = t3.y))
* t1 [companion set 0x7fc1931b8]
* Inner join [companion set 0x7fc1931d8] (flattened)
* t2 [companion set 0x7fc1931d8]
* t3 [companion set 0x7fc1931d8]
Pushing conditions down.
After pushdown; remaining WHERE conditions are true, table filters are (none):
* Antijoin [companion set 0x7fc1931b8] (equijoin condition = (t1.x = t2.x))
* t1 [companion set 0x7fc1931b8]
* Inner join [companion set 0x7fc1931d8] (equijoin condition = (t2.y = t3.y))
* t2 [companion set 0x7fc1931d8]
* t3 [companion set 0x7fc1931d8]
Companion set: 0x7fc1931b8:{{Fake.x, Fake.x}}
Companion set: 0x7fc1931d8:{{Fake.x, Fake.x}, {Fake.y, Fake.y}}
Total eligibility set for true: {}
Selectivity of join (t2.y = t3.y):
- fallback selectivity for (t2.y = t3.y) = 0.1
Selectivity of join [anti] (t1.x = t2.x):
- fallback selectivity for (t1.x = t2.x) = 0.1
Constructed hypergraph:
digraph G { # 2 edges
t2 -> t3 [label="(t2.y = t3.y) (0.1)",arrowhead=none]
e2 [shape=circle,width=.001,height=.001,label=""]
t1 -> e2 [arrowhead=none,label="[anti] (t1.x = t2.x) (0.1)"]
e2 -> t2 [label=""]
e2 -> t3 [label=""]
}
[ FAILED ] MakeHypergraphTest.AntiJoin (0 ms)
How to repeat:
$ runtime_output_directory/merge_large_tests-t
Description: [ RUN ] MakeHypergraphTest.AntiJoin /Users/laurynas/vilniusdb/mysql-9.7.0/unittest/gunit/hypergraph_optimizer-t.cc:509: Failure Expected equality of these values: 0 graph.predicates.size() Which is: 1 Google Test trace: /Users/laurynas/vilniusdb/mysql-9.7.0/unittest/gunit/hypergraph_optimizer-t.cc:484: Join list after simplification: * (aj-nest) ((t1.x = t2.x) and (t2.y = t3.y)) join_type=left * t3 join_type=inner * t2 join_type=inner * t1 join_type=inner Made this relational tree; WHERE condition is true: * Antijoin [companion set 0x7fc1931b8] (extra join condition = (t1.x = t2.x) AND (t2.y = t3.y)) * t1 [companion set 0x7fc1931b8] * Inner join [companion set 0x7fc1931d8] (flattened) * t2 [companion set 0x7fc1931d8] * t3 [companion set 0x7fc1931d8] Pushing conditions down. After pushdown; remaining WHERE conditions are true, table filters are (none): * Antijoin [companion set 0x7fc1931b8] (equijoin condition = (t1.x = t2.x)) * t1 [companion set 0x7fc1931b8] * Inner join [companion set 0x7fc1931d8] (equijoin condition = (t2.y = t3.y)) * t2 [companion set 0x7fc1931d8] * t3 [companion set 0x7fc1931d8] Companion set: 0x7fc1931b8:{{Fake.x, Fake.x}} Companion set: 0x7fc1931d8:{{Fake.x, Fake.x}, {Fake.y, Fake.y}} Total eligibility set for true: {} Selectivity of join (t2.y = t3.y): - fallback selectivity for (t2.y = t3.y) = 0.1 Selectivity of join [anti] (t1.x = t2.x): - fallback selectivity for (t1.x = t2.x) = 0.1 Constructed hypergraph: digraph G { # 2 edges t2 -> t3 [label="(t2.y = t3.y) (0.1)",arrowhead=none] e2 [shape=circle,width=.001,height=.001,label=""] t1 -> e2 [arrowhead=none,label="[anti] (t1.x = t2.x) (0.1)"] e2 -> t2 [label=""] e2 -> t3 [label=""] } [ FAILED ] MakeHypergraphTest.AntiJoin (0 ms) How to repeat: $ runtime_output_directory/merge_large_tests-t