/** @var \Drupal\Core\Entity\Sql\DefaultTableMapping $table_mapping */
$table_mapping =
$this->entityTypeManager->
getStorage($entity_type->
id())->
getTableMapping();
$field_storage_definitions =
$this->entityFieldManager->
getFieldStorageDefinitions($entity_type->
id());
$dedicated_field_storage_definitions =
array_filter($field_storage_definitions,
function D
$definition) use ($table_mapping) { return $table_mapping->
requiresDedicatedTableStorage($definition);
});
$dedicated_field_data_tables =
array_map(function D
$definition) use ($table_mapping) { return $table_mapping->
getDedicatedDataTableName($definition);
},
$dedicated_field_storage_definitions);
$move_workspace_tables =
[];
$table_queue =&
$query->
getTableQueue();
foreach ($table_queue as $alias => &
$table_info) { // If we reach the workspace_association array item before any candidates,
// then we do not need to move it.
if ($table_info['table'
] == 'workspace_association'
) { break;
} // Any dedicated field table is a candidate.
if ($field_name =
array_search($table_info['table'
],
$dedicated_field_data_tables, TRUE
)) { $relationship =
$table_info['relationship'
];