From 897e3a97a1cc1aab267ce891d6161604ca11c1cd Mon Sep 17 00:00:00 2001 From: Lucas Lins Date: Fri, 29 Oct 2021 17:26:15 -0300 Subject: [PATCH 1/2] Solving QueryBuilder problem when using postgresql The problem occurs when a querybuilder is assembled for postgresql, since part of the code was dependent on Mysql, added some changes were made so that it accepts both MySQL and PostgreSQL. --- src/api/TotalRecordsController.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/api/TotalRecordsController.php b/src/api/TotalRecordsController.php index 8a07433..f872812 100644 --- a/src/api/TotalRecordsController.php +++ b/src/api/TotalRecordsController.php @@ -63,7 +63,7 @@ public function handle(NovaRequest $request) } $seriesSql .= "then ".$calculation." else 0 end) as '".$labelList[$seriesKey]."'"; } else { - $seriesSql .= ", SUM(CASE WHEN ".$filter->key." ".($filter->operator ?? "=")." '".$filter->value."' then ".$calculation." else 0 end) as '".$labelList[$seriesKey]."'"; + $seriesSql .= ", SUM(CASE WHEN ".$filter->key." ".($filter->operator ?? "=")." '".$filter->value."' then ".$calculation." else 0 end) as \"".$labelList[$seriesKey]."\""; } } } @@ -134,7 +134,15 @@ public function handle(NovaRequest $request) $query = $model::selectRaw('HOUR('.$xAxisColumn.') AS cat, HOUR('.$xAxisColumn.') AS catorder, sum('.$calculation.') counted'.$seriesSql) ->join($joinInformation['joinTable'], $joinInformation['joinColumnFirst'], $joinInformation['joinEqual'], $joinInformation['joinColumnSecond']); } else { - $query = $model::selectRaw('HOUR('.$xAxisColumn.') AS cat, HOUR('.$xAxisColumn.') AS catorder, sum('.$calculation.') counted'.$seriesSql); + if($connectionName == 'pgsql'){ + //$query = $model::selectRaw('HOUR('.$xAxisColumn.') AS cat, HOUR('.$xAxisColumn.') AS catorder, sum('.$calculation.') counted'.$seriesSql); + $query = $model::selectRaw("to_char(DATE_TRUNC('hour', ".$xAxisColumn."), 'HH24:MI:SS') AS cat, to_char(DATE_TRUNC('hour', ".$xAxisColumn."), 'HH24:MI:SS') AS catorder, sum(".$calculation.") counted".$seriesSql); + + } + else{ + $query = $model::selectRaw('HOUR('.$xAxisColumn.') AS cat, HOUR('.$xAxisColumn.') AS catorder, sum('.$calculation.') counted'.$seriesSql); + + } } if(is_numeric($advanceFilterSelected)){ From 4c8f9e74e66e3ef7de4d5c00e48d4323e5d10e9d Mon Sep 17 00:00:00 2001 From: Lucas Lins Date: Mon, 20 Feb 2023 16:46:22 -0300 Subject: [PATCH 2/2] Update TotalRecordsController.php Remove comment in line 137 --- src/api/TotalRecordsController.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/api/TotalRecordsController.php b/src/api/TotalRecordsController.php index f872812..14271d1 100644 --- a/src/api/TotalRecordsController.php +++ b/src/api/TotalRecordsController.php @@ -135,7 +135,6 @@ public function handle(NovaRequest $request) ->join($joinInformation['joinTable'], $joinInformation['joinColumnFirst'], $joinInformation['joinEqual'], $joinInformation['joinColumnSecond']); } else { if($connectionName == 'pgsql'){ - //$query = $model::selectRaw('HOUR('.$xAxisColumn.') AS cat, HOUR('.$xAxisColumn.') AS catorder, sum('.$calculation.') counted'.$seriesSql); $query = $model::selectRaw("to_char(DATE_TRUNC('hour', ".$xAxisColumn."), 'HH24:MI:SS') AS cat, to_char(DATE_TRUNC('hour', ".$xAxisColumn."), 'HH24:MI:SS') AS catorder, sum(".$calculation.") counted".$seriesSql); }