> On May 18, 2017, 12:29 a.m., Ashutosh Chauhan wrote:
> > ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveProjectSortTransposeRule.java
> > Lines 70-71 (original), 81-83 (patched)
> > <https://reviews.apache.org/r/56140/diff/8/?file=1703996#file1703996line81>
> >
> > This change looks correct. But don't understand why it was needed. Can
> > you describe the need for it?
This is a bug exposed by this patch. The query is
{code}
create table s as select * from src limit 10;
set hive.optimize.limittranspose=true;
explain
select key from s a
union all
select key from s b
order by key
limit 5;
{code}
HiveProjectSortTransposeRule is triggered for
{code}
HiveProject(key=[$0])
HiveSortLimit(sort0=[$1], dir0=[ASC-nulls-first], offset=[0], fetch=[5])
{code}
when
{code}
if (map.getTarget(fc.getFieldIndex()) < 0) {
return;
}
{code}
is called, fc.getFieldIndex() is 1, but map is 0->0. Then it throws
org.apache.calcite.util.mapping.Mappings$NoElementException: source #1 has no
target in mapping [size=1, sourceCount=2, targetCount=1, elements=[0:0]]
- pengcheng
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/56140/#review175299
-----------------------------------------------------------
On May 1, 2017, 5:30 p.m., pengcheng xiong wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/56140/
> -----------------------------------------------------------
>
> (Updated May 1, 2017, 5:30 p.m.)
>
>
> Review request for hive and Ashutosh Chauhan.
>
>
> Repository: hive-git
>
>
> Description
> -------
>
> HIVE-15160
>
>
> Diffs
> -----
>
>
> ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveProjectSortTransposeRule.java
> 1487ed4f8e
> ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java 1b054a7e24
> ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java 262dafb487
> ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
> 654f3b1772
> ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java
> 8f8eab0d9c
> ql/src/test/queries/clientpositive/order_by_expr_1.q PRE-CREATION
> ql/src/test/queries/clientpositive/order_by_expr_2.q PRE-CREATION
> ql/src/test/results/clientpositive/annotate_stats_select.q.out 873f1abb25
> ql/src/test/results/clientpositive/cp_sel.q.out 1778ccd6a6
> ql/src/test/results/clientpositive/druid_basic2.q.out 6177d56987
> ql/src/test/results/clientpositive/dynamic_rdd_cache.q.out 2abb819558
> ql/src/test/results/clientpositive/groupby_grouping_sets_grouping.q.out
> 473d17a1bd
> ql/src/test/results/clientpositive/llap/bucket_groupby.q.out d724131fca
> ql/src/test/results/clientpositive/llap/explainuser_1.q.out 584c3b5520
> ql/src/test/results/clientpositive/llap/limit_pushdown.q.out dd54dd22a6
> ql/src/test/results/clientpositive/llap/limit_pushdown3.q.out 24645b6426
> ql/src/test/results/clientpositive/llap/offset_limit_ppd_optimizer.q.out
> 83de1fbea1
> ql/src/test/results/clientpositive/llap/vector_coalesce.q.out 578f849bdb
> ql/src/test/results/clientpositive/llap/vector_date_1.q.out a4f1050c89
> ql/src/test/results/clientpositive/llap/vector_decimal_2.q.out 144356c108
> ql/src/test/results/clientpositive/llap/vector_decimal_round.q.out
> 8bd80cf860
>
> ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets_grouping.q.out
> 5af9e61b0a
>
> ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets_limit.q.out
> f731ceecdc
> ql/src/test/results/clientpositive/llap/vector_interval_1.q.out debf5ab39e
> ql/src/test/results/clientpositive/llap/vector_interval_arithmetic.q.out
> aadb6e72cd
> ql/src/test/results/clientpositive/order3.q.out 898f7a8853
> ql/src/test/results/clientpositive/order_by_expr_1.q.out PRE-CREATION
> ql/src/test/results/clientpositive/order_by_expr_2.q.out PRE-CREATION
> ql/src/test/results/clientpositive/pcr.q.out a1301fdf79
> ql/src/test/results/clientpositive/perf/query31.q.out 3ed312d3e3
> ql/src/test/results/clientpositive/perf/query36.q.out 57ab26acc6
> ql/src/test/results/clientpositive/perf/query39.q.out 19472c4d5e
> ql/src/test/results/clientpositive/perf/query42.q.out 3bebac3321
> ql/src/test/results/clientpositive/perf/query52.q.out 74ecaf28ba
> ql/src/test/results/clientpositive/perf/query64.q.out 6b42393aad
> ql/src/test/results/clientpositive/perf/query66.q.out 072bfee92b
> ql/src/test/results/clientpositive/perf/query70.q.out 8e42fac9c5
> ql/src/test/results/clientpositive/perf/query75.q.out b1e236d325
> ql/src/test/results/clientpositive/perf/query81.q.out a09d5c99b5
> ql/src/test/results/clientpositive/perf/query85.q.out 168bcd2a4a
> ql/src/test/results/clientpositive/perf/query86.q.out 734e6a480b
> ql/src/test/results/clientpositive/perf/query89.q.out 66481f710b
> ql/src/test/results/clientpositive/perf/query91.q.out e592bba8d9
> ql/src/test/results/clientpositive/pointlookup2.q.out 3438c74608
> ql/src/test/results/clientpositive/pointlookup3.q.out 2c3e39fd15
> ql/src/test/results/clientpositive/ppd_udf_case.q.out 7678d03415
> ql/src/test/results/clientpositive/spark/dynamic_rdd_cache.q.out 6572511967
> ql/src/test/results/clientpositive/spark/limit_pushdown.q.out ede0096c73
> ql/src/test/results/clientpositive/spark/pcr.q.out 77ac020d07
> ql/src/test/results/clientpositive/vector_coalesce.q.out f158236beb
> ql/src/test/results/clientpositive/vector_date_1.q.out c2389e6b1e
> ql/src/test/results/clientpositive/vector_decimal_round.q.out de49c170cf
> ql/src/test/results/clientpositive/vector_interval_1.q.out f53a2c2db5
> ql/src/test/results/clientpositive/vector_interval_arithmetic.q.out
> 75250e30a4
> ql/src/test/results/clientpositive/view_alias.q.out 90bf28dd9b
>
>
> Diff: https://reviews.apache.org/r/56140/diff/8/
>
>
> Testing
> -------
>
>
> Thanks,
>
> pengcheng xiong
>
>