You are here

public function DefaultTableMapping::getDedicatedDataTableName in Drupal 8

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

Generates a table name for a field data 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.

1 call to DefaultTableMapping::getDedicatedDataTableName()
DefaultTableMapping::getFieldTableName in core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php
Gets the table name for a given column.

File

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

Class

DefaultTableMapping
Defines a default table mapping class.

Namespace

Drupal\Core\Entity\Sql

Code

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

    // When a field is a deleted, the table is renamed to
    // {field_deleted_data_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_data_" . substr(hash('sha256', $storage_definition
      ->getUniqueStorageIdentifier()), 0, 10);
  }
  else {
    return $this
      ->generateFieldTableName($storage_definition, FALSE);
  }
}