|
SET optimizer_trace= 'enabled=on';
|
|
CREATE TABLE t (col_bit BIT) ENGINE=MyISAM;
|
INSERT INTO t VALUES (1);
|
|
SELECT * FROM t t1 WHERE EXISTS ( SELECT * FROM t t2 WHERE t2.col_bit <= t1.col_bit );
|
|
select json_valid(trace), json_compact(trace) from information_schema.optimizer_trace;
|
|
# Cleanup
|
DROP TABLE t;
|
|
10.5 b8f4b984
|
SELECT * FROM t t1 WHERE EXISTS ( SELECT * FROM t t2 WHERE t2.col_bit <= t1.col_bit );
|
col_bit
|
|
select json_valid(trace), json_compact(trace) from information_schema.optimizer_trace;
|
json_valid(trace) json_compact(trace)
|
0 NULL
|
Warnings:
|
Warning 4036 Character disallowed in JSON in argument 1 to function 'json_compact' at position 2451
|
The problematic part of the trace is
{
|
"condition_on_constant_tables": "<in_optimizer>(1,exists(/* select#2 */ select 1 from t t2 where t2.col_bit <= ^A limit 1))",
|
"evaluated": "false",
|
"cause": "expensive cond"
|
},
|
{
|
"attaching_conditions_to_tables": {
|
"original_condition": "<in_optimizer>(1,exists(/* select#2 */ select 1 from t t2 where t2.col_bit <= ^A limit 1))",
|
"attached_conditions_computation": [],
|
"attached_conditions_summary": []
|
}
|
},
|
{
|
"join_optimization": {
|
"select_id": 2,
|
"steps": [
|
{
|
"condition_processing": {
|
"condition": "WHERE",
|
"original_condition": "t2.col_bit <= ^A",
|
"steps": [
|
{
|
"transformation": "equality_propagation",
|
"resulting_condition": "t2.col_bit <= ^A"
|
},
|
{
|
"transformation": "constant_propagation",
|
"resulting_condition": "t2.col_bit <= ^A"
|
},
|
{
|
"transformation": "trivial_condition_removal",
|
"resulting_condition": "t2.col_bit <= ^A"
|
}
|
where ^A represent the problematic symbols.
|