buildIndex() public method

Format indexes for create table.
public buildIndex ( array $indexes, string $table = null ) : array
$indexes array The indexes to build
$table string The table name.
return array
Example #1
0
 /**
  * testBuildIndex method
  *
  * @return void
  */
 public function testBuildIndex()
 {
     $data = array('PRIMARY' => array('column' => 'id'));
     $result = $this->Dbo->buildIndex($data);
     $expected = array('PRIMARY KEY  (`id`)');
     $this->assertSame($expected, $result);
     $data = array('MyIndex' => array('column' => 'id', 'unique' => true));
     $result = $this->Dbo->buildIndex($data);
     $expected = array('UNIQUE KEY `MyIndex` (`id`)');
     $this->assertEquals($expected, $result);
     $data = array('MyIndex' => array('column' => array('id', 'name'), 'unique' => true));
     $result = $this->Dbo->buildIndex($data);
     $expected = array('UNIQUE KEY `MyIndex` (`id`, `name`)');
     $this->assertEquals($expected, $result);
     $data = array('MyFtIndex' => array('column' => array('name', 'description'), 'type' => 'fulltext'));
     $result = $this->Dbo->buildIndex($data);
     $expected = array('FULLTEXT KEY `MyFtIndex` (`name`, `description`)');
     $this->assertEquals($expected, $result);
     $data = array('MyTextIndex' => array('column' => 'text_field', 'length' => array('text_field' => 20)));
     $result = $this->Dbo->buildIndex($data);
     $expected = array('KEY `MyTextIndex` (`text_field`(20))');
     $this->assertEquals($expected, $result);
     $data = array('MyMultiTextIndex' => array('column' => array('text_field1', 'text_field2'), 'length' => array('text_field1' => 20, 'text_field2' => 20)));
     $result = $this->Dbo->buildIndex($data);
     $expected = array('KEY `MyMultiTextIndex` (`text_field1`(20), `text_field2`(20))');
     $this->assertEquals($expected, $result);
 }
 /**
  * testBuildIndex method
  *
  * @return void
  */
 public function testBuildIndex()
 {
     $data = array('PRIMARY' => array('column' => 'id'));
     $result = $this->Dbo->buildIndex($data);
     $expected = array('PRIMARY KEY  (`id`)');
     $this->assertSame($expected, $result);
     $data = array('MyIndex' => array('column' => 'id', 'unique' => true));
     $result = $this->Dbo->buildIndex($data);
     $expected = array('UNIQUE KEY `MyIndex` (`id`)');
     $this->assertEquals($expected, $result);
     $data = array('MyIndex' => array('column' => array('id', 'name'), 'unique' => true));
     $result = $this->Dbo->buildIndex($data);
     $expected = array('UNIQUE KEY `MyIndex` (`id`, `name`)');
     $this->assertEquals($expected, $result);
 }
 /**
  * testBuildIndex method
  *
  * @return void
  */
 public function testBuildIndex()
 {
     $indexes = array('PRIMARY' => array('column' => 'id', 'unique' => 1), 'client_id' => array('column' => 'client_id', 'unique' => 1));
     $result = $this->db->buildIndex($indexes, 'items');
     $expected = array('PRIMARY KEY ([id])', 'ALTER TABLE items ADD CONSTRAINT client_id UNIQUE([client_id]);');
     $this->assertEquals($expected, $result);
     $indexes = array('client_id' => array('column' => 'client_id'));
     $result = $this->db->buildIndex($indexes, 'items');
     $this->assertEquals($result, array());
     $indexes = array('client_id' => array('column' => array('client_id', 'period_id'), 'unique' => 1));
     $result = $this->db->buildIndex($indexes, 'items');
     $expected = array('ALTER TABLE items ADD CONSTRAINT client_id UNIQUE([client_id], [period_id]);');
     $this->assertEquals($expected, $result);
 }