=== modified file 'includes/database/query.inc'
--- includes/database/query.inc	2010-03-09 05:01:45 +0000
+++ includes/database/query.inc	2010-05-18 19:43:55 +0000
@@ -197,6 +197,16 @@ interface QueryAlterableInterface {
    *   The previously attached metadata object, or NULL if one doesn't exist.
    */
   public function getMetaData($key);
+
+  /**
+   * Change the connection.
+   *
+   * @param $connection
+   *   The connection.
+   * @return QueryAlterableInterface
+   *   The called object.
+   */
+  public function changeConnection(DatabaseConnection $connection);
 }
 
 /**

=== modified file 'includes/database/select.inc'
--- includes/database/select.inc	2010-02-17 05:24:53 +0000
+++ includes/database/select.inc	2010-05-18 19:44:25 +0000
@@ -491,6 +491,11 @@ class SelectQueryExtender implements Sel
 
   /* Implementations of QueryAlterableInterface. */
 
+  public function changeConnection(DatabaseConnection $connection) {
+    $this->query->changeConnection($connection);
+    return $this;
+  }
+
   public function addTag($tag) {
     $this->query->addTag($tag);
     return $this;
@@ -877,6 +882,10 @@ class SelectQuery extends Query implemen
 
   /* Implementations of QueryAlterableInterface. */
 
+  public function changeConnection(DatabaseConnection $connection) {
+    $this->connection = $connection;
+  }
+
   public function addTag($tag) {
     $this->alterTags[$tag] = 1;
     return $this;

