summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Components/CreateDefinition.php7
-rw-r--r--tests/Components/CreateDefinitionTest.php16
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])
+ );
+ }
}