mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 16:50:48 +00:00
Merge pull request #12541 from BohuTANG/mysql_explain
Fix EXPLAIN format for MySQL client
This commit is contained in:
commit
0f6599c9e5
@ -109,16 +109,6 @@ bool ParserQueryWithOutput::parseImpl(Pos & pos, ASTPtr & node, Expected & expec
|
||||
query_with_output.children.push_back(query_with_output.settings_ast);
|
||||
}
|
||||
|
||||
if (auto * ast = query->as<ASTExplainQuery>())
|
||||
{
|
||||
/// Set default format TSV, because output is a single string column.
|
||||
if (!ast->format)
|
||||
{
|
||||
ast->format = std::make_shared<ASTIdentifier>("TSV");
|
||||
ast->children.push_back(ast->format);
|
||||
}
|
||||
}
|
||||
|
||||
node = std::move(query);
|
||||
return true;
|
||||
}
|
||||
|
@ -192,6 +192,36 @@ def test_mysql_replacement_query(mysql_client, server_address):
|
||||
assert stdout == 'DATABASE()\ndefault\n'
|
||||
|
||||
|
||||
def test_mysql_explain(mysql_client, server_address):
|
||||
# EXPLAIN SELECT 1
|
||||
code, (stdout, stderr) = mysql_client.exec_run('''
|
||||
mysql --protocol tcp -h {host} -P {port} default -u default --password=123
|
||||
-e "EXPLAIN SELECT 1;"
|
||||
'''.format(host=server_address, port=server_port), demux=True)
|
||||
assert code == 0
|
||||
|
||||
# EXPLAIN AST SELECT 1
|
||||
code, (stdout, stderr) = mysql_client.exec_run('''
|
||||
mysql --protocol tcp -h {host} -P {port} default -u default --password=123
|
||||
-e "EXPLAIN AST SELECT 1;"
|
||||
'''.format(host=server_address, port=server_port), demux=True)
|
||||
assert code == 0
|
||||
|
||||
# EXPLAIN PLAN SELECT 1
|
||||
code, (stdout, stderr) = mysql_client.exec_run('''
|
||||
mysql --protocol tcp -h {host} -P {port} default -u default --password=123
|
||||
-e "EXPLAIN PLAN SELECT 1;"
|
||||
'''.format(host=server_address, port=server_port), demux=True)
|
||||
assert code == 0
|
||||
|
||||
# EXPLAIN PIPELINE graph=1 SELECT 1
|
||||
code, (stdout, stderr) = mysql_client.exec_run('''
|
||||
mysql --protocol tcp -h {host} -P {port} default -u default --password=123
|
||||
-e "EXPLAIN PIPELINE graph=1 SELECT 1;"
|
||||
'''.format(host=server_address, port=server_port), demux=True)
|
||||
assert code == 0
|
||||
|
||||
|
||||
def test_mysql_federated(mysql_server, server_address):
|
||||
# For some reason it occasionally fails without retries.
|
||||
retries = 100
|
||||
|
Loading…
Reference in New Issue
Block a user