| 221 | } |
| 222 | |
| 223 | Tuple* UnnestNode::CreateNullTuple(int coll_idx, RowBatch* row_batch) const { |
| 224 | const TupleDescriptor* coll_tuple = |
| 225 | (*coll_slot_descs_)[coll_idx]->children_tuple_descriptor(); |
| 226 | DCHECK(coll_tuple != nullptr); |
| 227 | if (coll_tuple->slots().size() == 0) return nullptr; |
| 228 | DCHECK_EQ(coll_tuple->slots().size(), 1); |
| 229 | const SlotDescriptor* coll_item_slot = coll_tuple->slots()[0]; |
| 230 | DCHECK(coll_item_slot != nullptr); |
| 231 | Tuple* tuple = Tuple::Create(item_byte_sizes_[coll_idx], row_batch->tuple_data_pool()); |
| 232 | if (tuple == nullptr) return nullptr; |
| 233 | tuple->SetNull(coll_item_slot->null_indicator_offset()); |
| 234 | return tuple; |
| 235 | } |
| 236 | |
| 237 | Status UnnestNode::Reset(RuntimeState* state, RowBatch* row_batch) { |
| 238 | item_idx_ = 0; |
nothing calls this directly
no test coverage detected