diff options
-rw-r--r-- | includes/entity.inc | 8 | ||||
-rw-r--r-- | modules/node/node.module | 12 |
2 files changed, 12 insertions, 8 deletions
diff --git a/includes/entity.inc b/includes/entity.inc index 4b6058b75..59dfc5bff 100644 --- a/includes/entity.inc +++ b/includes/entity.inc @@ -188,14 +188,6 @@ class DrupalDefaultEntityController implements DrupalEntityControllerInterface { // The id field is provided by entity, so remove it. unset($entity_revision_fields[$this->idKey]); - // Change timestamp to revision_timestamp, and revision uid to - // revision_uid before adding them to the query. - // TODO: This is node specific and has to be moved into NodeController. - unset($entity_revision_fields['timestamp']); - $query->addField('revision', 'timestamp', 'revision_timestamp'); - unset($entity_revision_fields['uid']); - $query->addField('revision', 'uid', 'revision_uid'); - // Remove all fields from the base table that are also fields by the same // name in the revision table. $entity_field_keys = array_flip($entity_fields); diff --git a/modules/node/node.module b/modules/node/node.module index d751a511b..dc6532483 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -3651,4 +3651,16 @@ class NodeController extends DrupalDefaultEntityController { $this->hookLoadArguments[] = array_keys($typed_nodes); parent::attachLoad($nodes, $revision_id); } + + protected function buildQuery($ids, $conditions, $revision_id) { + // Ensure that uid is taken from the {node} table, + // alias timestamp to revision_timestamp and add revision_uid. + $query = parent::buildQuery($ids, $conditions, $revision_id); + $fields =& $query->getFields(); + unset($fields['timestamp']); + $query->addField('revision', 'timestamp', 'revision_timestamp'); + $fields['uid']['table'] = 'base'; + $query->addField('revision', 'uid', 'revision_uid'); + return $query; + } } |