? drupaldown
? modules/syndication
Index: includes/database/mysql/query.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/database/mysql/query.inc,v
retrieving revision 1.3
diff -u -p -r1.3 query.inc
--- includes/database/mysql/query.inc	27 Sep 2008 20:10:26 -0000	1.3
+++ includes/database/mysql/query.inc	14 Oct 2008 16:02:15 -0000
@@ -63,7 +63,7 @@ class InsertQuery_mysql extends InsertQu
     }
     else {
       // If there are no values, then this is a default-only query.  We still need to handle that.
-      $placeholders = array_fill(0, count($this->defaultFields), 'default');
+      $placeholders = count($this->defaultFields) ? array_fill(0, count($this->defaultFields), 'default') : array();
       $values[] = '(' . implode(', ', $placeholders) .')';
     }
 
Index: includes/database/pgsql/query.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/database/pgsql/query.inc,v
retrieving revision 1.2
diff -u -p -r1.2 query.inc
--- includes/database/pgsql/query.inc	15 Sep 2008 20:48:07 -0000	1.2
+++ includes/database/pgsql/query.inc	14 Oct 2008 16:02:15 -0000
@@ -93,7 +93,7 @@ class InsertQuery_pgsql extends InsertQu
     }
     else {
       // If there are no values, then this is a default-only query.  We still need to handle that.
-      $placeholders = array_fill(0, count($this->defaultFields), 'default');
+      $placeholders = count($this->defaultFields) ? array_fill(0, count($this->defaultFields), 'default') : array();
       $values[] = '(' . implode(', ', $placeholders) .')';
     }
 
Index: modules/simpletest/tests/database_test.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/database_test.test,v
retrieving revision 1.9
diff -u -p -r1.9 database_test.test
--- modules/simpletest/tests/database_test.test	28 Sep 2008 21:52:08 -0000	1.9
+++ modules/simpletest/tests/database_test.test	14 Oct 2008 16:02:16 -0000
@@ -548,6 +548,24 @@ class DatabaseInsertDefaultsTestCase ext
       $this->assertTrue(FALSE, $e->getMessage());
     }
   }
+
+  /**
+   * Test that we can run a query that uses all default fields and no defined fields.
+   */
+  function testDefaultInsertWithNone() {
+    try {
+      $query = db_insert('test');
+      $id = $query->execute();
+
+      $schema = drupal_get_schema('test');
+
+      $job = db_query("SELECT job FROM {test} WHERE id = :id", array(':id' => $id))->fetchField();
+      $this->assertEqual($job, $schema['fields']['job']['default'], t('Default field value is set.'));
+    }
+    catch (Exception $e) {
+      $this->assertTrue(FALSE, $e->getMessage());
+    }
+  }
 }
 
 /**
