public function testExtractRangeColumns() { $sql = <<<SQL CREATE TABLE range_test (id int, foo int, PRIMARY KEY (id, foo)) PARTITION BY RANGE COLUMNS (id, foo) ( PARTITION p0 VALUES LESS THAN (10, 20), PARTITION p1 VALUES LESS THAN (20, 30), PARTITION p2 VALUES LESS THAN (MAXVALUE, MAXVALUE) ); SQL; $schema = $this->extract($sql); $partition = $schema->table->tablePartition; $this->assertNotEmpty($partition); $this->assertEquals('RANGE COLUMNS', (string) $partition['type']); $opts = mysql5_table::get_partition_options($schema->table['name'], $partition); $this->assertEquals('id,foo', $opts['columns']); $this->assertEquals(3, count($partition->tablePartitionSegment)); $this->assertEquals('p0', (string) $partition->tablePartitionSegment[0]['name']); $this->assertEquals('10,20', (string) $partition->tablePartitionSegment[0]['value']); $this->assertEquals('p1', (string) $partition->tablePartitionSegment[1]['name']); $this->assertEquals('20,30', (string) $partition->tablePartitionSegment[1]['value']); $this->assertEquals('p2', (string) $partition->tablePartitionSegment[2]['name']); $this->assertEquals('MAXVALUE,MAXVALUE', (string) $partition->tablePartitionSegment[2]['value']); }