Index: modules/field/modules/field_sql_storage/field_sql_storage.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/modules/field_sql_storage/field_sql_storage.module,v
retrieving revision 1.38
diff -u -p -r1.38 field_sql_storage.module
--- modules/field/modules/field_sql_storage/field_sql_storage.module	13 Jan 2010 23:19:54 -0000	1.38
+++ modules/field/modules/field_sql_storage/field_sql_storage.module	7 Feb 2010 07:52:24 -0000
@@ -540,8 +540,16 @@ function field_sql_storage_field_storage
 
   // For a count query, return the count now.
   if ($options['count']) {
-    $query->addExpression('COUNT(DISTINCT e.type,t.entity_id,t.revision_id)');
-    return $query->execute()->fetchField();
+    // What has been built of query so far is used as a distinct subquery and
+    // the results are counted because a list of fields is not supported by
+    // Postgres < 9.0 (SQL99 COUNT(DISTINCT ) only takes a single expression)
+    $query
+      ->distinct()
+      ->fields('t', array('entity_id', 'revision_id'))
+      ->fields('e', array('type'));
+    $count_query = db_select($query);
+    $count_query->addExpression('COUNT(*)');
+    return $count_query->execute()->fetchField();
   }
 
   // For a data query, add fields.
