diff options
-rw-r--r-- | src/Components/CreateDefinition.php | 7 | ||||
-rw-r--r-- | tests/Components/CreateDefinitionTest.php | 16 |
2 files changed, 22 insertions, 1 deletions
diff --git a/src/Components/CreateDefinition.php b/src/Components/CreateDefinition.php index ed79af7..0f44e09 100644 --- a/src/Components/CreateDefinition.php +++ b/src/Components/CreateDefinition.php @@ -79,7 +79,12 @@ class CreateDefinition extends Component ), 'VIRTUAL' => 10, 'PERSISTENT' => 11, - 'STORED' => 11 + 'STORED' => 11, + 'CHECK' => array( + 12, + 'expr', + array('parenthesesDelimited' => true), + ) // Common entries. // // NOTE: Some of the common options are not in the same order which diff --git a/tests/Components/CreateDefinitionTest.php b/tests/Components/CreateDefinitionTest.php index 3683e29..d00feea 100644 --- a/tests/Components/CreateDefinitionTest.php +++ b/tests/Components/CreateDefinitionTest.php @@ -63,4 +63,20 @@ class CreateDefinitionTest extends TestCase CreateDefinition::build($parser->statements[0]->fields[1]) ); } + + public function testBuild2() + { + $parser = new Parser( + 'CREATE TABLE `payment` (' . + '-- snippet' . "\n" . + '`customer_id` smallint(5) unsigned NOT NULL,' . + '`customer_data` longtext CHARACTER SET utf8mb4 CHARSET utf8mb4_bin NOT NULL CHECK (json_valid(customer_data)),' . + 'CONSTRAINT `fk_payment_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`customer_id`) ON UPDATE CASCADE' . + ') ENGINE=InnoDB"' + ); + $this->assertEquals( + 'CONSTRAINT `fk_payment_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`customer_id`) ON UPDATE CASCADE', + CreateDefinition::build($parser->statements[0]->fields[2]) + ); + } } |