mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Re-commit in git:
MDEV-406: ANALYZE $stmt - Ported the old patch to new explain code - New SQL syntax (ANALYZE $stmt) - ANALYZE UPDATE/DELETE is now supported (because EXPLAIN UPDATE/DELETE is supported) - Basic counters are calculated for basic kinds of queries (still need to see what happens with join buffer, ORDER BY...LIMIT queries, etc)
This commit is contained in:
@@ -2282,6 +2282,9 @@ int THD::send_explain_fields(select_result *result)
|
||||
/*
|
||||
Populate the provided field_list with EXPLAIN output columns.
|
||||
this->lex->describe has the EXPLAIN flags
|
||||
|
||||
The set/order of columns must be kept in sync with
|
||||
Explain_query::print_explain and co.
|
||||
*/
|
||||
|
||||
void THD::make_explain_field_list(List<Item> &field_list)
|
||||
@@ -2317,11 +2320,25 @@ void THD::make_explain_field_list(List<Item> &field_list)
|
||||
item->maybe_null=1;
|
||||
field_list.push_back(item= new Item_return_int("rows", 10,
|
||||
MYSQL_TYPE_LONGLONG));
|
||||
if (lex->describe & DESCRIBE_EXTENDED)
|
||||
if (lex->analyze_stmt)
|
||||
{
|
||||
field_list.push_back(item= new Item_return_int("r_rows", 10,
|
||||
MYSQL_TYPE_LONGLONG));
|
||||
item->maybe_null=1;
|
||||
}
|
||||
|
||||
if (lex->analyze_stmt || lex->describe & DESCRIBE_EXTENDED)
|
||||
{
|
||||
field_list.push_back(item= new Item_float("filtered", 0.1234, 2, 4));
|
||||
item->maybe_null=1;
|
||||
}
|
||||
|
||||
if (lex->analyze_stmt)
|
||||
{
|
||||
field_list.push_back(item= new Item_float("r_filtered", 0.1234, 2, 4));
|
||||
item->maybe_null=1;
|
||||
}
|
||||
|
||||
item->maybe_null= 1;
|
||||
field_list.push_back(new Item_empty_string("Extra", 255, cs));
|
||||
}
|
||||
|
Reference in New Issue
Block a user