From 94f70f8b68dd9c395ca023910f8ae357dbc545e4 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Thu, 19 Dec 2024 01:43:03 +0000 Subject: [PATCH] Refactor getColumnNames() Signed-off-by: Kamil Tekiela --- phpstan-baseline.neon | 2 +- psalm-baseline.xml | 8 ++------ src/DatabaseInterface.php | 8 +++++++- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 2c4fa66162..6747eaf1ef 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -6958,7 +6958,7 @@ parameters: path: src/DatabaseInterface.php - - message: '#^Method PhpMyAdmin\\DatabaseInterface\:\:getColumnNames\(\) should return list\ but returns array\\.$#' + message: '#^Method PhpMyAdmin\\DatabaseInterface\:\:getColumnNames\(\) should return list\ but returns list\\.$#' identifier: return.type count: 1 path: src/DatabaseInterface.php diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 52d039744f..0a9864e7c7 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -4229,9 +4229,6 @@ - - fetchResultSimple($sql, 'Field', $connectionType)]]> - @@ -4300,10 +4297,9 @@ * Visible?: string, * Expression?: string|null * }>]]> - - + fetchAllAssoc(), 'Field')]]> ]]> - + diff --git a/src/DatabaseInterface.php b/src/DatabaseInterface.php index 1ff6868e07..acd8a4e598 100644 --- a/src/DatabaseInterface.php +++ b/src/DatabaseInterface.php @@ -989,8 +989,14 @@ class DatabaseInterface implements DbalInterface ): array { $sql = QueryGenerator::getColumnsSql($database, $table); + $result = $this->tryQuery($sql, $connectionType, cacheAffectedRows: false); + + if ($result === false) { + return []; + } + // We only need the 'Field' column which contains the table's column names - return $this->fetchResultSimple($sql, 'Field', $connectionType); + return array_column($result->fetchAllAssoc(), 'Field'); } /**