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

Method CodegenWriteCollectionIterateOverChildren

be/src/runtime/descriptors.cc:1486–1506  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1484}
1485
1486void SlotDescriptor::CodegenWriteCollectionIterateOverChildren(LlvmCodeGen* codegen,
1487 LlvmBuilder* builder, llvm::Value* master_tuple, llvm::Value* children_tuple,
1488 llvm::Function* fn, const NonWritableBasicBlock& insert_before,
1489 llvm::Value* pool_val) const {
1490 DCHECK(pool_val != nullptr);
1491 const TupleDescriptor* children_tuple_desc = children_tuple_descriptor();
1492 DCHECK(children_tuple_desc != nullptr);
1493
1494 for (const SlotDescriptor* child_slot_desc : children_tuple_desc->slots()) {
1495 DCHECK(child_slot_desc != nullptr);
1496
1497 const ColumnType& child_type = child_slot_desc->type();
1498 if (child_type.IsVarLenStringType() || child_type.IsCollectionType()) {
1499 child_slot_desc->CodegenWriteCollectionVarlenChild(codegen, builder, master_tuple,
1500 children_tuple, fn, insert_before, pool_val);
1501 } else if (child_type.IsStructType()) {
1502 child_slot_desc->CodegenWriteCollectionStructChild(codegen, builder,
1503 master_tuple, children_tuple, fn, insert_before, pool_val);
1504 }
1505 }
1506}
1507
1508void SlotDescriptor::CodegenWriteCollectionStructChild(LlvmCodeGen* codegen,
1509 LlvmBuilder* builder, llvm::Value* master_tuple, llvm::Value* tuple,

Callers

nothing calls this directly

Calls 6

IsVarLenStringTypeMethod · 0.80
IsCollectionTypeMethod · 0.80
IsStructTypeMethod · 0.80
typeMethod · 0.45

Tested by

no test coverage detected