Merge pull request #20088 from liviuconcioiu/skip
Add Skip Explain SQL button for queries with FORMAT
This commit is contained in:
commit
5df8f55cb4
@ -485,6 +485,10 @@ class Generator
|
||||
$isSelect = preg_match('@^SELECT[[:space:]]+@i', $sqlQuery) === 1;
|
||||
if (! empty($config->settings['SQLQuery']['Explain']) && ! $queryTooBig) {
|
||||
$explainParams = $urlParams;
|
||||
$explainRegex = '@^EXPLAIN[[:space:]]+(?:ANALYZE[[:space:]]+)?'
|
||||
. '(?:FORMAT=(?:JSON|TREE|TRADITIONAL)[[:space:]]+)?';
|
||||
$analyzeRegex = '@^ANALYZE[[:space:]]+(?:FORMAT=(?:JSON|TRADITIONAL)[[:space:]]+)?';
|
||||
|
||||
if ($isSelect) {
|
||||
$explainParams['sql_query'] = 'EXPLAIN ' . $sqlQuery;
|
||||
$explainLink = '<div class="col-auto">'
|
||||
@ -494,8 +498,8 @@ class Generator
|
||||
__('Explain SQL'),
|
||||
['class' => 'btn btn-link'],
|
||||
) . '</div>' . "\n";
|
||||
} elseif (preg_match('@^EXPLAIN[[:space:]]+SELECT[[:space:]]+@i', $sqlQuery) === 1) {
|
||||
$explainParams['sql_query'] = mb_substr($sqlQuery, 8);
|
||||
} elseif (preg_match($explainRegex . 'SELECT[[:space:]]+@i', $sqlQuery) === 1) {
|
||||
$explainParams['sql_query'] = preg_replace($explainRegex . '@i', '', $sqlQuery, 1);
|
||||
$explainLink = '<div class="col-auto">'
|
||||
. self::linkOrButton(
|
||||
Url::getFromRoute('/import', $explainParams),
|
||||
@ -503,6 +507,16 @@ class Generator
|
||||
__('Skip Explain SQL'),
|
||||
['class' => 'btn btn-link'],
|
||||
) . '</div>' . "\n";
|
||||
} elseif (preg_match($analyzeRegex . 'SELECT[[:space:]]+@i', $sqlQuery) === 1) {
|
||||
$explainParams['sql_query'] = preg_replace($analyzeRegex . '@i', '', $sqlQuery, 1);
|
||||
|
||||
$explainLink = '<div class="col-auto">'
|
||||
. self::linkOrButton(
|
||||
Url::getFromRoute('/import', $explainParams),
|
||||
null,
|
||||
__('Skip Analyze SQL'),
|
||||
['class' => 'btn btn-link'],
|
||||
) . '</div>' . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user