Problem/Motivation
While working on #3217531: Deprecate Connection::getDriverClass mechanism, make its callers abstract, and use standard autoloading, we came across the fact that Connection::getDriverClass
is also used to resolve overrides to select query extenders. This is not easily solvable with direct autoloading because the to-be-overridden class resides outside of the database driver namespaces; also, while the db driver specific classes are all necessarily extensions of the Core\Database ones, the extenders may be freely added by any module.
Proposed resolution
Try using backend-overrideable services, adding a factory for each extender that will then instantiate extender objects.