[ https://issues.apache.org/jira/browse/DRILL-6418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sorabh Hamirwasia updated DRILL-6418: ------------------------------------- Labels: ready-to-commit (was: ) > 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 > Priority: Major > Labels: ready-to-commit > 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)