You are here

protected function Schema::_createKeys in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php \Drupal\Core\Database\Driver\pgsql\Schema::_createKeys()
2 calls to Schema::_createKeys()
Schema::addField in core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php
Add a new field to a table.
Schema::changeField in core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php
Change a field definition.

File

core/lib/Drupal/Core/Database/Driver/pgsql/Schema.php, line 1013

Class

Schema
PostgreSQL implementation of \Drupal\Core\Database\Schema.

Namespace

Drupal\Core\Database\Driver\pgsql

Code

protected function _createKeys($table, $new_keys) {
  if (isset($new_keys['primary key'])) {
    $this
      ->addPrimaryKey($table, $new_keys['primary key']);
  }
  if (isset($new_keys['unique keys'])) {
    foreach ($new_keys['unique keys'] as $name => $fields) {
      $this
        ->addUniqueKey($table, $name, $fields);
    }
  }
  if (isset($new_keys['indexes'])) {
    foreach ($new_keys['indexes'] as $name => $fields) {

      // Even though $new_keys is not a full schema it still has 'indexes' and
      // so is a partial schema. Technically addIndex() doesn't do anything
      // with it so passing an empty array would work as well.
      $this
        ->addIndex($table, $name, $fields, $new_keys);
    }
  }
}