Sorabh Hamirwasia created DRILL-6418:
----------------------------------------

             Summary: Handle Schema change in Unnest And Lateral for unnest 
field / non-unnest field
                 Key: DRILL-6418
                 URL: https://issues.apache.org/jira/browse/DRILL-6418
             Project: Apache Drill
          Issue Type: Improvement
            Reporter: Sorabh Hamirwasia
            Assignee: Sorabh Hamirwasia
             Fix For: 1.14.0


Handling the schema change scenarios for LATERAL and UNNEST when schema change 
is observed for non-unnest field and unnest field. It should also handle the 
scenario when UNNEST field is Repeated Map Type and schema change happens only 
in the children field of Map component. Following issues were found:

1) There were issues found in how scan treats that kind of data where it scans 
2 files, one has Map (let say cutomer_order) children type (custKey) as integer 
and other has custKey as string type. Then Scan just replaces the ValueVector 
from its output container for custKey but in the schema it has 2 fields with 
same name but different types.

2) Unnest and Lateral check for schema change across batches based on the 
MaterializedField and BatchSchema reference they store. But since it's a 
reference any change in pointed value changes their reference as well and hence 
comparison always returns true. So for Unnest it actually keeps a clone of the 
Materialized Field instead of reference and use that to determine for schema 
change. For LATERAL any OK_NEW_SCHEMA from upstream is treated as actual schema 
change and setup is done again.

3) Since the MaterializedField is mutable the isEquivalent method checks for 
object equality which is removed as that is not correct for mutable objects.



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

Reply via email to