mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-29179 Condition pushdown from HAVING into WHERE is not shown in optimizer trace
JOIN::optimize_inner(), Condition pushdown from HAVING into WHERE not shown in optimizer trace.
This commit is contained in:
@ -9041,5 +9041,24 @@ JS
|
|||||||
drop table t1,t2,t3,t10,t11;
|
drop table t1,t2,t3,t10,t11;
|
||||||
set optimizer_trace=DEFAULT;
|
set optimizer_trace=DEFAULT;
|
||||||
#
|
#
|
||||||
|
# MDEV-29179 Condition pushdown from HAVING into WHERE is not shown in optimizer trace
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT, b VARCHAR(1), KEY (a), KEY(b,a)) ENGINE=MEMORY;
|
||||||
|
INSERT INTO t1 VALUES (4,'n'),(1,'h'),(NULL,'w');
|
||||||
|
SET optimizer_trace= 'enabled=on';
|
||||||
|
SELECT b, a FROM t1 WHERE b <> 'p' OR a = 4 GROUP BY b, a HAVING a <= 7;
|
||||||
|
b a
|
||||||
|
h 1
|
||||||
|
n 4
|
||||||
|
SELECT json_detailed(json_extract(trace, '$**.steps[*].join_optimization.steps[*].condition_pushdown_from_having') ), JSON_VALID(trace) FROM information_schema.optimizer_trace;
|
||||||
|
json_detailed(json_extract(trace, '$**.steps[*].join_optimization.steps[*].condition_pushdown_from_having') ) JSON_VALID(trace)
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"conds": "(t1.b <> 'p' or multiple equal(4, t1.a)) and t1.a <= 7",
|
||||||
|
"having": null
|
||||||
|
}
|
||||||
|
] 1
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
# End of 10.4 tests
|
# End of 10.4 tests
|
||||||
#
|
#
|
||||||
|
@ -790,6 +790,17 @@ from information_schema.optimizer_trace;
|
|||||||
drop table t1,t2,t3,t10,t11;
|
drop table t1,t2,t3,t10,t11;
|
||||||
set optimizer_trace=DEFAULT;
|
set optimizer_trace=DEFAULT;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-29179 Condition pushdown from HAVING into WHERE is not shown in optimizer trace
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a INT, b VARCHAR(1), KEY (a), KEY(b,a)) ENGINE=MEMORY;
|
||||||
|
INSERT INTO t1 VALUES (4,'n'),(1,'h'),(NULL,'w');
|
||||||
|
SET optimizer_trace= 'enabled=on';
|
||||||
|
SELECT b, a FROM t1 WHERE b <> 'p' OR a = 4 GROUP BY b, a HAVING a <= 7;
|
||||||
|
SELECT json_detailed(json_extract(trace, '$**.steps[*].join_optimization.steps[*].condition_pushdown_from_having') ), JSON_VALID(trace) FROM information_schema.optimizer_trace;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 10.4 tests
|
--echo # End of 10.4 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -2164,6 +2164,10 @@ JOIN::optimize_inner()
|
|||||||
select_lex->attach_to_conds,
|
select_lex->attach_to_conds,
|
||||||
&cond_value);
|
&cond_value);
|
||||||
sel->attach_to_conds.empty();
|
sel->attach_to_conds.empty();
|
||||||
|
Json_writer_object wrapper(thd);
|
||||||
|
Json_writer_object pushd(thd, "condition_pushdown_from_having");
|
||||||
|
pushd.add("conds", conds);
|
||||||
|
pushd.add("having", having);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user