Github user jackylk commented on a diff in the pull request: https://github.com/apache/carbondata/pull/2444#discussion_r200560931 --- Diff: datamap/mv/plan/src/main/scala/org/apache/carbondata/mv/plans/modular/Harmonizer.scala --- @@ -36,17 +36,33 @@ abstract class Harmonizer(conf: SQLConf) def batches: Seq[Batch] = { Batch( "Data Harmonizations", fixedPoint, - HarmonizeDimensionTable, - HarmonizeFactTable) :: Nil + Seq( HarmonizeDimensionTable) ++ + extendedOperatorHarmonizationRules: _*) :: Nil +// HarmonizeFactTable) :: Nil } + + /** + * Override to provide additional rules for the modular operator harmonization batch. + */ + def extendedOperatorHarmonizationRules: Seq[Rule[ModularPlan]] = Nil +} + +/** + * A full Harmonizer - harmonize both fact and dimension tables + */ +object FullHarmonizer extends FullHarmonizer + +class FullHarmonizer extends Harmonizer(new SQLConf()) { + override def extendedOperatorHarmonizationRules: Seq[Rule[ModularPlan]] = + super.extendedOperatorHarmonizationRules ++ (HarmonizeFactTable :: Nil) } /** - * An default Harmonizer + * A semi Harmonizer - harmonize dimension tables only --- End diff -- Can you add description for semi harmonizer?
---