mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge branch '10.3' into 10.4
This commit is contained in:
@ -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)
|
||||
{
|
||||
|
Reference in New Issue
Block a user