diff --git a/libraries/classes/DatabaseInterface.php b/libraries/classes/DatabaseInterface.php
index 08c12c8959..761bb5600b 100644
--- a/libraries/classes/DatabaseInterface.php
+++ b/libraries/classes/DatabaseInterface.php
@@ -1806,7 +1806,7 @@ class DatabaseInterface implements DbalInterface
if (! $hasGrantPrivilege) {
foreach ($this->getCurrentRolesAndHost() as [$role, $roleHost]) {
- $query = QueryGenerator::getInformationSchemaDataForGranteeRequest($role, $roleHost ?? '', $collation);
+ $query = QueryGenerator::getInformationSchemaDataForGranteeRequest($role, $roleHost, $collation);
$result = $this->tryQuery($query);
if ($result) {
@@ -1865,7 +1865,7 @@ class DatabaseInterface implements DbalInterface
if (! $hasCreatePrivilege) {
foreach ($this->getCurrentRolesAndHost() as [$role, $roleHost]) {
- $query = QueryGenerator::getInformationSchemaDataForCreateRequest($role, $roleHost ?? '', $collation);
+ $query = QueryGenerator::getInformationSchemaDataForCreateRequest($role, $roleHost, $collation);
$result = $this->tryQuery($query);
if ($result) {
@@ -1919,7 +1919,7 @@ class DatabaseInterface implements DbalInterface
$roles = $this->getCurrentRoles();
$this->currentRoleAndHost = array_map(static function (string $role) {
- return explode('@', $role);
+ return str_contains($role, '@') ? explode('@', $role) : [$role, ''];
}, $roles);
}
diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon
index 850bb9e050..62e60fda60 100644
--- a/phpstan-baseline.neon
+++ b/phpstan-baseline.neon
@@ -15225,11 +15225,6 @@ parameters:
count: 2
path: libraries/classes/DatabaseInterface.php
- -
- message: "#^Variable \\$roleHost on left side of \\?\\? always exists and is not nullable\\.$#"
- count: 2
- path: libraries/classes/DatabaseInterface.php
-
-
message: "#^Cannot call method escapeString\\(\\) on mixed\\.$#"
count: 1
diff --git a/psalm-baseline.xml b/psalm-baseline.xml
index c6add47e70..73fa87c560 100644
--- a/psalm-baseline.xml
+++ b/psalm-baseline.xml
@@ -5684,10 +5684,8 @@
-
+
$this->extension === null
- ''
- ''
$result_target[]
@@ -5908,10 +5906,6 @@
$databases[$database_name]['SCHEMA_TABLES']
$databases[$database_name]['SCHEMA_TABLE_ROWS']
-
- $roleHost
- $roleHost
-
diff --git a/test/classes/DatabaseInterfaceTest.php b/test/classes/DatabaseInterfaceTest.php
index 8d2722c697..b6fab1e98d 100644
--- a/test/classes/DatabaseInterfaceTest.php
+++ b/test/classes/DatabaseInterfaceTest.php
@@ -163,7 +163,7 @@ class DatabaseInterfaceTest extends AbstractTestCase
[['role', 'localhost'], ['role2', 'localhost']],
],
['8.0.0 - MySQL Community Server - GPL', true, [['@`localhost`']], ['@localhost'], [['', 'localhost']]],
- ['10.5.0-MariaDB', true, [['`role`@`localhost`']], ['role@localhost'], [['role', 'localhost']]],
+ ['10.5.0-MariaDB', true, [['`role`']], ['role'], [['role', '']]],
[
'10.5.0-MariaDB',
true,