function Schema::findPrimaryKeyColumns
Same name in this branch
- 8.9.x core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php \Drupal\Core\Database\Driver\sqlite\Schema::findPrimaryKeyColumns()
- 8.9.x core/lib/Drupal/Core/Database/Driver/mysql/Schema.php \Drupal\Core\Database\Driver\mysql\Schema::findPrimaryKeyColumns()
- 8.9.x core/lib/Drupal/Core/Database/Schema.php \Drupal\Core\Database\Schema::findPrimaryKeyColumns()
Same name in other branches
- 9 core/modules/sqlite/src/Driver/Database/sqlite/Schema.php \Drupal\sqlite\Driver\Database\sqlite\Schema::findPrimaryKeyColumns()
- 9 core/modules/mysql/src/Driver/Database/mysql/Schema.php \Drupal\mysql\Driver\Database\mysql\Schema::findPrimaryKeyColumns()
- 9 core/modules/pgsql/src/Driver/Database/pgsql/Schema.php \Drupal\pgsql\Driver\Database\pgsql\Schema::findPrimaryKeyColumns()
- 9 core/lib/Drupal/Core/Database/Schema.php \Drupal\Core\Database\Schema::findPrimaryKeyColumns()
- 10 core/modules/sqlite/src/Driver/Database/sqlite/Schema.php \Drupal\sqlite\Driver\Database\sqlite\Schema::findPrimaryKeyColumns()
- 10 core/modules/mysql/src/Driver/Database/mysql/Schema.php \Drupal\mysql\Driver\Database\mysql\Schema::findPrimaryKeyColumns()
- 10 core/modules/pgsql/src/Driver/Database/pgsql/Schema.php \Drupal\pgsql\Driver\Database\pgsql\Schema::findPrimaryKeyColumns()
- 10 core/lib/Drupal/Core/Database/Schema.php \Drupal\Core\Database\Schema::findPrimaryKeyColumns()
- 11.x core/modules/sqlite/src/Driver/Database/sqlite/Schema.php \Drupal\sqlite\Driver\Database\sqlite\Schema::findPrimaryKeyColumns()
- 11.x core/modules/mysql/src/Driver/Database/mysql/Schema.php \Drupal\mysql\Driver\Database\mysql\Schema::findPrimaryKeyColumns()
- 11.x core/modules/pgsql/src/Driver/Database/pgsql/Schema.php \Drupal\pgsql\Driver\Database\pgsql\Schema::findPrimaryKeyColumns()
- 11.x core/lib/Drupal/Core/Database/Schema.php \Drupal\Core\Database\Schema::findPrimaryKeyColumns()
Overrides Schema::findPrimaryKeyColumns
File
-
core/
lib/ Drupal/ Core/ Database/ Driver/ pgsql/ Schema.php, line 811
Class
- Schema
- PostgreSQL implementation of \Drupal\Core\Database\Schema.
Namespace
Drupal\Core\Database\Driver\pgsqlCode
protected function findPrimaryKeyColumns($table) {
if (!$this->tableExists($table)) {
return FALSE;
}
// Fetch the 'indkey' column from 'pg_index' to figure out the order of the
// primary key.
// @todo Use 'array_position()' to be able to perform the ordering in SQL
// directly when 9.5 is the minimum PostgreSQL version.
$result = $this->connection
->query("SELECT a.attname, i.indkey FROM pg_index i JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey) WHERE i.indrelid = '{" . $table . "}'::regclass AND i.indisprimary")
->fetchAllKeyed();
if (!$result) {
return [];
}
$order = explode(' ', reset($result));
$columns = array_combine($order, array_keys($result));
ksort($columns);
return array_values($columns);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.