[
https://issues.apache.org/jira/browse/DRILL-1459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hanifi Gunes updated DRILL-1459:
--------------------------------
Description:
Currently RecordBatchLoader#load relies on MaterializedField#create to
materialize a SerializedField. However, MaterializedField#create method
disregards child fields of SerializedField so the resultant materialized field
has only the root of the given serialized field. Instead, child fields are
added during vectorization.
Next time, we hit to RecordBatchLoader#load method, materialized field check
fails because the previous materialized field now has children but newly
materialized field does not. This misleads RecordBatchLoader#load to think that
schema has changed and to create a new vector even though schema is the same.
Additionally, running a nested query on the previously created vector instance
crashes the jvm.
was:
Currently RecordBatchLoader#load relies on MaterializedField#create to
materialize a SerializedField. However, MaterializedField#create method
disregards child fields of SerializedField so the resultant materialized field
has only the root field. Instead, child fields are added during vectorization.
Next time, we hit to RecordBatchLoader#load method, materialized field check
fails because the previous materialized field now has children but newly
materialized field does not. This misleads RecordBatchLoader#load to think that
schema has changed and to create a new vector even though schema is the same.
Additionally, running a nested query on the previously created vector instance
crashes the jvm.
> Invalid field materialization causes vectors being created multiple times and
> crashes jvm in case a nested field is accessed
> ----------------------------------------------------------------------------------------------------------------------------
>
> Key: DRILL-1459
> URL: https://issues.apache.org/jira/browse/DRILL-1459
> Project: Apache Drill
> Issue Type: Bug
> Reporter: Hanifi Gunes
> Assignee: Hanifi Gunes
>
> Currently RecordBatchLoader#load relies on MaterializedField#create to
> materialize a SerializedField. However, MaterializedField#create method
> disregards child fields of SerializedField so the resultant materialized
> field has only the root of the given serialized field. Instead, child fields
> are added during vectorization.
> Next time, we hit to RecordBatchLoader#load method, materialized field check
> fails because the previous materialized field now has children but newly
> materialized field does not. This misleads RecordBatchLoader#load to think
> that schema has changed and to create a new vector even though schema is the
> same.
> Additionally, running a nested query on the previously created vector
> instance crashes the jvm.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)