[
https://issues.apache.org/jira/browse/DRILL-4707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15317479#comment-15317479
]
ASF GitHub Bot commented on DRILL-4707:
---------------------------------------
GitHub user jinfengni opened a pull request:
https://github.com/apache/drill/pull/515
DRILL-4707: Fix memory leak or incorrect query result in case two col…
…umn names are case-insensitive identical
Fix is mainly in CALCITE-528.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/jinfengni/incubator-drill DRILL-4707
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/drill/pull/515.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #515
----
commit 1bab184e862be5baa5f47804f506bdb56b35b374
Author: Jinfeng Ni <[email protected]>
Date: 2016-06-06T00:37:22Z
DRILL-4707: Fix memory leak or incorrect query result in case two column
names are case-insensitive identical
Fix is mainly in CALCITE-528.
----
> Conflicting columns names under case-insensitive policy lead to either memory
> leak or incorrect result
> ------------------------------------------------------------------------------------------------------
>
> Key: DRILL-4707
> URL: https://issues.apache.org/jira/browse/DRILL-4707
> Project: Apache Drill
> Issue Type: Bug
> Reporter: Jinfeng Ni
> Assignee: Jinfeng Ni
> Priority: Critical
>
> On latest master branch:
> {code}
> select version, commit_id, commit_message from sys.version;
> +-----------------+-------------------------------------------+---------------------------------------------------------------------------------+
> | version | commit_id |
> commit_message |
> +-----------------+-------------------------------------------+---------------------------------------------------------------------------------+
> | 1.7.0-SNAPSHOT | 3186217e5abe3c6c2c7e504cdb695567ff577e4c | DRILL-4607:
> Add a split function that allows to separate string by a delimiter |
> +-----------------+-------------------------------------------+---------------------------------------------------------------------------------+
> {code}
> If a query has two conflicting column names under case-insensitive policy,
> Drill will either hit memory leak, or incorrect issue.
> Q1.
> {code}
> select r_regionkey as XYZ, r_name as xyz FROM cp.`tpch/region.parquet`;
> Error: SYSTEM ERROR: IllegalStateException: Memory was leaked by query.
> Memory leaked: (131072)
> Allocator(op:0:0:1:Project) 1000000/131072/2490368/10000000000
> (res/actual/peak/limit)
> Fragment 0:0
> {code}
> Q2: return only one column in the result.
> {code}
> select n_nationkey as XYZ, n_regionkey as xyz FROM cp.`tpch/nation.parquet`;
> +------+
> | XYZ |
> +------+
> | 0 |
> | 1 |
> | 1 |
> | 1 |
> | 4 |
> | 0 |
> | 3 |
> {code}
> The cause of the problem seems to be that the Project thinks the two incoming
> columns as identical (since Drill adopts case-insensitive for column names in
> execution).
> The planner should make sure that the conflicting columns are resolved, since
> execution is name-based.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)