function NonPublicSchemaTest::testPrimaryKey
@covers ::addPrimaryKey
      
    
@covers ::dropPrimaryKey
      
    
File
- 
              core/
modules/ pgsql/ tests/ src/ Kernel/ pgsql/ NonPublicSchemaTest.php, line 319  
Class
- NonPublicSchemaTest
 - Tests schema API for non-public schema for the PostgreSQL driver.
 
Namespace
Drupal\Tests\pgsql\Kernel\pgsqlCode
public function testPrimaryKey() : void {
  $this->testingFakeConnection
    ->schema()
    ->dropPrimaryKey('faking_table');
  $results = $this->testingFakeConnection
    ->query("SELECT * FROM pg_indexes WHERE schemaname = 'testing_fake'")
    ->fetchAll();
  $this->assertCount(0, $results);
  $this->testingFakeConnection
    ->schema()
    ->addPrimaryKey('faking_table', [
    'id',
  ]);
  $results = $this->testingFakeConnection
    ->query("SELECT * FROM pg_indexes WHERE schemaname = 'testing_fake'")
    ->fetchAll();
  $this->assertCount(1, $results);
  $this->assertSame('testing_fake', $results[0]->schemaname);
  $this->assertSame($this->testingFakeConnection
    ->getPrefix() . 'faking_table', $results[0]->tablename);
  $this->assertStringContainsString('USING btree (id)', $results[0]->indexdef);
  $find_primary_keys_columns = new \ReflectionMethod(get_class($this->testingFakeConnection
    ->schema()), 'findPrimaryKeyColumns');
  $results = $find_primary_keys_columns->invoke($this->testingFakeConnection
    ->schema(), 'faking_table');
  $this->assertCount(1, $results);
  $this->assertSame('id', $results[0]);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.