[
https://issues.apache.org/jira/browse/CARBONDATA-2550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16524455#comment-16524455
]
xubo245 commented on CARBONDATA-2550:
-------------------------------------
It's work fine in cluster:
{code:java}
0: jdbc:hive2://hadoop1:10000> create datamap map1 using 'mv' as select
name,sum(salary) from mvtable1 group by name;
+---------+--+
| Result |
+---------+--+
+---------+--+
No rows selected (0.67 seconds)
0: jdbc:hive2://hadoop1:10000> rebuild datamap map1;
+---------+--+
| Result |
+---------+--+
+---------+--+
No rows selected (1.664 seconds)
0: jdbc:hive2://hadoop1:10000> select name,sum(salary) from mvtable1 group by
name limit 2;
+-------+--------------+--+
| name | sum(salary) |
+-------+--------------+--+
| n3 | 12 |
| n1 | 36 |
+-------+--------------+--+
2 rows selected (0.553 seconds)
0: jdbc:hive2://hadoop1:10000> select name,sum(salary) from mvtable1 group by
name limit 1;
+-------+--------------+--+
| name | sum(salary) |
+-------+--------------+--+
| n3 | 12 |
+-------+--------------+--+
1 row selected (0.37 seconds)
0: jdbc:hive2://hadoop1:10000> explain select name,sum(salary) from mvtable1
group by name limit 1;
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--+
|
plan
|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--+
| == CarbonData Profiler ==
Table Scan on map1_table
- total blocklets: 1
- filter: none
- pruned by Main DataMap
- skipped blocklets: 0
|
| == Physical Plan ==
CollectLimit 1
+- *HashAggregate(keys=[mvtable1_name#737], functions=[sum(sum_salary#738L)])
+- Exchange hashpartitioning(mvtable1_name#737, 200)
+- *HashAggregate(keys=[mvtable1_name#737],
functions=[partial_sum(sum_salary#738L)])
+- *BatchedScan CarbonDatasourceHadoopRelation [ Database name
:default, Table name :map1_table, Schema
:Some(StructType(StructField(mvtable1_name,StringType,true),
StructField(sum_salary,LongType,true))) ]
default.map1_table[mvtable1_name#737,sum_salary#738L] |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--+
2 rows selected (0.209 seconds)
0: jdbc:hive2://hadoop1:10000>
{code}
> [MV] Limit is ignored when data fetched from MV, Query rewrite is Wrong
> -----------------------------------------------------------------------
>
> Key: CARBONDATA-2550
> URL: https://issues.apache.org/jira/browse/CARBONDATA-2550
> Project: CarbonData
> Issue Type: Bug
> Reporter: Babulal
> Assignee: xubo245
> Priority: Major
>
> 0: jdbc:hive2://10.18.222.231:23040> create table mvtable1(name string,age
> int,salary int) stored by 'carbondata';
> +---------+--+
> | Result |
> +---------+--+
> +---------+--+
> No rows selected (0.279 seconds)
> 0: jdbc:hive2://10.18.222.231:23040> insert into mvtable1 select 'n1',12,12;
> +---------+--+
> | Result |
> +---------+--+
> +---------+--+
> No rows selected (11.973 seconds)
> 0: jdbc:hive2://10.18.222.231:23040> insert into mvtable1 select 'n1',12,12;
> +---------+--+
> | Result |
> +---------+--+
> +---------+--+
> No rows selected (9.92 seconds)
> 0: jdbc:hive2://10.18.222.231:23040> insert into mvtable1 select 'n3',12,12;
> +---------+--+
> | Result |
> +---------+--+
> +---------+--+
> No rows selected (9.883 seconds)
> 0: jdbc:hive2://10.18.222.231:23040> insert into mvtable1 select 'n4',12,12;
> +---------+--+
> | Result |
> +---------+--+
> +---------+--+
> No rows selected (10.488 seconds)
> 0: jdbc:hive2://10.18.222.231:23040> select name,sum(salary) from mvtable1
> group by name;
> +-------+--------------+--+
> | name | sum(salary) |
> +-------+--------------+--+
> | n3 | 12 |
> | n1 | 24 |
> | n4 | 12 |
> +-------+--------------+–+
> 0: jdbc:hive2://10.18.222.231:23040> select name,sum(salary) from mvtable1
> group by name limit 2;
> +-------+--------------+--+
> | name | sum(salary) |
> +-------+--------------+--+
> | n3 | 12 |
> | n1 | 24 |
> +-------+--------------+--+
> 2 rows selected (4.175 seconds)
> 0: jdbc:hive2://10.18.222.231:23040> create datamap map1 using 'mv' as select
> name,sum(salary) from mvtable1 group by name;
> +---------+--+
> | Result |
> +---------+--+
> +---------+--+
> No rows selected (0.396 seconds)
> 0: jdbc:hive2://10.18.222.231:23040> rebuild datamap map1;
> +---------+--+
> | Result |
> +---------+--+
> +---------+--+
> No rows selected (13.246 seconds)
>
> *0: jdbc:hive2://10.18.222.231:23040> select name,sum(salary) from mvtable1
> group by name limit 2;*
> +----------------+-------------+--+
> | mvtable1_name | sum_salary |
> +----------------+-------------+--+
> | n3 | 12 |
> | n1 | 24 |
> | n4 | 12 |
> +----------------+-------------+--+
> 3 rows selected (2.453 seconds)
> *0: jdbc:hive2://10.18.222.231:23040> select name,sum(salary) from mvtable1
> group by name limit 1;*
> +----------------+-------------+--+
> | mvtable1_name | sum_salary |
> +----------------+-------------+--+
> | n3 | 12 |
> | n1 | 24 |
> | n4 | 12 |
> +----------------+-------------+--+
> 3 rows selected (0.347 seconds)
> 0: jdbc:hive2://10.18.222.231:23040>
>
>
> Even limit is given MV returns all the records from MV table.
> Cause:-
> When Rewriting MV query ,limit is ignored,
> 0: jdbc:hive2://10.18.222.231:23040> explain select name,sum(salary) from
> mvtable1 *group by name limit 2;*
> | plan |
> | == CarbonData Profiler ==
> Table Scan on map1_table
> - total blocklets: 2
> - filter: none
> - pruned by Main DataMap
> - skipped blocklets: 0
> |
> | == Physical Plan ==
> *BatchedScan CarbonDatasourceHadoopRelation [ Database name :default, Table
> name :map1_table, Schema
> :Some(StructType(StructField(mvtable1_name,StringType,true),
> StructField(sum_salary,LongType,true))) ]
> default.map1_table[mvtable1_name#4438,sum_salary#4614L] |
> +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--+
> 2 rows selected (0.36
>
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)