mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2025-09-09 13:02:40 +00:00
Add MySQL FULLTEXT support.
Minor optimizations and testing added.
This commit is contained in:
parent
7135ff29fb
commit
36c99a358f
4 changed files with 64 additions and 37 deletions
|
@ -313,6 +313,16 @@ class MysqlTest extends CakeTestCase {
|
|||
$result = $this->Dbo->index('with_multiple_compound_keys', false);
|
||||
$this->Dbo->rawQuery('DROP TABLE ' . $name);
|
||||
$this->assertEquals($expected, $result);
|
||||
|
||||
$name = $this->Dbo->fullTableName('with_fulltext');
|
||||
$this->Dbo->rawQuery('CREATE TABLE ' . $name . ' (id int(11) AUTO_INCREMENT, name varchar(255), description text, primary key(id), FULLTEXT KEY `MyFtIndex` ( `name`, `description` )) ENGINE=MyISAM;');
|
||||
$expected = array(
|
||||
'PRIMARY' => array('column' => 'id', 'unique' => 1),
|
||||
'MyFtIndex' => array('column' => array('name', 'description'), 'type' => 'fulltext')
|
||||
);
|
||||
$result = $this->Dbo->index('with_fulltext', false);
|
||||
$this->Dbo->rawQuery('DROP TABLE ' . $name);
|
||||
$this->assertEquals($expected, $result);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -548,9 +558,9 @@ class MysqlTest extends CakeTestCase {
|
|||
|
||||
$result = $this->Dbo->alterSchema($schemaB->compare($schemaA));
|
||||
$this->assertContains("ALTER TABLE $table", $result);
|
||||
$this->assertContains('ADD KEY name_idx (`name`),', $result);
|
||||
$this->assertContains('ADD KEY group_idx (`group1`),', $result);
|
||||
$this->assertContains('ADD KEY compound_idx (`group1`, `group2`),', $result);
|
||||
$this->assertContains('ADD KEY `name_idx` (`name`),', $result);
|
||||
$this->assertContains('ADD KEY `group_idx` (`group1`),', $result);
|
||||
$this->assertContains('ADD KEY `compound_idx` (`group1`, `group2`),', $result);
|
||||
$this->assertContains('ADD PRIMARY KEY (`id`);', $result);
|
||||
|
||||
//Test that the string is syntactically correct
|
||||
|
@ -576,13 +586,13 @@ class MysqlTest extends CakeTestCase {
|
|||
$result = $this->Dbo->alterSchema($schemaC->compare($schemaB));
|
||||
$this->assertContains("ALTER TABLE $table", $result);
|
||||
$this->assertContains('DROP PRIMARY KEY,', $result);
|
||||
$this->assertContains('DROP KEY name_idx,', $result);
|
||||
$this->assertContains('DROP KEY group_idx,', $result);
|
||||
$this->assertContains('DROP KEY compound_idx,', $result);
|
||||
$this->assertContains('ADD KEY id_name_idx (`id`, `name`),', $result);
|
||||
$this->assertContains('ADD UNIQUE KEY name_idx (`name`),', $result);
|
||||
$this->assertContains('ADD KEY group_idx (`group2`),', $result);
|
||||
$this->assertContains('ADD KEY compound_idx (`group2`, `group1`);', $result);
|
||||
$this->assertContains('DROP KEY `name_idx`,', $result);
|
||||
$this->assertContains('DROP KEY `group_idx`,', $result);
|
||||
$this->assertContains('DROP KEY `compound_idx`,', $result);
|
||||
$this->assertContains('ADD KEY `id_name_idx` (`id`, `name`),', $result);
|
||||
$this->assertContains('ADD UNIQUE KEY `name_idx` (`name`),', $result);
|
||||
$this->assertContains('ADD KEY `group_idx` (`group2`),', $result);
|
||||
$this->assertContains('ADD KEY `compound_idx` (`group2`, `group1`);', $result);
|
||||
|
||||
$query = $this->Dbo->getConnection()->prepare($result);
|
||||
$this->assertEquals($query->queryString, $result);
|
||||
|
@ -594,10 +604,10 @@ class MysqlTest extends CakeTestCase {
|
|||
$result = $this->Dbo->alterSchema($schemaA->compare($schemaC));
|
||||
|
||||
$this->assertContains("ALTER TABLE $table", $result);
|
||||
$this->assertContains('DROP KEY name_idx,', $result);
|
||||
$this->assertContains('DROP KEY group_idx,', $result);
|
||||
$this->assertContains('DROP KEY compound_idx,', $result);
|
||||
$this->assertContains('DROP KEY id_name_idx;', $result);
|
||||
$this->assertContains('DROP KEY `name_idx`,', $result);
|
||||
$this->assertContains('DROP KEY `group_idx`,', $result);
|
||||
$this->assertContains('DROP KEY `compound_idx`,', $result);
|
||||
$this->assertContains('DROP KEY `id_name_idx`;', $result);
|
||||
|
||||
$query = $this->Dbo->getConnection()->prepare($result);
|
||||
$this->assertEquals($query->queryString, $result);
|
||||
|
@ -2837,6 +2847,13 @@ class MysqlTest extends CakeTestCase {
|
|||
$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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue