Ben Kietzman created ARROW-12873: ------------------------------------ Summary: [C++][Compute] Support tagging ExecBatches with arbitrary extra information Key: ARROW-12873 URL: https://issues.apache.org/jira/browse/ARROW-12873 Project: Apache Arrow Issue Type: Improvement Components: C++ Reporter: Ben Kietzman
Ideally, ExecBatches could be tagged with arbitrary optional objects for tracing purposes and to transmit execution hints from one ExecNode to another. These should *not* be explicit members like ExecBatch::selection_vector is, since they may not originate from the arrow library. For an example within the arrow project: {{libarrow_dataset}} will be used to produce ScanNodes and a WriteNodes and it's useful to tag scanned batches with their {{Fragment}} of origin. However adding {{ExecBatch::fragment}} would result in a cyclic dependency. To facilitate this tagging capability, we would need a type erased container something like {code} struct AnySet { void* Get(tag_t tag); void Set(tag_t tag, void* value, FnOnce<void(void*)> destructor); }; {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)