Github user ravipesala commented on a diff in the pull request:

    https://github.com/apache/carbondata/pull/2302#discussion_r187789640
  
    --- Diff: 
integration/spark2/src/main/spark2.2/org/apache/spark/sql/hive/CarbonAnalyzer.scala
 ---
    @@ -20,15 +20,33 @@ import org.apache.spark.sql.SparkSession
     import org.apache.spark.sql.catalyst.analysis.Analyzer
     import org.apache.spark.sql.catalyst.catalog.SessionCatalog
     import org.apache.spark.sql.catalyst.plans.logical.LogicalPlan
    +import org.apache.spark.sql.catalyst.rules.Rule
     import org.apache.spark.sql.internal.SQLConf
    +import org.apache.spark.util.CarbonReflectionUtils
     
     class CarbonAnalyzer(catalog: SessionCatalog,
         conf: SQLConf,
         sparkSession: SparkSession,
         analyzer: Analyzer) extends Analyzer(catalog, conf) {
    +
    +  val mvPlan = try {
    +    CarbonReflectionUtils.createObject(
    +      "org.apache.carbondata.mv.datamap.MVAnalyzerRule",
    +      sparkSession)._1.asInstanceOf[Rule[LogicalPlan]]
    +  } catch {
    +    case e: Exception =>
    +      null
    +  }
    +
       override def execute(plan: LogicalPlan): LogicalPlan = {
         var logicalPlan = analyzer.execute(plan)
         logicalPlan = 
CarbonPreAggregateDataLoadingRules(sparkSession).apply(logicalPlan)
    -    CarbonPreAggregateQueryRules(sparkSession).apply(logicalPlan)
    +    logicalPlan = 
CarbonPreAggregateQueryRules(sparkSession).apply(logicalPlan)
    +    // TODO Get the analyzer rules from registered datamap class and apply 
here.
    --- End diff --
    
    ok


---

Reply via email to