diff --git a/core/lib/Drupal/Core/Database/Connection.php b/core/lib/Drupal/Core/Database/Connection.php index 358fa71..94396e0 100644 --- a/core/lib/Drupal/Core/Database/Connection.php +++ b/core/lib/Drupal/Core/Database/Connection.php @@ -659,15 +659,22 @@ protected function expandArguments(&$query, &$args) { */ public function getDriverClass($class) { if (empty($this->driverClasses[$class])) { - $driver = $this->driver(); + $namespaces = ['', 'Drupal\\Core\\Database', 'Drupal\\Core\\Database\\Query']; if (!empty($this->connectionOptions['namespace'])) { - $driver_class = $this->connectionOptions['namespace'] . '\\' . $class; + $namespaces[] = $this->connectionOptions['namespace']; } else { // Fallback for Drupal 7 settings.php. - $driver_class = "Drupal\\Core\\Database\\Driver\\{$driver}\\{$class}"; + $namespaces[] = 'Drupal\\Core\\Database\\Driver\\' . $this->driver(); } - $this->driverClasses[$class] = class_exists($driver_class) ? $driver_class : $class; + do { + if ($namespace = array_pop($namespaces)) { + $this->driverClasses[$class] = $namespace . '\\' . $class; + } + else { + $this->driverClasses[$class] = $class; + } + } while (!class_exists($this->driverClasses[$class]) && $namespaces); } return $this->driverClasses[$class]; } diff --git a/core/lib/Drupal/Core/Database/Driver/mysql/Delete.php b/core/lib/Drupal/Core/Database/Driver/mysql/Delete.php deleted file mode 100644 index de0db11..0000000 --- a/core/lib/Drupal/Core/Database/Driver/mysql/Delete.php +++ /dev/null @@ -1,12 +0,0 @@ -