You are here

protected function Schema::createIndexSql in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php \Drupal\Core\Database\Driver\sqlite\Schema::createIndexSql()

Build the SQL expression for indexes.

4 calls to Schema::createIndexSql()
Schema::addIndex in core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php
Add an index.
Schema::addUniqueKey in core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php
Add a unique key.
Schema::createTableSql in core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php
Generate SQL to create a new table from a Drupal schema definition.
Schema::renameTable in core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php
Rename a table.

File

core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php, line 68

Class

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

Namespace

Drupal\Core\Database\Driver\sqlite

Code

protected function createIndexSql($tablename, $schema) {
  $sql = [];
  $info = $this
    ->getPrefixInfo($tablename);
  if (!empty($schema['unique keys'])) {
    foreach ($schema['unique keys'] as $key => $fields) {
      $sql[] = 'CREATE UNIQUE INDEX ' . $info['schema'] . '.' . $info['table'] . '_' . $key . ' ON ' . $info['table'] . ' (' . $this
        ->createKeySql($fields) . ")\n";
    }
  }
  if (!empty($schema['indexes'])) {
    foreach ($schema['indexes'] as $key => $fields) {
      $sql[] = 'CREATE INDEX ' . $info['schema'] . '.' . $info['table'] . '_' . $key . ' ON ' . $info['table'] . ' (' . $this
        ->createKeySql($fields) . ")\n";
    }
  }
  return $sql;
}