Babulal created CARBONDATA-2527:
-----------------------------------

             Summary: [MV] MV not selected when Session/JVM relauched
                 Key: CARBONDATA-2527
                 URL: https://issues.apache.org/jira/browse/CARBONDATA-2527
             Project: CarbonData
          Issue Type: Bug
            Reporter: Babulal


StartThrftServer  / CarbonSession 

 

0: jdbc:hive2://10.18.222.231:23040> create table tt11 ( name string, age int) 
stored by 'carbondata';
+---------+--+
| Result |
+---------+--+
+---------+--+
No rows selected (0.302 seconds)
0: jdbc:hive2://10.18.222.231:23040> insert into tt11 select 'babu',12;
+---------+--+
| Result |
+---------+--+
+---------+--+
No rows selected (11.291 seconds)
0: jdbc:hive2://10.18.222.231:23040> create datamap datamap29 using 'mv' as 
select age from tt11 ;
+---------+--+
| Result |
+---------+--+
+---------+--+
No rows selected (0.568 seconds)
0: jdbc:hive2://10.18.222.231:23040> rebuild datamap datamap29;
+---------+--+
| Result |
+---------+--+
+---------+--+
No rows selected (5.664 seconds)
0: jdbc:hive2://10.18.222.231:23040> explain select age from tt11 ;
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--+
| plan |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--+
| == CarbonData Profiler ==
Table Scan on datamap29_table
 - total blocklets: 1
 - filter: none
 - pruned by Main DataMap
 - skipped blocklets: 0
 |
| == Physical Plan ==
*BatchedScan CarbonDatasourceHadoopRelation [ Database name :default, Table 
name :datamap29_table, Schema 
:Some(StructType(StructField(tt11_age,IntegerType,true))) ] 
default.datamap29_table[tt11_age#574] |
+---------------------------------------------------------------------------------------------------

 

 

Now close beeline and open again  Or if trying from CarbonSession Example then 
just run  spark.sql("explain select age from tt11 ") since table and mv is 
already created. 

 

0: jdbc:hive2://10.18.222.231:23040> explain select age from tt11 ;
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--+
| plan |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--+
| == CarbonData Profiler ==
Table Scan on tt11
 - total blocklets: 1
 - filter: none
 - pruned by Main DataMap
 - skipped blocklets: 0
 |
| == Physical Plan ==
*BatchedScan CarbonDatasourceHadoopRelation [ Database name :default, Table 
name :tt11, Schema :Some(StructType(StructField(name,StringType,true), 
StructField(age,IntegerType,true))) ] default.tt11[age#1308] |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--+
2 rows selected (0.889 seconds)

 

 

So before beeline MV table selected but after Beeline reopen again fact table 
is selected 

 

Cause :- 

private[mv] def lookupSummaryDataset(plan: LogicalPlan): Option[SummaryDataset] 
= readLock {
 summaryDatasets.find(sd => plan.sameResult(sd.plan))
}

 

This is using Spark's sameResult method to compare the logical plan but when 
re-run query ExpressionID is changed which is gives false.

Logical Plan from MV

Project [age#19]
+- SubqueryAlias tt11
 +- Relation[name#18,age#19] CarbonDatasourceHadoopRelation [ Database name 
:default, Table name :tt11, Schema 
:Some(StructType(StructField(name,StringType,true), 
StructField(age,IntegerType,true))) ]

 

Logical Plan from USer Query 

Project [age#97]
+- SubqueryAlias tt11
 +- Relation[name#96,age#97] CarbonDatasourceHadoopRelation [ Database name 
:default, Table name :tt11, Schema 
:Some(StructType(StructField(name,StringType,true), 
StructField(age,IntegerType,true))) ] 

Expression Id of age and name is changed . this is causing the issue. 

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to