Skip to content

Commit

Permalink
Merge pull request #134 from socialblue/fix-empty-traces-issue-in-hor…
Browse files Browse the repository at this point in the history
…izon-jobs

fix: don't break dump on broken query.
  • Loading branch information
mbroersen committed Apr 8, 2023
2 parents 8dc3637 + 0535281 commit 1b7bc06
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions src/Helper/QueryBuilderHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -97,20 +97,28 @@ public static function analyzeByBuilder($builder)
*/
public static function analyze($rawSql, $bindings)
{
$queryData = '';
$sqlOptimized = '';
$errorMessage = '';
$query = [
'sql' => $rawSql,
'bindings' => $bindings,
];
$queryData = DB::connection()->select('EXPLAIN ' . $rawSql, $bindings);

DB::connection()->getPdo()->setAttribute(\PDO::ATTR_EMULATE_PREPARES, true);
$showWarnings = DB::connection()->getPdo()->query("SHOW WARNINGS");
$sqlOptimized = $showWarnings->fetchColumn(2);
DB::connection()->getPdo()->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);
try {
$queryData = DB::connection()->select('EXPLAIN ' . $rawSql, $bindings);
DB::connection()->getPdo()->setAttribute(\PDO::ATTR_EMULATE_PREPARES, true);
$showWarnings = DB::connection()->getPdo()->query("SHOW WARNINGS");
$sqlOptimized = $showWarnings->fetchColumn(2);
DB::connection()->getPdo()->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);
} catch (\Exception $e) {
$errorMessage = $e->getMessage();
}

return [
'queryParts' => $queryData,
'query' => $query,
'error' => $errorMessage,
'optimized' => $sqlOptimized,
];
}
Expand Down

0 comments on commit 1b7bc06

Please sign in to comment.