public function DefaultTableMapping::getDedicatedDataTableName

public DefaultTableMapping::getDedicatedDataTableName(FieldStorageDefinitionInterface $storage_definition, $is_deleted = FALSE)

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.

File

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

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_FIELD_UUID}. 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);
  }
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Entity!Sql!DefaultTableMapping.php/function/DefaultTableMapping::getDedicatedDataTableName/8.1.x