Workflow Access bug: Unknown column 'field_data_field_volume_number0.nid' in 'where clause'

This might be a bug with workflow access. It happens in a specific instance. If the content type has an entity reference field which is being sorted by a field on the referenced content type. In this case the referenced content type (Newsletter Issue) has a Volume number field which is being used to sort the issues for referencing on the Newsletter Article content type. The resulting query looks for the nid column on a field, thus resulting in a fatal error:

SELECT field_data_field_volume_number0.entity_type AS entity_type, 
field_data_field_volume_number0.entity_id AS entity_id, 
field_data_field_volume_number0.revision_id AS revision_id, 
field_data_field_volume_number0.bundle AS bundle 
FROM field_data_field_volume_number field_data_field_volume_number0 
WHERE (field_data_field_volume_number0.deleted = 0) 
AND (field_data_field_volume_number0.entity_type = 'node') 
AND (field_data_field_volume_number0.bundle IN ('issue')) 
AND 
  (((EXISTS (
          SELECT na.nid AS nid FROM node_access na 
          WHERE (( (na.gid = 0) AND (na.realm = 'all') )
            OR( (na.gid = 2) AND (na.realm = 'workflow_access') )
            OR( (na.gid = 1602) AND (na.realm = 'workflow_access_owner') )
          )
          AND (na.grant_view >= 1) 
          AND (field_data_field_volume_number0.entity_id = na.nid) )
      )
      AND (field_data_field_volume_number0.entity_type = 'node')
    )
    OR (field_data_field_volume_number0.entity_type <> 'node')
  )
AND 
  (
    EXISTS (
      SELECT na.nid AS nid FROM node_access na
      WHERE (( (na.gid = 0) AND (na.realm = 'all') )
        OR( (na.gid = 2) AND (na.realm = 'workflow_access') )
        OR( (na.gid = 1602) AND (na.realm = 'workflow_access_owner') ))
      AND (na.grant_view >= 1)
      AND (field_data_field_volume_number0.nid = na.nid)
    )
  ) 
ORDER BY field_data_field_volume_number0.field_volume_number_value DESC; 

Comments

nubeli created an issue.