mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-7264: Assertion `0' failed in subselect_engine::get_identifier()
Switch EXPLAIN JSON from using subselect_engine::get_identifier() to the number from Item_subselect::unit. Remove subselect_union_engine::get_identifier() because it was added only for EXPLAIN JSON code.
This commit is contained in:
@ -778,3 +778,38 @@ EXPLAIN
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
#
|
||||||
|
# MDEV-7264: Assertion `0' failed in subselect_engine::get_identifier() on EXPLAIN JSON
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (1),(2);
|
||||||
|
CREATE TABLE t2 (b INT);
|
||||||
|
INSERT INTO t2 VALUES (3),(4);
|
||||||
|
EXPLAIN FORMAT=JSON SELECT * FROM t1 WHERE a <> ALL ( SELECT b FROM t2 );
|
||||||
|
EXPLAIN
|
||||||
|
{
|
||||||
|
"query_block": {
|
||||||
|
"select_id": 1,
|
||||||
|
"table": {
|
||||||
|
"table_name": "t1",
|
||||||
|
"access_type": "ALL",
|
||||||
|
"rows": 2,
|
||||||
|
"filtered": 100,
|
||||||
|
"attached_condition": "(not(<in_optimizer>(t1.a,t1.a in (subquery#2))))"
|
||||||
|
},
|
||||||
|
"subqueries": [
|
||||||
|
{
|
||||||
|
"query_block": {
|
||||||
|
"select_id": 2,
|
||||||
|
"table": {
|
||||||
|
"table_name": "t2",
|
||||||
|
"access_type": "ALL",
|
||||||
|
"rows": 2,
|
||||||
|
"filtered": 100
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
@ -167,3 +167,15 @@ EXPLAIN FORMAT=JSON SELECT * FROM t1 AS outer_t1 WHERE a <> ALL ( SELECT a FROM
|
|||||||
|
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-7264: Assertion `0' failed in subselect_engine::get_identifier() on EXPLAIN JSON
|
||||||
|
--echo #
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (1),(2);
|
||||||
|
|
||||||
|
CREATE TABLE t2 (b INT);
|
||||||
|
INSERT INTO t2 VALUES (3),(4);
|
||||||
|
|
||||||
|
EXPLAIN FORMAT=JSON SELECT * FROM t1 WHERE a <> ALL ( SELECT b FROM t2 );
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
|
||||||
|
@ -898,10 +898,10 @@ void Item_subselect::print(String *str, enum_query_type query_type)
|
|||||||
if (query_type == QT_EXPLAIN)
|
if (query_type == QT_EXPLAIN)
|
||||||
{
|
{
|
||||||
str->append("(subquery#");
|
str->append("(subquery#");
|
||||||
if (engine)
|
if (unit && unit->first_select())
|
||||||
{
|
{
|
||||||
char buf[64];
|
char buf[64];
|
||||||
ll2str(engine->get_identifier(), buf, 10, 0);
|
ll2str(unit->first_select()->select_number, buf, 10, 0);
|
||||||
str->append(buf);
|
str->append(buf);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -3732,10 +3732,6 @@ int subselect_union_engine::exec()
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
int subselect_union_engine::get_identifier()
|
|
||||||
{
|
|
||||||
return unit->first_select()->select_number;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Search for at least one row satisfying select condition
|
Search for at least one row satisfying select condition
|
||||||
|
@ -871,7 +871,6 @@ public:
|
|||||||
bool is_executed() const;
|
bool is_executed() const;
|
||||||
bool no_rows();
|
bool no_rows();
|
||||||
virtual enum_engine_type engine_type() { return UNION_ENGINE; }
|
virtual enum_engine_type engine_type() { return UNION_ENGINE; }
|
||||||
int get_identifier();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user