Skip to content

Commit 078509e

Browse files
committed
Add tests for partition definitions with engine
This seems to work just fine. Issue #174 Signed-off-by: Michal Čihař <[email protected]>
1 parent 4613359 commit 078509e

File tree

4 files changed

+112
-0
lines changed

4 files changed

+112
-0
lines changed

tests/Builder/CreateStatementTest.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,36 @@ public function testBuilderPartitions()
183183
$this->assertEquals($query, $parser->statements[0]->build());
184184
}
185185

186+
public function testBuilderPartitionsEngine()
187+
{
188+
$query = <<<EOT
189+
CREATE TABLE `ts` (
190+
`id` int(11) DEFAULT NULL,
191+
`purchased` date DEFAULT NULL
192+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
193+
PARTITION BY RANGE (YEAR(purchased))
194+
SUBPARTITION BY HASH (TO_DAYS(purchased))
195+
(
196+
PARTITION p0 VALUES LESS THAN (1990) (
197+
SUBPARTITION s0 ENGINE=InnoDB,
198+
SUBPARTITION s1 ENGINE=InnoDB
199+
),
200+
PARTITION p1 VALUES LESS THAN (2000) (
201+
SUBPARTITION s2 ENGINE=InnoDB,
202+
SUBPARTITION s3 ENGINE=InnoDB
203+
),
204+
PARTITION p2 VALUES LESS THAN MAXVALUE (
205+
SUBPARTITION s4 ENGINE=InnoDB,
206+
SUBPARTITION s5 ENGINE=InnoDB
207+
)
208+
)
209+
EOT;
210+
$parser = new Parser($query);
211+
$stmt = $parser->statements[0];
212+
213+
$this->assertEquals($query, $stmt->build());
214+
}
215+
186216
public function testBuilderView()
187217
{
188218
$parser = new Parser(

tests/Parser/CreateStatementTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public function testCreateProvider()
3131
array('parser/parseCreateTable4'),
3232
array('parser/parseCreateTable5'),
3333
array('parser/parseCreateTable6'),
34+
array('parser/parseCreateTable7'),
3435
array('parser/parseCreateTableErr1'),
3536
array('parser/parseCreateTableErr2'),
3637
array('parser/parseCreateTableErr3'),
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
CREATE TABLE `ts` (
2+
`id` int(11) DEFAULT NULL,
3+
`purchased` date DEFAULT NULL
4+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
5+
PARTITION BY RANGE (YEAR(purchased))
6+
SUBPARTITION BY HASH (TO_DAYS(purchased))
7+
(
8+
PARTITION p0 VALUES LESS THAN (1990) (
9+
SUBPARTITION s0 ENGINE=InnoDB,
10+
SUBPARTITION s1 ENGINE=InnoDB
11+
),
12+
PARTITION p1 VALUES LESS THAN (2000) (
13+
SUBPARTITION s2 ENGINE=InnoDB,
14+
SUBPARTITION s3 ENGINE=InnoDB
15+
),
16+
PARTITION p2 VALUES LESS THAN MAXVALUE (
17+
SUBPARTITION s4 ENGINE=InnoDB,
18+
SUBPARTITION s5 ENGINE=InnoDB
19+
)
20+
);

0 commit comments

Comments
 (0)