Fix #1778 support multi-column unique indexes using legacy syntax

This commit is contained in:
Kijin Sung 2021-08-26 00:44:00 +09:00
parent 7367ad2645
commit f7146a4791
3 changed files with 7 additions and 4 deletions

View file

@ -6,8 +6,8 @@
<column name="description" type="bigtext" />
<column name="geometry" type="multipolygon" />
<column name="status" type="varchar" size="20" default="PUBLIC" />
<column name="custom_date" type="\date" notnull="notnull" />
<column name="regdate" type="date" notnull="notnull" />
<column name="custom_date" type="\date" notnull="notnull" unique="unique_dates" />
<column name="regdate" type="date" notnull="notnull" unique="unique_dates" />
<column name="list_order" type="number" notnull="notnull" />
<index name="idx_module_document_srl" columns="module_srl,document_srl" />
<index name="idx_status" columns="status(6)" />

View file

@ -23,9 +23,11 @@ class DBTableParserTest extends \Codeception\TestCase\Test
$this->assertEquals('char', $table->columns['regdate']->type);
$this->assertEquals('date', $table->columns['regdate']->xetype);
$this->assertEquals(8, count($table->indexes));
$this->assertEquals(9, count($table->indexes));
$this->assertEquals(['module_srl' => 0, 'document_srl' => 0], $table->indexes['idx_module_document_srl']->columns);
$this->assertEquals(['status' => 6], $table->indexes['idx_status']->columns);
$this->assertEquals('UNIQUE', $table->indexes['unique_dates']->type);
$this->assertEquals(['custom_date' => 0, 'regdate' => 0], $table->indexes['unique_dates']->columns);
$this->assertEquals('UNIQUE', $table->indexes['unique_list_order']->type);
$this->assertEquals('SPATIAL', $table->indexes['spatial_geometry']->type);
$this->assertEquals('FULLTEXT', $table->indexes['fulltext_description']->type);
@ -52,6 +54,7 @@ class DBTableParserTest extends \Codeception\TestCase\Test
$this->assertStringContainsString('INDEX `idx_document_srl` (`document_srl`),', $sql);
$this->assertStringContainsString('INDEX `idx_module_document_srl` (`module_srl`, `document_srl`),', $sql);
$this->assertStringContainsString('INDEX `idx_status` (`status`(6)),', $sql);
$this->assertStringContainsString('UNIQUE INDEX `unique_dates` (`custom_date`, `regdate`),', $sql);
$this->assertStringContainsString('UNIQUE INDEX `unique_list_order` (`list_order`),', $sql);
$this->assertStringContainsString('SPATIAL INDEX `spatial_geometry` (`geometry`),', $sql);
$this->assertStringContainsString('FULLTEXT INDEX `fulltext_description` (`description`) WITH PARSER ngram,', $sql);