]> source.dussan.org Git - nextcloud-server.git/commitdiff
fix(QueryBuilder): Account for aliases in output columns fix/querybuilder/output-columns-aliases 48522/head
authorprovokateurin <kate@provokateurin.de>
Wed, 2 Oct 2024 09:55:27 +0000 (11:55 +0200)
committerprovokateurin <kate@provokateurin.de>
Wed, 2 Oct 2024 09:55:27 +0000 (11:55 +0200)
Signed-off-by: provokateurin <kate@provokateurin.de>
lib/private/DB/QueryBuilder/QueryBuilder.php

index b42b380e3d0fad1a98feefdc5b9828dcaae92b23..56c860bc42c1389ee98b5c59d37fa4c2423e63c0 100644 (file)
@@ -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);
        }
 
        /**