From e445be12028c0d33c0a7f0ed8693e3a67c0f999c Mon Sep 17 00:00:00 2001 From: provokateurin Date: Wed, 2 Oct 2024 11:55:27 +0200 Subject: [PATCH] fix(QueryBuilder): Account for aliases in output columns Signed-off-by: provokateurin --- lib/private/DB/QueryBuilder/QueryBuilder.php | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/private/DB/QueryBuilder/QueryBuilder.php b/lib/private/DB/QueryBuilder/QueryBuilder.php index b42b380e3d0..56c860bc42c 100644 --- a/lib/private/DB/QueryBuilder/QueryBuilder.php +++ b/lib/private/DB/QueryBuilder/QueryBuilder.php @@ -582,6 +582,9 @@ class QueryBuilder implements IQueryBuilder { if (is_array($column)) { $this->addOutputColumns($column); } elseif (is_string($column) && !str_contains($column, '*')) { + if (str_contains(strtolower($column), ' as ')) { + [, $column] = preg_split('/ as /i', $column); + } if (str_contains($column, '.')) { [, $column] = explode('.', $column); } @@ -591,14 +594,7 @@ class QueryBuilder implements IQueryBuilder { } public function getOutputColumns(): array { - return array_unique(array_map(function (string $column) { - if (str_contains($column, '.')) { - [, $column] = explode('.', $column); - return $column; - } else { - return $column; - } - }, $this->selectedColumns)); + return array_unique($this->selectedColumns); } /**