From 9877057d976c8c8372785b7237223590afd7181f Mon Sep 17 00:00:00 2001 From: Brian Stanley Date: Fri, 26 Sep 2025 12:29:14 -0400 Subject: [PATCH] Fix CSV export for Postgres when table is sorted on related column (#17960) * Fix CSV export for Postgres where table is sorted on related column * Update packages/actions/src/Exports/Jobs/PrepareCsvExport.php Signed-off-by: Dan Harrin --------- Signed-off-by: Dan Harrin Co-authored-by: Dan Harrin --- packages/actions/src/Exports/Jobs/PrepareCsvExport.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/actions/src/Exports/Jobs/PrepareCsvExport.php b/packages/actions/src/Exports/Jobs/PrepareCsvExport.php index 7183f1bdfe..59635a2dab 100644 --- a/packages/actions/src/Exports/Jobs/PrepareCsvExport.php +++ b/packages/actions/src/Exports/Jobs/PrepareCsvExport.php @@ -66,6 +66,7 @@ class PrepareCsvExport implements ShouldQueue /** @var Connection $databaseConnection */ $databaseConnection = $query->getConnection(); + $databaseGrammar = $query->getGrammar(); if ($databaseConnection->getDriverName() === 'pgsql') { $originalOrders = collect($query->getQuery()->orders) @@ -76,11 +77,15 @@ class PrepareCsvExport implements ShouldQueue return ($order['column'] ?? null) === $qualifiedKeyName; }) - ->unique(function (array $order): string { + ->unique(function (array $order) use ($databaseGrammar): string { if (($order['type'] ?? null) === 'Raw') { return 'raw:' . ($order['sql'] ?? ''); } + if ($databaseGrammar->isExpression($order['column'] ?? null)) { + return 'expression:' . $order['column']->getValue($databaseGrammar); + } + return 'column:' . ($order['column'] ?? ''); });