diff --git a/includes/database/select.inc b/includes/database/select.inc index 16091061ba3979932bf62d866eafa244ac19bab9..9046afbdf7bb17774c841f4e37fc118ff0e04820 100644 --- a/includes/database/select.inc +++ b/includes/database/select.inc @@ -1362,7 +1362,7 @@ public function countQuery() { // Create our new query object that we will mutate into a count query. $count = clone($this); - $group_by = array_keys($count->getGroupBy()); + $group_by = drupal_map_assoc(array_values($count->getGroupBy())); if (!$count->distinct) { // When not executing a distinct query, we can zero-out existing fields diff --git a/modules/simpletest/tests/database_test.test b/modules/simpletest/tests/database_test.test index db74bd9e5e05282c0dac0c0640f82e22e200d065..32742e0c1cd6b6692b13317ecc7ff79cd4159b03 100644 --- a/modules/simpletest/tests/database_test.test +++ b/modules/simpletest/tests/database_test.test @@ -2032,6 +2032,15 @@ class DatabaseSelectComplexTestCase extends DatabaseTestCase { $count = $query->countQuery()->execute()->fetchField(); $this->assertEqual($count, 3, t('Counted the correct number of records.')); + + // Test wth an alias. + $query = db_select('test_task'); + $pid_field = $query->addField('test_task', 'pid', 'pid_alias'); + $query->groupBy('pid_alias'); + + $count = $query->countQuery()->execute()->fetchField(); + + $this->assertEqual($count, 3, t('Counted the correct number of records.')); } /**