You are here

public function DefaultTableMapping::getDedicatedRevisionTableName in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php \Drupal\Core\Entity\Sql\DefaultTableMapping::getDedicatedRevisionTableName()

Generates a table name for a field revision archive table.

Parameters

\Drupal\Core\Field\FieldStorageDefinitionInterface $storage_definition: The field storage definition.

bool $is_deleted: (optional) Whether the table name holding the values of a deleted field should be returned.

Return value

string A string containing the generated name for the database table.

File

core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php, line 591

Class

DefaultTableMapping
Defines a default table mapping class.

Namespace

Drupal\Core\Entity\Sql

Code

public function getDedicatedRevisionTableName(FieldStorageDefinitionInterface $storage_definition, $is_deleted = FALSE) {
  if ($is_deleted) {

    // When a field is a deleted, the table is renamed to
    // {field_deleted_revision_UNIQUE_STORAGE_ID}. To make sure we don't end
    // up with table names longer than 64 characters, we hash the unique
    // storage identifier and return the first 10 characters so we end up with
    // a short unique ID.
    return "field_deleted_revision_" . substr(hash('sha256', $storage_definition
      ->getUniqueStorageIdentifier()), 0, 10);
  }
  else {
    return $this
      ->generateFieldTableName($storage_definition, TRUE);
  }
}