| 597 | } |
| 598 | |
| 599 | OrcCollectionReader::OrcCollectionReader(const orc::Type* node, |
| 600 | const SlotDescriptor* slot_desc, HdfsOrcScanner* scanner) |
| 601 | : OrcComplexColumnReader(node, slot_desc, scanner) { |
| 602 | if (slot_desc->type().IsCollectionType() && |
| 603 | node->getColumnId() == GetTargetColId(slot_desc)) { |
| 604 | // This is a collection SlotDescriptor whose item TupleDescriptor matches |
| 605 | // 'node'. We should materialize the slot (creating a CollectionValue) and its |
| 606 | // collection tuples (see more in HdfsOrcScanner::AssembleCollection). |
| 607 | tuple_desc_ = slot_desc->children_tuple_descriptor(); |
| 608 | materialize_tuple_ = true; |
| 609 | } |
| 610 | } |
| 611 | |
| 612 | Status OrcCollectionReader::AssembleCollection(int row_idx, Tuple* tuple, MemPool* pool) { |
| 613 | if (IsNull(DCHECK_NOTNULL(vbatch_), row_idx)) { |
nothing calls this directly
no test coverage detected