diff --git a/src/Bridges/DatabaseTracy/ConnectionPanel.php b/src/Bridges/DatabaseTracy/ConnectionPanel.php index c92992bf8..4eb007344 100644 --- a/src/Bridges/DatabaseTracy/ConnectionPanel.php +++ b/src/Bridges/DatabaseTracy/ConnectionPanel.php @@ -132,6 +132,7 @@ public function getPanel(): ?string } } $query[] = $explain; + $query[] = Helpers::detectSqlTypeClass($sql); $queries[] = $query; } diff --git a/src/Bridges/DatabaseTracy/templates/ConnectionPanel.panel.phtml b/src/Bridges/DatabaseTracy/templates/ConnectionPanel.panel.phtml index 8cdeae264..4691b1ddb 100644 --- a/src/Bridges/DatabaseTracy/templates/ConnectionPanel.panel.phtml +++ b/src/Bridges/DatabaseTracy/templates/ConnectionPanel.panel.phtml @@ -12,6 +12,9 @@ use Tracy\Helpers; #tracy-debug td.nette-DbConnectionPanel-sql { background: white !important } #tracy-debug .nette-DbConnectionPanel-source { color: #BBB !important } #tracy-debug .nette-DbConnectionPanel-explain td { white-space: pre } + #tracy-debug td.nette-DbConnectionPanel-type-insert { background: #E7ffE7 !important } + #tracy-debug td.nette-DbConnectionPanel-type-delete { background: #FFE7E7 !important } + #tracy-debug td.nette-DbConnectionPanel-type-update { background: #E7FBFF !important }

Queries: Time msSQL QueryRows @@ -34,7 +37,7 @@ use Tracy\Helpers;
explain - + diff --git a/src/Database/Helpers.php b/src/Database/Helpers.php index 48ce72f2c..fd8283239 100644 --- a/src/Database/Helpers.php +++ b/src/Database/Helpers.php @@ -296,4 +296,17 @@ public static function findDuplicates(\PDOStatement $statement): string } return implode(', ', $duplicates); } + + + /** + * Detect type of query + */ + public static function detectSqlTypeClass(string $sql): string + { + if (preg_match('#^(SELECT|INSERT|UPDATE|DELETE|SET).*#u', Nette\Utils\Strings::upper($sql), $m) && isset($m[1])) { + return ' nette-DbConnectionPanel-type-' . Nette\Utils\Strings::lower($m[1]); + } + + return ''; + } }