summaryrefslogtreecommitdiff
path: root/sql/mysqld.cc
diff options
context:
space:
mode:
authorSergei Petrunia <psergey@askmonty.org>2018-08-15 15:21:37 +0300
committerSergei Petrunia <psergey@askmonty.org>2018-08-15 15:25:14 +0300
commitb62ac161856570e9a0e92d17de1e3dd31d54410f (patch)
tree59748a25c8e5fe772ce27e09a7087682003a81e2 /sql/mysqld.cc
parent9dfef6e29b98459a5077adb95d5b989d39e0db24 (diff)
downloadmariadb-git-b62ac161856570e9a0e92d17de1e3dd31d54410f.tar.gz
MDEV-6439: Server crashes in Explain_union::print_explain with explain in slow log, tis620 charset
Item_subselect::is_expensive() used to return FALSE (Inexpensive) whenever it saw that one of SELECTs in the Subquery's UNION is degenerate. It ignored the fact that other parts of the UNION might not be inexpensive, including the case where pther parts of the UNION have no query plan yet. For a subquery in form col >= ANY (SELECT 'foo' UNION SELECT 'bar') this would cause the query to be considered inexpensive when there is no query plan for the second part of the UNION, which in turn would cause the SELECT 'foo' to compute and free itself while still inside JOIN::optimize for that SELECT (See MDEV comment for full description).
Diffstat (limited to 'sql/mysqld.cc')
0 files changed, 0 insertions, 0 deletions