Skip to content

Commit 5a1ca6b

Browse files
committed
fix: orderBy() does not support RawSql
1 parent 3f04fa3 commit 5a1ca6b

1 file changed

Lines changed: 22 additions & 3 deletions

File tree

src/Models/QueueJobModel.php

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
<?php
22

3+
declare(strict_types=1);
4+
35
namespace CodeIgniter\Queue\Models;
46

57
use CodeIgniter\Database\BaseBuilder;
6-
use CodeIgniter\Database\RawSql;
78
use CodeIgniter\I18n\Time;
89
use CodeIgniter\Model;
910
use CodeIgniter\Queue\Entities\QueueJob;
@@ -102,9 +103,27 @@ private function setPriority(BaseBuilder $builder, array $priority): BaseBuilder
102103

103104
if ($priority !== ['default']) {
104105
if ($this->db->DBDriver === 'SQLite3') {
105-
$builder->orderBy(new RawSql('CASE priority ' . implode(' ', array_map(static fn ($value, $key) => "WHEN '{$value}' THEN {$key}", $priority, array_keys($priority))) . ' END'));
106+
$builder->orderBy(
107+
'CASE priority '
108+
. implode(
109+
' ',
110+
array_map(static fn ($value, $key) => "WHEN '{$value}' THEN {$key}", $priority, array_keys($priority))
111+
)
112+
. ' END',
113+
'',
114+
false
115+
);
106116
} else {
107-
$builder->orderBy(new RawSql('FIELD(priority, ' . implode(',', array_map(static fn ($value) => "'{$value}'", $priority)) . ')'));
117+
$builder->orderBy(
118+
'FIELD(priority, '
119+
. implode(
120+
',',
121+
array_map(static fn ($value) => "'{$value}'", $priority)
122+
)
123+
. ')',
124+
'',
125+
false
126+
);
108127
}
109128
}
110129

0 commit comments

Comments
 (0)