? 902830.patch
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.51
diff -u -p -r1.51 field_sql_storage.module
--- modules/field/modules/field_sql_storage/field_sql_storage.module	22 Aug 2010 16:11:12 -0000	1.51
+++ modules/field/modules/field_sql_storage/field_sql_storage.module	5 Sep 2010 15:37:03 -0000
@@ -565,7 +565,7 @@ function field_sql_storage_field_storage
   }
   foreach ($query->entityOrder as $key => $direction) {
     $sql_field = $key == 'entity_type' ? 'fcet.type' : "$field_base_table.$key";
-    $query->orderBy($sql_field, $direction);
+    $select_query->orderBy($sql_field, $direction);
   }
   return $query->finishQuery($select_query, $id_key);
 }
Index: modules/simpletest/tests/entity_query.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/entity_query.test,v
retrieving revision 1.9
diff -u -p -r1.9 entity_query.test
--- modules/simpletest/tests/entity_query.test	1 Sep 2010 01:43:50 -0000	1.9
+++ modules/simpletest/tests/entity_query.test	5 Sep 2010 15:37:05 -0000
@@ -291,6 +291,31 @@ class EntityFieldQueryTestCase extends D
       array('test_entity_bundle_key', 2),
       array('test_entity_bundle_key', 1),
     ), t('Test sort entity entity_id in descending order.'), TRUE);
+    
+    // Test entity sort by entity_id, with a field condition.
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity_bundle_key')
+      ->fieldCondition($this->fields[0], 'value', 0, '>')
+      ->entityOrderBy('entity_id', 'ASC');
+    $this->assertEntityFieldQuery($query, array(
+      array('test_entity_bundle_key', 1),
+      array('test_entity_bundle_key', 2),
+      array('test_entity_bundle_key', 3),
+      array('test_entity_bundle_key', 4),
+    ), t('Test sort entity entity_id in ascending order, with a field condition.'), TRUE);
+
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity_bundle_key')
+      ->fieldCondition($this->fields[0], 'value', 0, '>')
+      ->propertyOrderBy('ftid', 'DESC');
+    $this->assertEntityFieldQuery($query, array(
+      array('test_entity_bundle_key', 4),
+      array('test_entity_bundle_key', 3),
+      array('test_entity_bundle_key', 2),
+      array('test_entity_bundle_key', 1),
+    ), t('Test sort entity entity_id property in descending order, with a field condition.'), TRUE);
 
     // Test property sort by entity id.
     $query = new EntityFieldQuery();
@@ -318,6 +343,31 @@ class EntityFieldQueryTestCase extends D
       array('test_entity_bundle_key', 2),
       array('test_entity_bundle_key', 1),
     ), t('Test sort entity entity_id property in descending order.'), TRUE);
+    
+    // Test property sort by entity id, with a field condition.
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity_bundle_key')
+      ->fieldCondition($this->fields[0], 'value', 0, '>')
+      ->propertyOrderBy('ftid', 'ASC');
+    $this->assertEntityFieldQuery($query, array(
+      array('test_entity_bundle_key', 1),
+      array('test_entity_bundle_key', 2),
+      array('test_entity_bundle_key', 3),
+      array('test_entity_bundle_key', 4),
+    ), t('Test sort entity entity_id property in ascending order, with a field condition.'), TRUE);
+
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity_bundle_key')
+      ->fieldCondition($this->fields[0], 'value', 0, '>')
+      ->propertyOrderBy('ftid', 'DESC');
+    $this->assertEntityFieldQuery($query, array(
+      array('test_entity_bundle_key', 4),
+      array('test_entity_bundle_key', 3),
+      array('test_entity_bundle_key', 2),
+      array('test_entity_bundle_key', 1),
+    ), t('Test sort entity entity_id property in descending order, with a field condition.'), TRUE);
 
     // Test entity sort by bundle.
     $query = new EntityFieldQuery();
@@ -347,6 +397,33 @@ class EntityFieldQueryTestCase extends D
       array('test_entity_bundle_key', 2),
       array('test_entity_bundle_key', 1),
     ), t('Test sort entity bundle in descending order.'), TRUE);
+    
+    // Test entity sort by bundle, with a field condition.
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity_bundle_key')
+      ->fieldCondition($this->fields[0], 'value', 0, '>')
+      ->entityOrderBy('bundle', 'ASC')
+      ->propertyOrderBy('ftid', 'ASC');
+    $this->assertEntityFieldQuery($query, array(
+      array('test_entity_bundle_key', 1),
+      array('test_entity_bundle_key', 2),
+      array('test_entity_bundle_key', 3),
+      array('test_entity_bundle_key', 4),
+    ), t('Test sort entity bundle in ascending order, with a field condition.'), TRUE);
+
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity_bundle_key')
+      ->fieldCondition($this->fields[0], 'value', 0, '>')
+      ->entityOrderBy('bundle', 'DESC')
+      ->propertyOrderBy('ftid', 'DESC');
+    $this->assertEntityFieldQuery($query, array(
+      array('test_entity_bundle_key', 4),
+      array('test_entity_bundle_key', 3),
+      array('test_entity_bundle_key', 2),
+      array('test_entity_bundle_key', 1),
+    ), t('Test sort entity bundle in descending order, with a field condition.'), TRUE);
 
     // Test entity sort by revision_id.
     $query = new EntityFieldQuery();
@@ -370,6 +447,31 @@ class EntityFieldQueryTestCase extends D
       array('test_entity', 2),
       array('test_entity', 1),
     ), t('Test sort entity revision_id in descending order.'), TRUE);
+    
+    // Test entity sort by revision_id, with a field condition.
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity')
+      ->fieldCondition($this->fields[0], 'value', 0, '>')
+      ->entityOrderBy('revision_id', 'ASC');
+    $this->assertEntityFieldQuery($query, array(
+      array('test_entity', 1),
+      array('test_entity', 2),
+      array('test_entity', 3),
+      array('test_entity', 4),
+    ), t('Test sort entity revision_id in ascending order, with a field condition.'), TRUE);
+
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity')
+      ->fieldCondition($this->fields[0], 'value', 0, '>')
+      ->entityOrderBy('revision_id', 'DESC');
+    $this->assertEntityFieldQuery($query, array(
+      array('test_entity', 4),
+      array('test_entity', 3),
+      array('test_entity', 2),
+      array('test_entity', 1),
+    ), t('Test sort entity revision_id in descending order, with a field condition.'), TRUE);
 
     // Test property sort by revision_id.
     $query = new EntityFieldQuery();
@@ -394,6 +496,31 @@ class EntityFieldQueryTestCase extends D
       array('test_entity', 1),
     ), t('Test sort entity revision_id property in descending order.'), TRUE);
 
+    // Test property sort by revision_id, with a field condition.
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity')
+      ->fieldCondition($this->fields[0], 'value', 0, '>')
+      ->propertyOrderBy('ftvid', 'ASC');
+    $this->assertEntityFieldQuery($query, array(
+      array('test_entity', 1),
+      array('test_entity', 2),
+      array('test_entity', 3),
+      array('test_entity', 4),
+    ), t('Test sort entity revision_id property in ascending order, with a field condition.'), TRUE);
+
+    $query = new EntityFieldQuery();
+    $query
+      ->entityCondition('entity_type', 'test_entity')
+      ->fieldCondition($this->fields[0], 'value', 0, '>')
+      ->propertyOrderBy('ftvid', 'DESC');
+    $this->assertEntityFieldQuery($query, array(
+      array('test_entity', 4),
+      array('test_entity', 3),
+      array('test_entity', 2),
+      array('test_entity', 1),
+    ), t('Test sort entity revision_id property in descending order, with a field condition.'), TRUE);
+
     $query = new EntityFieldQuery();
     $query
       ->entityCondition('entity_type', 'test_entity_bundle_key')
