Enhance this object by wrapping it in an extender object.
$extender_name: The base name of the extending class. The base name will be checked against the current database connection to allow driver-specific subclasses as well, using the same logic as the query objects themselves. For example, PagerDefault_mysql is the MySQL-specific override for PagerDefault.
QueryExtendableInterface The extender object, which now contains a reference to this object.
Overrides QueryExtendableInterface::extend
public function extend($extender_name) {
// The extender can be anywhere so this needs to go to the registry, which
// is surely loaded by now.
$class = $this->connection
->getDriverClass($extender_name, array(), TRUE);
return new $class($this, $this->connection);
}