39 lines
1.1 KiB
PHP
39 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Drupal\file;
|
|
|
|
use Drupal\Core\Entity\Sql\SqlContentEntityStorageSchema;
|
|
use Drupal\Core\Field\FieldStorageDefinitionInterface;
|
|
|
|
/**
|
|
* Defines the file schema handler.
|
|
*/
|
|
class FileStorageSchema extends SqlContentEntityStorageSchema {
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
protected function getSharedTableFieldSchema(FieldStorageDefinitionInterface $storage_definition, $table_name, array $column_mapping) {
|
|
$schema = parent::getSharedTableFieldSchema($storage_definition, $table_name, $column_mapping);
|
|
$field_name = $storage_definition->getName();
|
|
|
|
if ($table_name == $this->storage->getBaseTable()) {
|
|
switch ($field_name) {
|
|
case 'status':
|
|
case 'changed':
|
|
case 'uri':
|
|
$this->addSharedTableFieldIndex($storage_definition, $schema, TRUE);
|
|
break;
|
|
}
|
|
}
|
|
// Entity keys automatically have not null assigned to TRUE, but for the
|
|
// file entity, NULL is a valid value for uid.
|
|
if ($field_name === 'uid') {
|
|
$schema['fields']['uid']['not null'] = FALSE;
|
|
}
|
|
|
|
return $schema;
|
|
}
|
|
|
|
}
|