Skip to content

Commit 1b7bc06

Browse files
authored
Merge pull request #134 from socialblue/fix-empty-traces-issue-in-horizon-jobs
fix: don't break dump on broken query.
2 parents 8dc3637 + 0535281 commit 1b7bc06

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

src/Helper/QueryBuilderHelper.php

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,20 +97,28 @@ public static function analyzeByBuilder($builder)
9797
*/
9898
public static function analyze($rawSql, $bindings)
9999
{
100+
$queryData = '';
101+
$sqlOptimized = '';
102+
$errorMessage = '';
100103
$query = [
101104
'sql' => $rawSql,
102105
'bindings' => $bindings,
103106
];
104-
$queryData = DB::connection()->select('EXPLAIN ' . $rawSql, $bindings);
105107

106-
DB::connection()->getPdo()->setAttribute(\PDO::ATTR_EMULATE_PREPARES, true);
107-
$showWarnings = DB::connection()->getPdo()->query("SHOW WARNINGS");
108-
$sqlOptimized = $showWarnings->fetchColumn(2);
109-
DB::connection()->getPdo()->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);
108+
try {
109+
$queryData = DB::connection()->select('EXPLAIN ' . $rawSql, $bindings);
110+
DB::connection()->getPdo()->setAttribute(\PDO::ATTR_EMULATE_PREPARES, true);
111+
$showWarnings = DB::connection()->getPdo()->query("SHOW WARNINGS");
112+
$sqlOptimized = $showWarnings->fetchColumn(2);
113+
DB::connection()->getPdo()->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);
114+
} catch (\Exception $e) {
115+
$errorMessage = $e->getMessage();
116+
}
110117

111118
return [
112119
'queryParts' => $queryData,
113120
'query' => $query,
121+
'error' => $errorMessage,
114122
'optimized' => $sqlOptimized,
115123
];
116124
}

0 commit comments

Comments
 (0)