|
5 | 5 | use Exception; |
6 | 6 |
|
7 | 7 | use codename\parquet\ParquetReader; |
| 8 | +use codename\parquet\ParquetOptions; |
| 9 | + |
| 10 | +use codename\parquet\helper\ParquetDataWriter; |
| 11 | +use codename\parquet\helper\ParquetDataIterator; |
8 | 12 |
|
9 | 13 | use codename\parquet\data\Schema; |
10 | 14 | use codename\parquet\data\DataType; |
@@ -386,4 +390,42 @@ public function testBackwardCompatListWithOneArray(): void { |
386 | 390 | $rg = $reader->OpenRowGroupReader(0); |
387 | 391 | $values4 = $rg->ReadColumn($schema->fields[4]); |
388 | 392 | } |
| 393 | + |
| 394 | + public function testIndexedColumnNames(): void |
| 395 | + { |
| 396 | + $schema = new Schema([ |
| 397 | + DataField::createFromType('0', 'integer'), |
| 398 | + DataField::createFromType('1', 'string') |
| 399 | + ]); |
| 400 | + |
| 401 | + $handle = fopen('php://memory', 'r+'); |
| 402 | + $instance = new ParquetDataWriter($handle, $schema); |
| 403 | + |
| 404 | + for ($i=0; $i < 4; $i++) { |
| 405 | + $instance->put([ |
| 406 | + '0' => $i, |
| 407 | + '1' => 'id#'.$i, |
| 408 | + ]); |
| 409 | + } |
| 410 | + $instance->finish(); |
| 411 | + |
| 412 | + fseek($handle, 0, SEEK_SET); |
| 413 | + |
| 414 | + $reader = new ParquetReader($handle); |
| 415 | + $this->assertEquals(1, $reader->getRowGroupCount()); |
| 416 | + |
| 417 | + fseek($handle, 0, SEEK_SET); |
| 418 | + |
| 419 | + // Re-read data |
| 420 | + $iterator = ParquetDataIterator::fromHandle($handle); |
| 421 | + |
| 422 | + $cnt = 0; |
| 423 | + foreach($iterator as $i => $data) { |
| 424 | + $this->assertEquals($i, $data['0']); |
| 425 | + $this->assertEquals('id#'.$i, $data['1']); |
| 426 | + $cnt++; |
| 427 | + } |
| 428 | + $this->assertEquals(4, $cnt); |
| 429 | + |
| 430 | + } |
389 | 431 | } |
0 commit comments