MCPcopy Create free account
hub / github.com/apache/impala / OrcMapReader

Method OrcMapReader

be/src/exec/orc/orc-column-readers.cc:798–827  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

796}
797
798OrcMapReader::OrcMapReader(const orc::Type* node,
799 const TupleDescriptor* table_tuple_desc, HdfsOrcScanner* scanner)
800 : OrcCollectionReader(node, table_tuple_desc, scanner) {
801 if (materialize_tuple_) {
802 DCHECK(tuple_desc_ != nullptr);
803 for (SlotDescriptor* child_slot : tuple_desc_->slots()) {
804 CreateChildForSlot(node, child_slot);
805 }
806 } else {
807 const orc::Type* child_type;
808 int field;
809 if (!FindChild(*node, GetColId(table_tuple_desc),
810 &child_type, &field)) {
811 DCHECK(false) << PrintNode(node) << " has no children selected for "
812 << table_tuple_desc->DebugString();
813 }
814 // Map type only has two children.
815 DCHECK_LE(field, 1);
816 OrcComplexColumnReader* child = OrcComplexColumnReader::CreateTopLevelReader(
817 child_type, table_tuple_desc, scanner);
818 children_.push_back(child);
819 if (field == 0) {
820 key_readers_.push_back(child);
821 } else {
822 value_readers_.push_back(child);
823 }
824 }
825 VLOG(3) << "Created MapReader for " << PrintNode(node) << ": tuple_desc_="
826 << (tuple_desc_ != nullptr ? tuple_desc_->DebugString() : "null");
827}
828
829OrcMapReader::OrcMapReader(const orc::Type* node, const SlotDescriptor* slot_desc,
830 HdfsOrcScanner* scanner) : OrcCollectionReader(node, slot_desc, scanner) {

Callers

nothing calls this directly

Calls 4

FindChildFunction · 0.85
PrintNodeFunction · 0.85
push_backMethod · 0.80
DebugStringMethod · 0.45

Tested by

no test coverage detected