Index: includes/database/query.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/database/query.inc,v retrieving revision 1.24 diff -u -p -r1.24 query.inc --- includes/database/query.inc 5 Jun 2009 16:55:45 -0000 1.24 +++ includes/database/query.inc 6 Jun 2009 13:12:36 -0000 @@ -439,7 +439,7 @@ class InsertQuery extends Query { // Check if a SelectQuery is passed in and use that. if (!empty($this->fromQuery)) { - return $this->connection->query((string) $this, array(), $this->queryOptions); + return $this->connection->query((string)$this, $this->fromQuery->getArguments(), $this->queryOptions); } // Confirm that the user did not try to specify an identical Index: includes/database/mysql/query.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/database/mysql/query.inc,v retrieving revision 1.12 diff -u -p -r1.12 query.inc --- includes/database/mysql/query.inc 5 Jun 2009 16:55:45 -0000 1.12 +++ includes/database/mysql/query.inc 6 Jun 2009 13:12:36 -0000 @@ -41,6 +41,10 @@ class InsertQuery_mysql extends InsertQu } } + if (!empty($this->fromQuery)) { + $values += $this->fromQuery->getArguments(); + } + $last_insert_id = $this->connection->query((string)$this, $values, $this->queryOptions); // Re-initialize the values array so that we can re-use this query. Index: includes/database/pgsql/query.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/database/pgsql/query.inc,v retrieving revision 1.13 diff -u -p -r1.13 query.inc --- includes/database/pgsql/query.inc 5 Jun 2009 16:55:45 -0000 1.13 +++ includes/database/pgsql/query.inc 6 Jun 2009 13:12:36 -0000 @@ -69,7 +69,8 @@ class InsertQuery_pgsql extends InsertQu elseif ($options['return'] == Database::RETURN_INSERT_ID) { $options['return'] = Database::RETURN_NULL; } - $last_insert_id = $this->connection->query($stmt, array(), $options); + $args = !empty($this->fromQuery->getArguments()) ? $this->fromQuery->getArguments() : array() ; + $last_insert_id = $this->connection->query($stmt, $args, $options); // Re-initialize the values array so that we can re-use this query. $this->insertValues = array();