Skip to content
Permalink
Browse files
Merge branch '10.3' into 10.4
  • Loading branch information
sanja-byelkin committed Nov 2, 2022
2 parents 1a3859f + 3303748 commit 0946c99
Show file tree
Hide file tree
Showing 8 changed files with 89 additions and 1 deletion.
@@ -7384,6 +7384,17 @@ a
drop table t1,t2,t3;
# End of 10.2 tests
#
# MDEV-29926: ASAN heap-use-after-free in Explain_query::~Explain_query
#
CREATE TABLE t (a VARCHAR(1)) CHARACTER SET utf8mb3;
EXECUTE IMMEDIATE "SELECT COUNT(*) FROM t WHERE a < (SELECT 'x')";
COUNT(*)
0
DROP TABLE t;
#
# End of 10.3 tests
#
#
# Start of 10.4 tests
#
#
@@ -6290,6 +6290,20 @@ drop table t1,t2,t3;

--echo # End of 10.2 tests

--echo #
--echo # MDEV-29926: ASAN heap-use-after-free in Explain_query::~Explain_query
--echo #

CREATE TABLE t (a VARCHAR(1)) CHARACTER SET utf8mb3;
EXECUTE IMMEDIATE "SELECT COUNT(*) FROM t WHERE a < (SELECT 'x')";

# Cleanup
DROP TABLE t;

--echo #
--echo # End of 10.3 tests
--echo #


--echo #
--echo # Start of 10.4 tests
@@ -7384,6 +7384,17 @@ a
drop table t1,t2,t3;
# End of 10.2 tests
#
# MDEV-29926: ASAN heap-use-after-free in Explain_query::~Explain_query
#
CREATE TABLE t (a VARCHAR(1)) CHARACTER SET utf8mb3;
EXECUTE IMMEDIATE "SELECT COUNT(*) FROM t WHERE a < (SELECT 'x')";
COUNT(*)
0
DROP TABLE t;
#
# End of 10.3 tests
#
#
# Start of 10.4 tests
#
#
@@ -7377,6 +7377,17 @@ a
drop table t1,t2,t3;
# End of 10.2 tests
#
# MDEV-29926: ASAN heap-use-after-free in Explain_query::~Explain_query
#
CREATE TABLE t (a VARCHAR(1)) CHARACTER SET utf8mb3;
EXECUTE IMMEDIATE "SELECT COUNT(*) FROM t WHERE a < (SELECT 'x')";
COUNT(*)
0
DROP TABLE t;
#
# End of 10.3 tests
#
#
# Start of 10.4 tests
#
#
@@ -7375,6 +7375,17 @@ a
drop table t1,t2,t3;
# End of 10.2 tests
#
# MDEV-29926: ASAN heap-use-after-free in Explain_query::~Explain_query
#
CREATE TABLE t (a VARCHAR(1)) CHARACTER SET utf8mb3;
EXECUTE IMMEDIATE "SELECT COUNT(*) FROM t WHERE a < (SELECT 'x')";
COUNT(*)
0
DROP TABLE t;
#
# End of 10.3 tests
#
#
# Start of 10.4 tests
#
#
@@ -7390,6 +7390,17 @@ a
drop table t1,t2,t3;
# End of 10.2 tests
#
# MDEV-29926: ASAN heap-use-after-free in Explain_query::~Explain_query
#
CREATE TABLE t (a VARCHAR(1)) CHARACTER SET utf8mb3;
EXECUTE IMMEDIATE "SELECT COUNT(*) FROM t WHERE a < (SELECT 'x')";
COUNT(*)
0
DROP TABLE t;
#
# End of 10.3 tests
#
#
# Start of 10.4 tests
#
#
@@ -7375,6 +7375,17 @@ a
drop table t1,t2,t3;
# End of 10.2 tests
#
# MDEV-29926: ASAN heap-use-after-free in Explain_query::~Explain_query
#
CREATE TABLE t (a VARCHAR(1)) CHARACTER SET utf8mb3;
EXECUTE IMMEDIATE "SELECT COUNT(*) FROM t WHERE a < (SELECT 'x')";
COUNT(*)
0
DROP TABLE t;
#
# End of 10.3 tests
#
#
# Start of 10.4 tests
#
#
@@ -1204,6 +1204,15 @@ JOIN::prepare(TABLE_LIST *tables_init,
// simple check that we got usable conds
dbug_print_item(conds);

/*
It is hack which force creating EXPLAIN object always on runt-time arena
(because very top JOIN::prepare executes always with runtime arena, but
constant subquery like (SELECT 'x') can be called with statement arena
during prepare phase of top SELECT).
*/
if (!(thd->lex->context_analysis_only & CONTEXT_ANALYSIS_ONLY_PREPARE))
create_explain_query_if_not_exists(thd->lex, thd->mem_root);

if (select_lex->handle_derived(thd->lex, DT_PREPARE))
DBUG_RETURN(-1);

@@ -1654,7 +1663,6 @@ bool JOIN::build_explain()
int JOIN::optimize()
{
int res= 0;
create_explain_query_if_not_exists(thd->lex, thd->mem_root);
join_optimization_state init_state= optimization_state;
if (select_lex->pushdown_select)
{

0 comments on commit 0946c99

Please sign in to comment.