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)