Prasanna Ravichandran created CARBONDATA-2537:
-------------------------------------------------
Summary: MV Dataset - User queries with 'having' condition is not
accessing the data from the MV datamap.
Key: CARBONDATA-2537
URL: https://issues.apache.org/jira/browse/CARBONDATA-2537
Project: CarbonData
Issue Type: Bug
Components: data-query
Environment: 3 Node Opensource ANT cluster.
Reporter: Prasanna Ravichandran
Attachments: image-2018-05-25-15-50-23-903.png
User queries with 'having' condition is not accessing the data from the MV
datamap. It is accessing the data from the Main table.
Test queries - spark shell:
scala>carbon.sql("CREATE TABLE originTable (empno int, empname String,
designation String, doj Timestamp, workgroupcategory int, workgroupcategoryname
String, deptno int, deptname String, projectcode int, projectjoindate
Timestamp, projectenddate Timestamp,attendance int, utilization int,salary int)
STORED BY 'org.apache.carbondata.format'").show()
++
||
++
++
scala>carbon.sql("LOAD DATA local inpath
'hdfs://hacluster/user/prasanna/data.csv' INTO TABLE originTable
OPTIONS('DELIMITER'= ',', 'QUOTECHAR'=
'\"','timestampformat'='dd-MM-yyyy')").show()
++
||
++
++
scala> carbon.sql("select empno from originTable having
salary>10000").show(200,false)
+-----+
|empno|
+-----+
|14 |
|15 |
|20 |
|19 |
+-----+
scala> carbon.sql("create datamap mv_hav using 'mv' as select empno from
originTable having salary>10000").show(200,false)
++
||
++
++
scala> carbon.sql("explain select empno from originTable having
salary>10000").show(200,false)
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|plan |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|== CarbonData Profiler ==
Table Scan on origintable
- total blocklets: 1
- filter: (salary <> null and salary > 10000)
- pruned by Main DataMap
- skipped blocklets: 0
|
|== Physical Plan ==
*Project [empno#1131]
+- *BatchedScan CarbonDatasourceHadoopRelation [ Database name :default, Table
name :origintable, Schema :Some(StructType(StructField(empno,IntegerType,true),
StructField(empname,StringType,true), StructField(designation,StringType,true),
StructField(doj,TimestampType,true),
StructField(workgroupcategory,IntegerType,true),
StructField(workgroupcategoryname,StringType,true),
StructField(deptno,IntegerType,true), StructField(deptname,StringType,true),
StructField(projectcode,IntegerType,true),
StructField(projectjoindate,TimestampType,true),
StructField(projectenddate,TimestampType,true),
StructField(attendance,IntegerType,true),
StructField(utilization,IntegerType,true),
StructField(salary,IntegerType,true))) ] default.origintable[empno#1131]
PushedFilters: [IsNotNull(salary), GreaterThan(salary,10000)]|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
!image-2018-05-25-15-50-23-903.png!
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)