| 476 | } |
| 477 | |
| 478 | void StreamReader::SkipRowsInColumn(ColumnReader* reader, int64_t num_rows_to_skip) { |
| 479 | int64_t num_skipped = 0; |
| 480 | |
| 481 | switch (reader->type()) { |
| 482 | case Type::BOOLEAN: |
| 483 | num_skipped = static_cast<BoolReader*>(reader)->Skip(num_rows_to_skip); |
| 484 | break; |
| 485 | case Type::INT32: |
| 486 | num_skipped = static_cast<Int32Reader*>(reader)->Skip(num_rows_to_skip); |
| 487 | break; |
| 488 | case Type::INT64: |
| 489 | num_skipped = static_cast<Int64Reader*>(reader)->Skip(num_rows_to_skip); |
| 490 | break; |
| 491 | case Type::BYTE_ARRAY: |
| 492 | num_skipped = static_cast<ByteArrayReader*>(reader)->Skip(num_rows_to_skip); |
| 493 | break; |
| 494 | case Type::FIXED_LEN_BYTE_ARRAY: |
| 495 | num_skipped = static_cast<FixedLenByteArrayReader*>(reader)->Skip(num_rows_to_skip); |
| 496 | break; |
| 497 | case Type::FLOAT: |
| 498 | num_skipped = static_cast<FloatReader*>(reader)->Skip(num_rows_to_skip); |
| 499 | break; |
| 500 | case Type::DOUBLE: |
| 501 | num_skipped = static_cast<DoubleReader*>(reader)->Skip(num_rows_to_skip); |
| 502 | break; |
| 503 | case Type::INT96: |
| 504 | num_skipped = static_cast<Int96Reader*>(reader)->Skip(num_rows_to_skip); |
| 505 | break; |
| 506 | case Type::UNDEFINED: |
| 507 | throw ParquetException("Unexpected type: " + TypeToString(reader->type())); |
| 508 | break; |
| 509 | } |
| 510 | if (num_rows_to_skip != num_skipped) { |
| 511 | throw ParquetException("Skipped " + std::to_string(num_skipped) + "/" + |
| 512 | std::to_string(num_rows_to_skip) + " rows in column " + |
| 513 | reader->descr()->name()); |
| 514 | } |
| 515 | } |
| 516 | |
| 517 | void StreamReader::CheckColumn(Type::type physical_type, |
| 518 | ConvertedType::type converted_type, int length) { |
nothing calls this directly
no test coverage detected