Paul Rogers created DRILL-6585:
----------------------------------

             Summary: PartitionSender clones vectors, but shares field metdata
                 Key: DRILL-6585
                 URL: https://issues.apache.org/jira/browse/DRILL-6585
             Project: Apache Drill
          Issue Type: Bug
    Affects Versions: 1.13.0
            Reporter: Paul Rogers
            Assignee: Paul Rogers


See the discussion forĀ [PR #1244 for 
DRILL-6373|https://github.com/apache/drill/pull/1244].

The PartitionSender clones vectors. But, it does so by reusing the 
{{MaterializedField}} from the original vector. Though the original authors of 
{{MaterializedField}} apparently meant it to be immutable, later changes for 
maps and unions ended up changing it to add members.

When cloning a map, we get the original map materialized field, then start 
doctoring it up as we add the cloned map members. This screws up the original 
map vector's metadata.

The solution is to clone an empty version of the materialized field when 
creating a new vector.

But, since much code creates vectors by giving a perfectly valid, unique 
materialized field, we want to add a new method for use by the ill-behaved 
uses, such as PartitionSender, that ask to create a new vector without cloning 
the materialized field.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to