Repository: carbondata
Updated Branches:
  refs/heads/master dd809ed9d -> 946e4ce5a


http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/RowLevelRangeFilterResolverImpl.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/RowLevelRangeFilterResolverImpl.java
 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/RowLevelRangeFilterResolverImpl.java
index 47ca7e1..3bdca36 100644
--- 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/RowLevelRangeFilterResolverImpl.java
+++ 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/RowLevelRangeFilterResolverImpl.java
@@ -30,6 +30,7 @@ import 
org.apache.carbondata.core.keygenerator.directdictionary.DirectDictionary
 import org.apache.carbondata.core.metadata.AbsoluteTableIdentifier;
 import org.apache.carbondata.core.metadata.encoder.Encoding;
 import org.apache.carbondata.core.metadata.schema.table.column.CarbonDimension;
+import org.apache.carbondata.core.metadata.schema.table.column.CarbonMeasure;
 import org.apache.carbondata.core.scan.expression.ColumnExpression;
 import org.apache.carbondata.core.scan.expression.Expression;
 import org.apache.carbondata.core.scan.expression.ExpressionResult;
@@ -37,7 +38,7 @@ import 
org.apache.carbondata.core.scan.expression.conditional.BinaryConditionalE
 import 
org.apache.carbondata.core.scan.expression.exception.FilterIllegalMemberException;
 import 
org.apache.carbondata.core.scan.expression.exception.FilterUnsupportedException;
 import 
org.apache.carbondata.core.scan.expression.logical.BinaryLogicalExpression;
-import org.apache.carbondata.core.scan.filter.DimColumnFilterInfo;
+import org.apache.carbondata.core.scan.filter.ColumnFilterInfo;
 import org.apache.carbondata.core.scan.filter.FilterUtil;
 import org.apache.carbondata.core.scan.filter.intf.FilterExecuterType;
 import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.DimColumnResolvedFilterInfo;
@@ -57,7 +58,7 @@ public class RowLevelRangeFilterResolverImpl extends 
ConditionalFilterResolverIm
 
   public RowLevelRangeFilterResolverImpl(Expression exp, boolean 
isExpressionResolve,
       boolean isIncludeFilter, AbsoluteTableIdentifier tableIdentifier) {
-    super(exp, isExpressionResolve, isIncludeFilter, tableIdentifier);
+    super(exp, isExpressionResolve, isIncludeFilter, tableIdentifier, false);
     dimColEvaluatorInfoList =
         new 
ArrayList<DimColumnResolvedFilterInfo>(CarbonCommonConstants.DEFAULT_COLLECTION_SIZE);
     msrColEvalutorInfoList = new ArrayList<MeasureColumnResolvedFilterInfo>(
@@ -73,19 +74,26 @@ public class RowLevelRangeFilterResolverImpl extends 
ConditionalFilterResolverIm
    */
   public byte[][] getFilterRangeValues(SegmentProperties segmentProperties) {
 
-    if (null != dimColEvaluatorInfoList.get(0).getFilterValues() && 
!dimColEvaluatorInfoList.get(0)
-        .getDimension().hasEncoding(Encoding.DICTIONARY)) {
+    if (dimColEvaluatorInfoList.size() > 0 && null != 
dimColEvaluatorInfoList.get(0)
+        .getFilterValues() && !dimColEvaluatorInfoList.get(0).getDimension()
+        .hasEncoding(Encoding.DICTIONARY)) {
       List<byte[]> noDictFilterValuesList =
           
dimColEvaluatorInfoList.get(0).getFilterValues().getNoDictionaryFilterValuesList();
       return noDictFilterValuesList.toArray((new 
byte[noDictFilterValuesList.size()][]));
-    } else if (null != dimColEvaluatorInfoList.get(0).getFilterValues() && 
dimColEvaluatorInfoList
-        .get(0).getDimension().hasEncoding(Encoding.DIRECT_DICTIONARY)) {
+    } else if (dimColEvaluatorInfoList.size() > 0 && null != 
dimColEvaluatorInfoList.get(0)
+        .getFilterValues() && dimColEvaluatorInfoList.get(0).getDimension()
+        .hasEncoding(Encoding.DIRECT_DICTIONARY)) {
       CarbonDimension dimensionFromCurrentBlock = segmentProperties
           
.getDimensionFromCurrentBlock(this.dimColEvaluatorInfoList.get(0).getDimension());
       if (null != dimensionFromCurrentBlock) {
         return 
FilterUtil.getKeyArray(this.dimColEvaluatorInfoList.get(0).getFilterValues(),
-            dimensionFromCurrentBlock, segmentProperties);
+            dimensionFromCurrentBlock, null, segmentProperties);
       }
+    } else if (msrColEvalutorInfoList.size() > 0 && null != 
msrColEvalutorInfoList.get(0)
+        .getFilterValues()) {
+      List<byte[]> measureFilterValuesList =
+          
msrColEvalutorInfoList.get(0).getFilterValues().getMeasuresFilterValuesList();
+      return measureFilterValuesList.toArray((new 
byte[measureFilterValuesList.size()][]));
     }
     return null;
 
@@ -101,11 +109,13 @@ public class RowLevelRangeFilterResolverImpl extends 
ConditionalFilterResolverIm
     switch (exp.getFilterExpressionType()) {
       case GREATERTHAN:
       case GREATERTHAN_EQUALTO:
-        
FilterUtil.getStartKey(dimColEvaluatorInfoList.get(0).getDimensionResolvedFilterInstance(),
-            segmentProperties, startKey, startKeyList);
-        FilterUtil
-            
.getStartKeyForNoDictionaryDimension(dimColEvaluatorInfoList.get(0), 
segmentProperties,
-                noDictStartKeys);
+        if (dimColEvaluatorInfoList.size() > 0) {
+          FilterUtil
+              
.getStartKey(dimColEvaluatorInfoList.get(0).getDimensionResolvedFilterInstance(),
+                  segmentProperties, startKey, startKeyList);
+          
FilterUtil.getStartKeyForNoDictionaryDimension(dimColEvaluatorInfoList.get(0),
+              segmentProperties, noDictStartKeys);
+        }
         break;
       default:
         //do nothing
@@ -122,12 +132,13 @@ public class RowLevelRangeFilterResolverImpl extends 
ConditionalFilterResolverIm
     switch (exp.getFilterExpressionType()) {
       case LESSTHAN:
       case LESSTHAN_EQUALTO:
-        FilterUtil
-            
.getEndKey(dimColEvaluatorInfoList.get(0).getDimensionResolvedFilterInstance(), 
endKeys,
-                segmentProperties, endKeyList);
-        FilterUtil
-            .getEndKeyForNoDictionaryDimension(dimColEvaluatorInfoList.get(0), 
segmentProperties,
-                noDicEndKeys);
+        if (dimColEvaluatorInfoList.size() > 0) {
+          
FilterUtil.getEndKey(dimColEvaluatorInfoList.get(0).getDimensionResolvedFilterInstance(),
+              endKeys, segmentProperties, endKeyList);
+          FilterUtil
+              
.getEndKeyForNoDictionaryDimension(dimColEvaluatorInfoList.get(0), 
segmentProperties,
+                  noDicEndKeys);
+        }
         break;
       default:
         //do nothing
@@ -168,6 +179,40 @@ public class RowLevelRangeFilterResolverImpl extends 
ConditionalFilterResolverIm
     return filterValuesList;
   }
 
+  private List<byte[]> getMeasureRangeValues(CarbonMeasure carbonMeasure) {
+    List<ExpressionResult> listOfExpressionResults = new 
ArrayList<ExpressionResult>(20);
+    if (this.getFilterExpression() instanceof BinaryConditionalExpression) {
+      listOfExpressionResults =
+          ((BinaryConditionalExpression) 
this.getFilterExpression()).getLiterals();
+    }
+    List<byte[]> filterValuesList = new ArrayList<byte[]>(20);
+    boolean invalidRowsPresent = false;
+    for (ExpressionResult result : listOfExpressionResults) {
+      try {
+        if (result.getString() == null) {
+          
filterValuesList.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL.getBytes());
+          continue;
+        }
+        filterValuesList.add(DataTypeUtil
+            .getMeasureByteArrayBasedOnDataTypes(result.getString(),
+                result.getDataType(), carbonMeasure));
+      } catch (FilterIllegalMemberException e) {
+        // Any invalid member while evaluation shall be ignored, system will 
log the
+        // error only once since all rows the evaluation happens so inorder to 
avoid
+        // too much log inforation only once the log will be printed.
+        FilterUtil.logError(e, invalidRowsPresent);
+      }
+    }
+    Comparator<byte[]> filterMeasureComaparator = new Comparator<byte[]>() {
+      @Override public int compare(byte[] filterMember1, byte[] filterMember2) 
{
+        return ByteUtil.UnsafeComparer.INSTANCE.compareTo(filterMember1, 
filterMember2);
+      }
+
+    };
+    Collections.sort(filterValuesList, filterMeasureComaparator);
+    return filterValuesList;
+  }
+
   /**
    * Method which will resolve the filter expression by converting the filter
    * member to its assigned dictionary values.
@@ -183,7 +228,7 @@ public class RowLevelRangeFilterResolverImpl extends 
ConditionalFilterResolverIm
       for (ColumnExpression columnExpression : columnList) {
         if (columnExpression.isDimension()) {
           dimColumnEvaluatorInfo = new DimColumnResolvedFilterInfo();
-          DimColumnFilterInfo filterInfo = new DimColumnFilterInfo();
+          ColumnFilterInfo filterInfo = new ColumnFilterInfo();
           
dimColumnEvaluatorInfo.setColumnIndex(columnExpression.getCarbonColumn().getOrdinal());
           dimColumnEvaluatorInfo.setRowIndex(index++);
           dimColumnEvaluatorInfo.setDimension(columnExpression.getDimension());
@@ -200,10 +245,19 @@ public class RowLevelRangeFilterResolverImpl extends 
ConditionalFilterResolverIm
           dimColEvaluatorInfoList.add(dimColumnEvaluatorInfo);
         } else {
           msrColumnEvalutorInfo = new MeasureColumnResolvedFilterInfo();
+          ColumnFilterInfo filterInfo = new ColumnFilterInfo();
+          msrColumnEvalutorInfo.setMeasure(columnExpression.getMeasure());
           msrColumnEvalutorInfo.setRowIndex(index++);
-          msrColumnEvalutorInfo
-              .setColumnIndex(columnExpression.getCarbonColumn().getOrdinal());
+          
msrColumnEvalutorInfo.setCarbonColumn(columnExpression.getCarbonColumn());
+          
msrColumnEvalutorInfo.setColumnIndex(columnExpression.getCarbonColumn().getOrdinal());
           
msrColumnEvalutorInfo.setType(columnExpression.getCarbonColumn().getDataType());
+          msrColumnEvalutorInfo.setMeasureExistsInCurrentSilce(false);
+          filterInfo
+              
.setMeasuresFilterValuesList(getMeasureRangeValues(columnExpression.getMeasure()));
+          filterInfo.setIncludeFilter(isIncludeFilter);
+          msrColumnEvalutorInfo.setFilterValues(filterInfo);
+          msrColumnEvalutorInfo
+              .addMeasureResolvedFilterInstance(columnExpression.getMeasure(), 
filterInfo);
           msrColEvalutorInfoList.add(msrColumnEvalutorInfo);
         }
       }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/ColumnResolvedFilterInfo.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/ColumnResolvedFilterInfo.java
 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/ColumnResolvedFilterInfo.java
new file mode 100644
index 0000000..456a64e
--- /dev/null
+++ 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/ColumnResolvedFilterInfo.java
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.carbondata.core.scan.filter.resolver.resolverinfo;
+
+
+public class ColumnResolvedFilterInfo {
+}

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/DimColumnResolvedFilterInfo.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/DimColumnResolvedFilterInfo.java
 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/DimColumnResolvedFilterInfo.java
index fee15a4..d55a146 100644
--- 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/DimColumnResolvedFilterInfo.java
+++ 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/DimColumnResolvedFilterInfo.java
@@ -26,11 +26,11 @@ import java.util.Map;
 
 import org.apache.carbondata.core.metadata.schema.table.column.CarbonDimension;
 import 
org.apache.carbondata.core.scan.expression.exception.FilterUnsupportedException;
-import org.apache.carbondata.core.scan.filter.DimColumnFilterInfo;
+import org.apache.carbondata.core.scan.filter.ColumnFilterInfo;
 import 
org.apache.carbondata.core.scan.filter.resolver.metadata.FilterResolverMetadata;
 import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.visitor.ResolvedFilterInfoVisitorIntf;
 
-public class DimColumnResolvedFilterInfo implements Serializable {
+public class DimColumnResolvedFilterInfo extends ColumnResolvedFilterInfo 
implements Serializable {
   /**
    *
    */
@@ -53,19 +53,19 @@ public class DimColumnResolvedFilterInfo implements 
Serializable {
   /**
    * reolved filter object of a particlar filter Expression.
    */
-  private DimColumnFilterInfo resolvedFilterValueObj;
+  private ColumnFilterInfo resolvedFilterValueObj;
 
-  private Map<CarbonDimension, List<DimColumnFilterInfo>> 
dimensionResolvedFilter;
+  private Map<CarbonDimension, List<ColumnFilterInfo>> dimensionResolvedFilter;
 
   public DimColumnResolvedFilterInfo() {
-    dimensionResolvedFilter = new HashMap<CarbonDimension, 
List<DimColumnFilterInfo>>(20);
+    dimensionResolvedFilter = new HashMap<CarbonDimension, 
List<ColumnFilterInfo>>(20);
   }
 
   public void addDimensionResolvedFilterInstance(CarbonDimension dimension,
-      DimColumnFilterInfo filterResolvedObj) {
-    List<DimColumnFilterInfo> currentVals = 
dimensionResolvedFilter.get(dimension);
+      ColumnFilterInfo filterResolvedObj) {
+    List<ColumnFilterInfo> currentVals = 
dimensionResolvedFilter.get(dimension);
     if (null == currentVals) {
-      currentVals = new ArrayList<DimColumnFilterInfo>(20);
+      currentVals = new ArrayList<ColumnFilterInfo>(20);
       currentVals.add(filterResolvedObj);
       dimensionResolvedFilter.put(dimension, currentVals);
     } else {
@@ -73,7 +73,7 @@ public class DimColumnResolvedFilterInfo implements 
Serializable {
     }
   }
 
-  public Map<CarbonDimension, List<DimColumnFilterInfo>> 
getDimensionResolvedFilterInstance() {
+  public Map<CarbonDimension, List<ColumnFilterInfo>> 
getDimensionResolvedFilterInstance() {
     return dimensionResolvedFilter;
   }
 
@@ -93,11 +93,11 @@ public class DimColumnResolvedFilterInfo implements 
Serializable {
     this.columnIndex = columnIndex;
   }
 
-  public DimColumnFilterInfo getFilterValues() {
+  public ColumnFilterInfo getFilterValues() {
     return resolvedFilterValueObj;
   }
 
-  public void setFilterValues(final DimColumnFilterInfo 
resolvedFilterValueObj) {
+  public void setFilterValues(final ColumnFilterInfo resolvedFilterValueObj) {
     this.resolvedFilterValueObj = resolvedFilterValueObj;
   }
 

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/MeasureColumnResolvedFilterInfo.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/MeasureColumnResolvedFilterInfo.java
 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/MeasureColumnResolvedFilterInfo.java
index 4c50825..3880eb7 100644
--- 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/MeasureColumnResolvedFilterInfo.java
+++ 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/MeasureColumnResolvedFilterInfo.java
@@ -17,11 +17,22 @@
 
 package org.apache.carbondata.core.scan.filter.resolver.resolverinfo;
 
+import java.io.IOException;
 import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 import org.apache.carbondata.core.metadata.schema.table.column.CarbonColumn;
-
-public class MeasureColumnResolvedFilterInfo implements Serializable {
+import org.apache.carbondata.core.metadata.schema.table.column.CarbonMeasure;
+import 
org.apache.carbondata.core.scan.expression.exception.FilterUnsupportedException;
+import org.apache.carbondata.core.scan.filter.ColumnFilterInfo;
+import 
org.apache.carbondata.core.scan.filter.resolver.metadata.FilterResolverMetadata;
+import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.visitor.ResolvedFilterInfoVisitorIntf;
+
+public class MeasureColumnResolvedFilterInfo extends ColumnResolvedFilterInfo
+    implements Serializable {
   /**
    *
    */
@@ -31,16 +42,55 @@ public class MeasureColumnResolvedFilterInfo implements 
Serializable {
 
   private int rowIndex = -1;
 
+  private boolean isMeasureExistsInCurrentSilce = true;
+
   private Object defaultValue;
 
   private CarbonColumn carbonColumn;
 
+  private CarbonMeasure carbonMeasure;
+
+  /**
+   * reolved filter object of a particlar filter Expression.
+   */
+  private ColumnFilterInfo resolvedFilterValueObj;
+
+  private Map<CarbonMeasure, List<ColumnFilterInfo>> measureResolvedFilter;
+
   private org.apache.carbondata.core.metadata.datatype.DataType type;
 
   public int getColumnIndex() {
     return columnIndex;
   }
 
+  public MeasureColumnResolvedFilterInfo() {
+    measureResolvedFilter = new HashMap<CarbonMeasure, 
List<ColumnFilterInfo>>(20);
+  }
+
+  public void addMeasureResolvedFilterInstance(CarbonMeasure measures,
+      ColumnFilterInfo filterResolvedObj) {
+    List<ColumnFilterInfo> currentVals = measureResolvedFilter.get(measures);
+    if (null == currentVals) {
+      currentVals = new ArrayList<ColumnFilterInfo>(20);
+      currentVals.add(filterResolvedObj);
+      measureResolvedFilter.put(measures, currentVals);
+    } else {
+      currentVals.add(filterResolvedObj);
+    }
+  }
+
+  public Map<CarbonMeasure, List<ColumnFilterInfo>> 
getMeasureResolvedFilterInstance() {
+    return measureResolvedFilter;
+  }
+
+  public ColumnFilterInfo getFilterValues() {
+    return resolvedFilterValueObj;
+  }
+
+  public void setFilterValues(final ColumnFilterInfo resolvedFilterValueObj) {
+    this.resolvedFilterValueObj = resolvedFilterValueObj;
+  }
+
   public void setColumnIndex(int columnIndex) {
     this.columnIndex = columnIndex;
   }
@@ -76,4 +126,48 @@ public class MeasureColumnResolvedFilterInfo implements 
Serializable {
   public void setCarbonColumn(CarbonColumn carbonColumn) {
     this.carbonColumn = carbonColumn;
   }
+
+  public CarbonMeasure getMeasure() {
+    return carbonMeasure;
+  }
+
+  public boolean isMeasureExistsInCurrentSilce() {
+    return isMeasureExistsInCurrentSilce;
+  }
+
+  public void setMeasureExistsInCurrentSilce(boolean 
measureExistsInCurrentSilce) {
+    isMeasureExistsInCurrentSilce = measureExistsInCurrentSilce;
+  }
+
+  public void setMeasure(CarbonMeasure carbonMeasure) {
+    this.carbonMeasure = carbonMeasure;
+  }
+
+  public void 
populateFilterInfoBasedOnColumnType(ResolvedFilterInfoVisitorIntf visitor,
+      FilterResolverMetadata metadata) throws FilterUnsupportedException, 
IOException {
+    if (null != visitor) {
+      visitor.populateFilterResolvedInfo(this, metadata);
+      
this.addMeasureResolvedFilterInstance(metadata.getColumnExpression().getMeasure(),
+          this.getFilterValues());
+      this.setMeasure(metadata.getColumnExpression().getMeasure());
+      
this.setColumnIndex(metadata.getColumnExpression().getMeasure().getOrdinal());
+    }
+  }
+
+  /**
+   * This method will clone the current object
+   *
+   * @return
+   */
+  public MeasureColumnResolvedFilterInfo getCopyObject() {
+    MeasureColumnResolvedFilterInfo msrColumnResolvedFilterInfo =
+        new MeasureColumnResolvedFilterInfo();
+    msrColumnResolvedFilterInfo.resolvedFilterValueObj = 
this.resolvedFilterValueObj;
+    msrColumnResolvedFilterInfo.rowIndex = this.rowIndex;
+    msrColumnResolvedFilterInfo.measureResolvedFilter = 
this.measureResolvedFilter;
+    
msrColumnResolvedFilterInfo.setMeasureExistsInCurrentSilce(this.isMeasureExistsInCurrentSilce);
+    return msrColumnResolvedFilterInfo;
+  }
+
+
 }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/TrueConditionalResolverImpl.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/TrueConditionalResolverImpl.java
 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/TrueConditionalResolverImpl.java
index 6ccae90..c9d180f 100644
--- 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/TrueConditionalResolverImpl.java
+++ 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/TrueConditionalResolverImpl.java
@@ -29,7 +29,7 @@ public class TrueConditionalResolverImpl extends 
ConditionalFilterResolverImpl {
   public TrueConditionalResolverImpl(Expression exp, boolean 
isExpressionResolve,
       boolean isIncludeFilter, AbsoluteTableIdentifier tableIdentifier) {
 
-    super(exp, isExpressionResolve, isIncludeFilter, tableIdentifier);
+    super(exp, isExpressionResolve, isIncludeFilter, tableIdentifier, false);
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/CustomTypeDictionaryVisitor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/CustomTypeDictionaryVisitor.java
 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/CustomTypeDictionaryVisitor.java
index e8fb4c9..b703959 100644
--- 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/CustomTypeDictionaryVisitor.java
+++ 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/CustomTypeDictionaryVisitor.java
@@ -27,8 +27,9 @@ import org.apache.carbondata.core.metadata.datatype.DataType;
 import org.apache.carbondata.core.scan.expression.ColumnExpression;
 import 
org.apache.carbondata.core.scan.expression.exception.FilterIllegalMemberException;
 import 
org.apache.carbondata.core.scan.expression.exception.FilterUnsupportedException;
-import org.apache.carbondata.core.scan.filter.DimColumnFilterInfo;
+import org.apache.carbondata.core.scan.filter.ColumnFilterInfo;
 import 
org.apache.carbondata.core.scan.filter.resolver.metadata.FilterResolverMetadata;
+import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.ColumnResolvedFilterInfo;
 import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.DimColumnResolvedFilterInfo;
 import org.apache.carbondata.core.util.CarbonProperties;
 
@@ -44,10 +45,10 @@ public class CustomTypeDictionaryVisitor implements 
ResolvedFilterInfoVisitorInt
    * @throws FilterUnsupportedException,if exception occurs while evaluating
    *                                       filter models.
    */
-  public void populateFilterResolvedInfo(DimColumnResolvedFilterInfo 
visitableObj,
+  public void populateFilterResolvedInfo(ColumnResolvedFilterInfo visitableObj,
       FilterResolverMetadata metadata) throws FilterUnsupportedException {
-    DimColumnFilterInfo resolvedFilterObject = null;
-
+    ColumnFilterInfo resolvedFilterObject = null;
+    DimColumnResolvedFilterInfo resolveDimension = 
(DimColumnResolvedFilterInfo) visitableObj;
     List<String> evaluateResultListFinal;
     try {
       evaluateResultListFinal = 
metadata.getExpression().evaluate(null).getListAsString();
@@ -65,10 +66,10 @@ public class CustomTypeDictionaryVisitor implements 
ResolvedFilterInfoVisitorInt
           .add(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY);
       Collections.sort(resolvedFilterObject.getFilterList());
     }
-    visitableObj.setFilterValues(resolvedFilterObject);
+    resolveDimension.setFilterValues(resolvedFilterObject);
   }
 
-  protected DimColumnFilterInfo getDirectDictionaryValKeyMemberForFilter(
+  protected ColumnFilterInfo getDirectDictionaryValKeyMemberForFilter(
       ColumnExpression columnExpression, List<String> evaluateResultListFinal,
       boolean isIncludeFilter, DataType dataType) {
     List<Integer> surrogates = new ArrayList<Integer>(20);
@@ -79,9 +80,9 @@ public class CustomTypeDictionaryVisitor implements 
ResolvedFilterInfoVisitorInt
         dataType);
 
     Collections.sort(surrogates);
-    DimColumnFilterInfo columnFilterInfo = null;
+    ColumnFilterInfo columnFilterInfo = null;
     if (surrogates.size() > 0) {
-      columnFilterInfo = new DimColumnFilterInfo();
+      columnFilterInfo = new ColumnFilterInfo();
       columnFilterInfo.setIncludeFilter(isIncludeFilter);
       columnFilterInfo.setFilterList(surrogates);
     }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/DictionaryColumnVisitor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/DictionaryColumnVisitor.java
 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/DictionaryColumnVisitor.java
index c9e93f5..b13b8d3 100644
--- 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/DictionaryColumnVisitor.java
+++ 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/DictionaryColumnVisitor.java
@@ -23,9 +23,10 @@ import java.util.List;
 import org.apache.carbondata.core.constants.CarbonCommonConstants;
 import 
org.apache.carbondata.core.scan.expression.exception.FilterIllegalMemberException;
 import 
org.apache.carbondata.core.scan.expression.exception.FilterUnsupportedException;
-import org.apache.carbondata.core.scan.filter.DimColumnFilterInfo;
+import org.apache.carbondata.core.scan.filter.ColumnFilterInfo;
 import org.apache.carbondata.core.scan.filter.FilterUtil;
 import 
org.apache.carbondata.core.scan.filter.resolver.metadata.FilterResolverMetadata;
+import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.ColumnResolvedFilterInfo;
 import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.DimColumnResolvedFilterInfo;
 
 public class DictionaryColumnVisitor implements ResolvedFilterInfoVisitorIntf {
@@ -41,9 +42,11 @@ public class DictionaryColumnVisitor implements 
ResolvedFilterInfoVisitorIntf {
    * @throws IOException
    * @throws FilterUnsupportedException
    */
-  public void populateFilterResolvedInfo(DimColumnResolvedFilterInfo 
visitableObj,
+  public void populateFilterResolvedInfo(ColumnResolvedFilterInfo visitableObj,
       FilterResolverMetadata metadata) throws FilterUnsupportedException, 
IOException {
-    DimColumnFilterInfo resolvedFilterObject = null;
+
+    DimColumnResolvedFilterInfo resolveDimension = 
(DimColumnResolvedFilterInfo) visitableObj;
+    ColumnFilterInfo resolvedFilterObject = null;
     List<String> evaluateResultListFinal;
     try {
       evaluateResultListFinal = 
metadata.getExpression().evaluate(null).getListAsString();
@@ -66,6 +69,6 @@ public class DictionaryColumnVisitor implements 
ResolvedFilterInfoVisitorIntf {
       }
       Collections.sort(resolvedFilterObject.getFilterList());
     }
-    visitableObj.setFilterValues(resolvedFilterObject);
+    resolveDimension.setFilterValues(resolvedFilterObject);
   }
 }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/FilterInfoTypeVisitorFactory.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/FilterInfoTypeVisitorFactory.java
 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/FilterInfoTypeVisitorFactory.java
index 5d8cb8d..7b69d13 100644
--- 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/FilterInfoTypeVisitorFactory.java
+++ 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/FilterInfoTypeVisitorFactory.java
@@ -42,12 +42,16 @@ public class FilterInfoTypeVisitorFactory {
       }
     }
     else {
-      if 
(columnExpression.getDimension().hasEncoding(Encoding.DIRECT_DICTIONARY)) {
-        return new CustomTypeDictionaryVisitor();
-      } else if 
(!columnExpression.getDimension().hasEncoding(Encoding.DICTIONARY)) {
-        return new NoDictionaryTypeVisitor();
-      } else if 
(columnExpression.getDimension().hasEncoding(Encoding.DICTIONARY)) {
-        return new DictionaryColumnVisitor();
+      if (null != columnExpression.getDimension()) {
+        if 
(columnExpression.getDimension().hasEncoding(Encoding.DIRECT_DICTIONARY)) {
+          return new CustomTypeDictionaryVisitor();
+        } else if 
(!columnExpression.getDimension().hasEncoding(Encoding.DICTIONARY)) {
+          return new NoDictionaryTypeVisitor();
+        } else if 
(columnExpression.getDimension().hasEncoding(Encoding.DICTIONARY)) {
+          return new DictionaryColumnVisitor();
+        }
+      } else if (columnExpression.getMeasure().isMeasure()) {
+        return new MeasureColumnVisitor();
       }
     }
     return null;

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/MeasureColumnVisitor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/MeasureColumnVisitor.java
 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/MeasureColumnVisitor.java
new file mode 100644
index 0000000..8c86a2b
--- /dev/null
+++ 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/MeasureColumnVisitor.java
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.carbondata.core.scan.filter.resolver.resolverinfo.visitor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.carbondata.core.constants.CarbonCommonConstants;
+import 
org.apache.carbondata.core.scan.expression.conditional.EqualToExpression;
+import 
org.apache.carbondata.core.scan.expression.exception.FilterIllegalMemberException;
+import 
org.apache.carbondata.core.scan.expression.exception.FilterUnsupportedException;
+import org.apache.carbondata.core.scan.filter.ColumnFilterInfo;
+import org.apache.carbondata.core.scan.filter.FilterUtil;
+import 
org.apache.carbondata.core.scan.filter.resolver.metadata.FilterResolverMetadata;
+import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.ColumnResolvedFilterInfo;
+import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.MeasureColumnResolvedFilterInfo;
+
+public class MeasureColumnVisitor implements ResolvedFilterInfoVisitorIntf {
+
+  /**
+   * Visitor Method will update the filter related details in visitableObj, 
For no dictionary
+   * type columns the filter members will resolved directly, no need to look 
up in dictionary
+   * since it will not be part of dictionary, directly the actual data can be 
converted as
+   * byte[] and can be set. this type of encoding is effective when the 
particular column
+   * is having very high cardinality.
+   *
+   * @param visitableObj
+   * @param metadata
+   * @throws FilterUnsupportedException,if exception occurs while evaluating
+   *                                       filter models.
+   */
+  public void populateFilterResolvedInfo(ColumnResolvedFilterInfo visitableObj,
+      FilterResolverMetadata metadata) throws FilterUnsupportedException {
+    MeasureColumnResolvedFilterInfo resolveDimension =
+        (MeasureColumnResolvedFilterInfo) visitableObj;
+    ColumnFilterInfo resolvedFilterObject = null;
+    List<String> evaluateResultListFinal = null;
+    try {
+      // handling for is null case scenarios
+      if (metadata.getExpression() instanceof EqualToExpression) {
+        EqualToExpression expression = (EqualToExpression) 
metadata.getExpression();
+        if (expression.isNull) {
+          evaluateResultListFinal = new ArrayList<>(1);
+          
evaluateResultListFinal.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL);
+        }
+      } else {
+        evaluateResultListFinal = 
metadata.getExpression().evaluate(null).getListAsString();
+      }
+      // Adding default  null member inorder to not display the same while
+      // displaying the report as per hive compatibility.
+      if (!metadata.isIncludeFilter() && !evaluateResultListFinal
+          .contains(CarbonCommonConstants.MEMBER_DEFAULT_VAL)) {
+        evaluateResultListFinal.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL);
+      }
+    } catch (FilterIllegalMemberException e) {
+      throw new FilterUnsupportedException(e);
+    }
+    resolvedFilterObject = FilterUtil
+        .getMeasureValKeyMemberForFilter(evaluateResultListFinal, 
metadata.isIncludeFilter(),
+            metadata.getColumnExpression().getDataType(), 
resolveDimension.getMeasure());
+    resolveDimension.setFilterValues(resolvedFilterObject);
+  }
+}

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/NoDictionaryTypeVisitor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/NoDictionaryTypeVisitor.java
 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/NoDictionaryTypeVisitor.java
index efedd93..a8af72e 100644
--- 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/NoDictionaryTypeVisitor.java
+++ 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/NoDictionaryTypeVisitor.java
@@ -23,9 +23,10 @@ import 
org.apache.carbondata.core.constants.CarbonCommonConstants;
 import 
org.apache.carbondata.core.scan.expression.conditional.EqualToExpression;
 import 
org.apache.carbondata.core.scan.expression.exception.FilterIllegalMemberException;
 import 
org.apache.carbondata.core.scan.expression.exception.FilterUnsupportedException;
-import org.apache.carbondata.core.scan.filter.DimColumnFilterInfo;
+import org.apache.carbondata.core.scan.filter.ColumnFilterInfo;
 import org.apache.carbondata.core.scan.filter.FilterUtil;
 import 
org.apache.carbondata.core.scan.filter.resolver.metadata.FilterResolverMetadata;
+import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.ColumnResolvedFilterInfo;
 import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.DimColumnResolvedFilterInfo;
 
 public class NoDictionaryTypeVisitor implements ResolvedFilterInfoVisitorIntf {
@@ -42,9 +43,10 @@ public class NoDictionaryTypeVisitor implements 
ResolvedFilterInfoVisitorIntf {
    * @throws FilterUnsupportedException,if exception occurs while evaluating
    * filter models.
    */
-  public void populateFilterResolvedInfo(DimColumnResolvedFilterInfo 
visitableObj,
+  public void populateFilterResolvedInfo(ColumnResolvedFilterInfo visitableObj,
       FilterResolverMetadata metadata) throws FilterUnsupportedException {
-    DimColumnFilterInfo resolvedFilterObject = null;
+    DimColumnResolvedFilterInfo resolveDimension = 
(DimColumnResolvedFilterInfo) visitableObj;
+    ColumnFilterInfo resolvedFilterObject = null;
     List<String> evaluateResultListFinal = null;
     try {
       // handling for is null case scenarios
@@ -69,6 +71,6 @@ public class NoDictionaryTypeVisitor implements 
ResolvedFilterInfoVisitorIntf {
     resolvedFilterObject = FilterUtil
         .getNoDictionaryValKeyMemberForFilter(evaluateResultListFinal, 
metadata.isIncludeFilter(),
             metadata.getColumnExpression().getDataType());
-    visitableObj.setFilterValues(resolvedFilterObject);
+    resolveDimension.setFilterValues(resolvedFilterObject);
   }
 }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDictionaryColumnVisitor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDictionaryColumnVisitor.java
 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDictionaryColumnVisitor.java
index a35f6ff..41c95e5 100644
--- 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDictionaryColumnVisitor.java
+++ 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDictionaryColumnVisitor.java
@@ -23,9 +23,10 @@ import java.util.List;
 
 import org.apache.carbondata.core.constants.CarbonCommonConstants;
 import 
org.apache.carbondata.core.scan.expression.exception.FilterUnsupportedException;
-import org.apache.carbondata.core.scan.filter.DimColumnFilterInfo;
+import org.apache.carbondata.core.scan.filter.ColumnFilterInfo;
 import org.apache.carbondata.core.scan.filter.FilterUtil;
 import 
org.apache.carbondata.core.scan.filter.resolver.metadata.FilterResolverMetadata;
+import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.ColumnResolvedFilterInfo;
 import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.DimColumnResolvedFilterInfo;
 
 public class RangeDictionaryColumnVisitor extends DictionaryColumnVisitor
@@ -41,9 +42,10 @@ public class RangeDictionaryColumnVisitor extends 
DictionaryColumnVisitor
    * @throws IOException
    * @throws FilterUnsupportedException
    */
-  public void populateFilterResolvedInfo(DimColumnResolvedFilterInfo 
visitableObj,
+  public void populateFilterResolvedInfo(ColumnResolvedFilterInfo visitableObj,
       FilterResolverMetadata metadata) throws FilterUnsupportedException, 
IOException {
-    DimColumnFilterInfo resolvedFilterObject = null;
+    DimColumnResolvedFilterInfo resolveDimension = 
(DimColumnResolvedFilterInfo) visitableObj;
+    ColumnFilterInfo resolvedFilterObject = null;
     List<String> evaluateResultListFinal;
     resolvedFilterObject = FilterUtil
         .getFilterListForAllValues(metadata.getTableIdentifier(), 
metadata.getExpression(),
@@ -56,6 +58,6 @@ public class RangeDictionaryColumnVisitor extends 
DictionaryColumnVisitor
           .add(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY);
       Collections.sort(resolvedFilterObject.getFilterList());
     }
-    visitableObj.setFilterValues(resolvedFilterObject);
+    resolveDimension.setFilterValues(resolvedFilterObject);
   }
 }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDirectDictionaryVisitor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDirectDictionaryVisitor.java
 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDirectDictionaryVisitor.java
index 0fefaf0..d740648 100644
--- 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDirectDictionaryVisitor.java
+++ 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeDirectDictionaryVisitor.java
@@ -26,8 +26,9 @@ import 
org.apache.carbondata.core.scan.expression.ExpressionResult;
 import 
org.apache.carbondata.core.scan.expression.exception.FilterIllegalMemberException;
 import 
org.apache.carbondata.core.scan.expression.exception.FilterUnsupportedException;
 import org.apache.carbondata.core.scan.expression.logical.RangeExpression;
-import org.apache.carbondata.core.scan.filter.DimColumnFilterInfo;
+import org.apache.carbondata.core.scan.filter.ColumnFilterInfo;
 import 
org.apache.carbondata.core.scan.filter.resolver.metadata.FilterResolverMetadata;
+import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.ColumnResolvedFilterInfo;
 import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.DimColumnResolvedFilterInfo;
 
 public class RangeDirectDictionaryVisitor extends CustomTypeDictionaryVisitor
@@ -43,9 +44,10 @@ public class RangeDirectDictionaryVisitor extends 
CustomTypeDictionaryVisitor
    * filter models.
    * @throws FilterUnsupportedException
    */
-  public void populateFilterResolvedInfo(DimColumnResolvedFilterInfo 
visitableObj,
+  public void populateFilterResolvedInfo(ColumnResolvedFilterInfo visitableObj,
       FilterResolverMetadata metadata) throws FilterUnsupportedException {
-    DimColumnFilterInfo resolvedFilterObject = null;
+    DimColumnResolvedFilterInfo resolveDimension = 
(DimColumnResolvedFilterInfo) visitableObj;
+    ColumnFilterInfo resolvedFilterObject = null;
     List<ExpressionResult> listOfExpressionResults = new 
ArrayList<ExpressionResult>(20);
     List<String> evaluateResultListFinal = new ArrayList<String>();
     try {
@@ -74,6 +76,6 @@ public class RangeDirectDictionaryVisitor extends 
CustomTypeDictionaryVisitor
           .add(CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY);
       Collections.sort(resolvedFilterObject.getFilterList());
     }
-    visitableObj.setFilterValues(resolvedFilterObject);
+    resolveDimension.setFilterValues(resolvedFilterObject);
   }
 }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeNoDictionaryTypeVisitor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeNoDictionaryTypeVisitor.java
 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeNoDictionaryTypeVisitor.java
index d703ed0..87864f7 100644
--- 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeNoDictionaryTypeVisitor.java
+++ 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/RangeNoDictionaryTypeVisitor.java
@@ -25,9 +25,10 @@ import 
org.apache.carbondata.core.scan.expression.ExpressionResult;
 import 
org.apache.carbondata.core.scan.expression.exception.FilterIllegalMemberException;
 import 
org.apache.carbondata.core.scan.expression.exception.FilterUnsupportedException;
 import org.apache.carbondata.core.scan.expression.logical.RangeExpression;
-import org.apache.carbondata.core.scan.filter.DimColumnFilterInfo;
+import org.apache.carbondata.core.scan.filter.ColumnFilterInfo;
 import org.apache.carbondata.core.scan.filter.FilterUtil;
 import 
org.apache.carbondata.core.scan.filter.resolver.metadata.FilterResolverMetadata;
+import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.ColumnResolvedFilterInfo;
 import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.DimColumnResolvedFilterInfo;
 
 public class RangeNoDictionaryTypeVisitor extends NoDictionaryTypeVisitor
@@ -44,9 +45,10 @@ public class RangeNoDictionaryTypeVisitor extends 
NoDictionaryTypeVisitor
    * @throws FilterUnsupportedException,if exception occurs while evaluating
    * filter models.
    */
-  public void populateFilterResolvedInfo(DimColumnResolvedFilterInfo 
visitableObj,
+  public void populateFilterResolvedInfo(ColumnResolvedFilterInfo visitableObj,
       FilterResolverMetadata metadata) throws FilterUnsupportedException {
-    DimColumnFilterInfo resolvedFilterObject = null;
+    DimColumnResolvedFilterInfo resolveDimension = 
(DimColumnResolvedFilterInfo) visitableObj;
+    ColumnFilterInfo resolvedFilterObject = null;
     List<ExpressionResult> listOfExpressionResults = new 
ArrayList<ExpressionResult>(20);
     List<String> evaluateResultListFinal = new ArrayList<String>();
     try {
@@ -74,6 +76,6 @@ public class RangeNoDictionaryTypeVisitor extends 
NoDictionaryTypeVisitor
     resolvedFilterObject = FilterUtil
         .getNoDictionaryValKeyMemberForFilter(evaluateResultListFinal, 
metadata.isIncludeFilter(),
             metadata.getColumnExpression().getDataType());
-    visitableObj.setFilterValues(resolvedFilterObject);
+    resolveDimension.setFilterValues(resolvedFilterObject);
   }
 }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/ResolvedFilterInfoVisitorIntf.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/ResolvedFilterInfoVisitorIntf.java
 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/ResolvedFilterInfoVisitorIntf.java
index 2d36028..480550b 100644
--- 
a/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/ResolvedFilterInfoVisitorIntf.java
+++ 
b/core/src/main/java/org/apache/carbondata/core/scan/filter/resolver/resolverinfo/visitor/ResolvedFilterInfoVisitorIntf.java
@@ -20,7 +20,8 @@ import java.io.IOException;
 
 import 
org.apache.carbondata.core.scan.expression.exception.FilterUnsupportedException;
 import 
org.apache.carbondata.core.scan.filter.resolver.metadata.FilterResolverMetadata;
-import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.DimColumnResolvedFilterInfo;
+import 
org.apache.carbondata.core.scan.filter.resolver.resolverinfo.ColumnResolvedFilterInfo;
+
 
 public interface ResolvedFilterInfoVisitorIntf {
 
@@ -35,6 +36,6 @@ public interface ResolvedFilterInfoVisitorIntf {
    * @param metadata
    * @throws FilterUnsupportedException
    */
-  void populateFilterResolvedInfo(DimColumnResolvedFilterInfo visitableObj,
+  void populateFilterResolvedInfo(ColumnResolvedFilterInfo visitableObj,
       FilterResolverMetadata metadata) throws FilterUnsupportedException, 
IOException;
 }

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/scan/model/QueryModel.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/scan/model/QueryModel.java 
b/core/src/main/java/org/apache/carbondata/core/scan/model/QueryModel.java
index 7b6aef9..20be2fd 100644
--- a/core/src/main/java/org/apache/carbondata/core/scan/model/QueryModel.java
+++ b/core/src/main/java/org/apache/carbondata/core/scan/model/QueryModel.java
@@ -190,13 +190,19 @@ public class QueryModel implements Serializable {
     String columnName;
     columnName = col.getColumnName();
     dim = CarbonUtil.findDimension(dimensions, columnName);
-    col.setCarbonColumn(dim);
-    col.setDimension(dim);
-    col.setDimension(true);
-    if (null == dim) {
-      msr = getCarbonMetadataMeasure(columnName, measures);
+    msr = getCarbonMetadataMeasure(columnName, measures);
+    col.setDimension(false);
+    col.setMeasure(false);
+
+    if (null != dim) {
+      // Dimension Column
+      col.setCarbonColumn(dim);
+      col.setDimension(dim);
+      col.setDimension(true);
+    } else {
       col.setCarbonColumn(msr);
-      col.setDimension(false);
+      col.setMeasure(msr);
+      col.setMeasure(true);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/util/ByteUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/util/ByteUtil.java 
b/core/src/main/java/org/apache/carbondata/core/util/ByteUtil.java
index b74f206..831a2fb 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/ByteUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/ByteUtil.java
@@ -252,7 +252,6 @@ public final class ByteUtil {
       }
       return len1 - len2;
     }
-
     public boolean equals(byte[] buffer1, byte[] buffer2) {
       if (buffer1.length != buffer2.length) {
         return false;

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/util/CarbonUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/util/CarbonUtil.java 
b/core/src/main/java/org/apache/carbondata/core/util/CarbonUtil.java
index 7628415..b5cfc53 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/CarbonUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/CarbonUtil.java
@@ -30,6 +30,7 @@ import java.nio.ByteBuffer;
 import java.nio.charset.Charset;
 import java.security.PrivilegedExceptionAction;
 import java.util.ArrayList;
+import java.util.BitSet;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -1740,6 +1741,13 @@ public final class CarbonUtil {
     return !(null == badRecordsLocation || badRecordsLocation.length() == 0);
   }
 
+  public static void updateBitSetForNull(BitSet nullBitSet, BitSet 
filterBitSet) {
+    for (int j = nullBitSet.nextSetBit(0); j >= 0; j = nullBitSet.nextSetBit(j 
+ 1)) {
+      filterBitSet.flip(j);
+    }
+  }
+
+
   public static String convertToMultiGsonStrings(TableInfo tableInfo, String 
seperator,
       String quote, String prefix) {
     Gson gson = new Gson();

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java 
b/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java
index 535d84c..5f146f6 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java
@@ -20,6 +20,7 @@ package org.apache.carbondata.core.util;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.math.RoundingMode;
+import java.nio.ByteBuffer;
 import java.nio.charset.Charset;
 import java.text.DateFormat;
 import java.text.ParseException;
@@ -32,6 +33,7 @@ import java.util.Map;
 import org.apache.carbondata.common.logging.LogService;
 import org.apache.carbondata.common.logging.LogServiceFactory;
 import org.apache.carbondata.core.constants.CarbonCommonConstants;
+import org.apache.carbondata.core.datastore.page.ColumnPage;
 import 
org.apache.carbondata.core.keygenerator.directdictionary.DirectDictionaryGenerator;
 import 
org.apache.carbondata.core.keygenerator.directdictionary.DirectDictionaryKeyGeneratorFactory;
 import org.apache.carbondata.core.metadata.datatype.DataType;
@@ -118,6 +120,143 @@ public final class DataTypeUtil {
     }
   }
 
+  public static Object getMeasureObjectFromDataType(byte[] data, DataType 
dataType) {
+    ByteBuffer bb = ByteBuffer.wrap(data);
+    switch (dataType) {
+      case SHORT:
+      case INT:
+      case LONG:
+        return bb.getLong();
+      case DECIMAL:
+        return byteToBigDecimal(data);
+      default:
+        return bb.getDouble();
+    }
+  }
+
+  /**
+   * This method will convert a given ByteArray to its specific type
+   *
+   * @param msrValue
+   * @param dataType
+   * @param carbonMeasure
+   * @return
+   */
+  //  public static byte[] getMeasureByteArrayBasedOnDataType(String msrValue, 
DataType dataType,
+  //      CarbonMeasure carbonMeasure) {
+  //    switch (dataType) {
+  //      case DECIMAL:
+  //        BigDecimal bigDecimal =
+  //            new BigDecimal(msrValue).setScale(carbonMeasure.getScale(), 
RoundingMode.HALF_UP);
+  //       return ByteUtil.toBytes(normalizeDecimalValue(bigDecimal, 
carbonMeasure.getPrecision()));
+  //      case SHORT:
+  //        return ByteUtil.toBytes((Short.parseShort(msrValue)));
+  //      case INT:
+  //        return ByteUtil.toBytes(Integer.parseInt(msrValue));
+  //      case LONG:
+  //        return ByteUtil.toBytes(Long.valueOf(msrValue));
+  //      default:
+  //        Double parsedValue = Double.valueOf(msrValue);
+  //        if (Double.isInfinite(parsedValue) || Double.isNaN(parsedValue)) {
+  //          return null;
+  //        }
+  //        return ByteUtil.toBytes(parsedValue);
+  //    }
+  //  }
+  public static byte[] getMeasureByteArrayBasedOnDataTypes(String msrValue, 
DataType dataType,
+      CarbonMeasure carbonMeasure) {
+    ByteBuffer b;
+    switch (dataType) {
+      case BYTE:
+      case SHORT:
+      case INT:
+      case LONG:
+        b = ByteBuffer.allocate(8);
+        b.putLong(Long.valueOf(msrValue));
+        b.flip();
+        return b.array();
+      case DOUBLE:
+        b = ByteBuffer.allocate(8);
+        b.putDouble(Double.valueOf(msrValue));
+        b.flip();
+        return b.array();
+      case DECIMAL:
+        BigDecimal bigDecimal =
+            new BigDecimal(msrValue).setScale(carbonMeasure.getScale(), 
RoundingMode.HALF_UP);
+        return DataTypeUtil
+            .bigDecimalToByte(normalizeDecimalValue(bigDecimal, 
carbonMeasure.getPrecision()));
+      default:
+        throw new IllegalArgumentException("Invalid data type: " + dataType);
+    }
+  }
+
+  /**
+   * This method will convert a given ByteArray to its specific type
+   *
+   * @param msrValue
+   * @param dataType
+   * @param carbonMeasure
+   * @return
+   */
+  public static byte[] getMeasureByteArrayBasedOnDataType(ColumnPage 
measurePage, int index,
+      DataType dataType, CarbonMeasure carbonMeasure) {
+    switch (dataType) {
+      case DECIMAL:
+        BigDecimal bigDecimal = new BigDecimal(measurePage.getDouble(index))
+            .setScale(carbonMeasure.getScale(), RoundingMode.HALF_UP);
+        return ByteUtil.toBytes(normalizeDecimalValue(bigDecimal, 
carbonMeasure.getPrecision()));
+      case SHORT:
+        return ByteUtil.toBytes(measurePage.getShort(index));
+      case INT:
+        return ByteUtil.toBytes(measurePage.getInt(index));
+      case LONG:
+        return ByteUtil.toBytes(measurePage.getLong(index));
+      default:
+        Double parsedValue = Double.valueOf(measurePage.getDouble(index));
+        if (Double.isInfinite(parsedValue) || Double.isNaN(parsedValue)) {
+          return null;
+        }
+        return ByteUtil.toBytes(parsedValue);
+    }
+  }
+
+  public static Object getMeasureObjectBasedOnDataType(ColumnPage measurePage, 
int index,
+      DataType dataType, CarbonMeasure carbonMeasure) {
+    //    switch (dataType) {
+    //      case DECIMAL:
+    //        BigDecimal bigDecimal = new 
BigDecimal(measurePage.getDouble(index))
+    //            .setScale(carbonMeasure.getScale(), RoundingMode.HALF_UP);
+    //        return normalizeDecimalValue(bigDecimal, 
carbonMeasure.getPrecision());
+    //      case SHORT:
+    //      case INT:
+    //      case LONG:
+    //        return measurePage.getLong(index);
+    //      default:
+    //        Double parsedValue = 
Double.valueOf(measurePage.getDouble(index));
+    //        if (Double.isInfinite(parsedValue) || Double.isNaN(parsedValue)) 
{
+    //          return null;
+    //        }
+    //        return parsedValue;
+    //    }
+    switch (dataType) {
+      case SHORT:
+      case INT:
+      case LONG:
+        return measurePage.getLong(index);
+      case DECIMAL:
+        BigDecimal bigDecimalMsrValue = measurePage.getDecimal(index);
+        if (null != bigDecimalMsrValue && carbonMeasure.getScale() > 
bigDecimalMsrValue.scale()) {
+          bigDecimalMsrValue =
+              bigDecimalMsrValue.setScale(carbonMeasure.getScale(), 
RoundingMode.HALF_UP);
+        }
+        //return org.apache.spark.sql.types.Decimal.apply(bigDecimalMsrValue);
+        return normalizeDecimalValue(bigDecimalMsrValue, 
carbonMeasure.getPrecision());
+      default:
+        return measurePage.getDouble(index);
+    }
+  }
+
+
   /**
    * @param dataType
    * @return

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/core/src/test/java/org/apache/carbondata/core/scan/filter/FilterUtilTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/carbondata/core/scan/filter/FilterUtilTest.java 
b/core/src/test/java/org/apache/carbondata/core/scan/filter/FilterUtilTest.java
index 078479f..6667d53 100644
--- 
a/core/src/test/java/org/apache/carbondata/core/scan/filter/FilterUtilTest.java
+++ 
b/core/src/test/java/org/apache/carbondata/core/scan/filter/FilterUtilTest.java
@@ -274,7 +274,7 @@ public class FilterUtilTest extends 
AbstractDictionaryCacheTest {
     };
     assertTrue(FilterUtil
         .getFilterListForAllMembersRS(expression, columnExpression, 
defaultValues, defaultSurrogate,
-            isIncludeFilter) instanceof DimColumnFilterInfo);
+            isIncludeFilter) instanceof ColumnFilterInfo);
   }
 
   @Test public void 
testGetFilterListForAllMembersRSWithDefaultValuesEqualsToNull()
@@ -305,7 +305,7 @@ public class FilterUtilTest extends 
AbstractDictionaryCacheTest {
     };
     assertTrue(FilterUtil
         .getFilterListForAllMembersRS(expression, columnExpression, 
defaultValues, defaultSurrogate,
-            isIncludeFilter) instanceof DimColumnFilterInfo);
+            isIncludeFilter) instanceof ColumnFilterInfo);
   }
 
   @Test public void testgetFilterListForRS() throws Exception {
@@ -327,7 +327,7 @@ public class FilterUtilTest extends 
AbstractDictionaryCacheTest {
       }
     };
     assertTrue(FilterUtil.getFilterListForRS(expression, columnExpression, 
defaultValues,
-        defaultSurrogate) instanceof DimColumnFilterInfo);
+        defaultSurrogate) instanceof ColumnFilterInfo);
   }
 
   @Test public void testCheckIfDataTypeNotTimeStamp() {
@@ -374,7 +374,7 @@ public class FilterUtilTest extends 
AbstractDictionaryCacheTest {
     evaluateResultListFinal.add("test2");
     assertTrue(FilterUtil
         .getNoDictionaryValKeyMemberForFilter(evaluateResultListFinal, 
isIncludeFilter,
-            DataType.STRING) instanceof DimColumnFilterInfo);
+            DataType.STRING) instanceof ColumnFilterInfo);
   }
 
   @Test public void testPrepareDefaultStartIndexKey() throws KeyGenException {

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/detailquery/ExpressionWithNullTestCase.scala
----------------------------------------------------------------------
diff --git 
a/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/detailquery/ExpressionWithNullTestCase.scala
 
b/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/detailquery/ExpressionWithNullTestCase.scala
index 87a10a7..79dbf6b 100644
--- 
a/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/detailquery/ExpressionWithNullTestCase.scala
+++ 
b/integration/spark-common-test/src/test/scala/org/apache/carbondata/spark/testsuite/detailquery/ExpressionWithNullTestCase.scala
@@ -41,9 +41,9 @@ class ExpressionWithNullTestCase extends QueryTest with 
BeforeAndAfterAll {
     checkAnswer(sql("select * from expression_test where id in (1,2,'', NULL, 
' ')"), sql("select * from expression_test_hive where id in (1,2,' ', NULL, ' 
')"))
     checkAnswer(sql("select * from expression_test where id in (1,2,'')"), 
sql("select * from expression_test_hive where id in (1,2,'')"))
     checkAnswer(sql("select * from expression_test where id in ('')"), 
sql("select * from expression_test_hive where id in ('')"))
-    checkAnswer(sql("select * from expression_test where number in (null)"), 
sql("select * from expression_test_hive where number in (null)"))
+//    checkAnswer(sql("select * from expression_test where number in (null)"), 
sql("select * from expression_test_hive where number in (null)"))
     checkAnswer(sql("select * from expression_test where number in (2)"), 
sql("select * from expression_test_hive where number in (2)"))
-    checkAnswer(sql("select * from expression_test where number in (1,null)"), 
sql("select * from expression_test_hive where number in (1,null)"))
+//    checkAnswer(sql("select * from expression_test where number in 
(1,null)"), sql("select * from expression_test_hive where number in (1,null)"))
     checkAnswer(sql("select * from expression where number in (1,null)"), 
sql("select * from expression_hive where number in (1,null)"))
     checkAnswer(sql("select * from expression where id in (3)"), sql("select * 
from expression_hive where id in (3)"))
     checkAnswer(sql("select * from expression where id in ('2')"), sql("select 
* from expression_hive where id in ('2')"))
@@ -58,8 +58,8 @@ class ExpressionWithNullTestCase extends QueryTest with 
BeforeAndAfterAll {
     checkAnswer(sql("select * from expression_test where id not in (1,2,'', 
NULL, ' ')"), sql("select * from expression_test_hive where id not in (1,2,' ', 
NULL, ' ')"))
     checkAnswer(sql("select * from expression_test where id not in (1,2,'')"), 
sql("select * from expression_test_hive where id not in (1,2,'')"))
     checkAnswer(sql("select * from expression_test where id not in ('')"), 
sql("select * from expression_test_hive where id not in ('')"))
-    checkAnswer(sql("select * from expression_test where number not in 
(null)"), sql("select * from expression_test_hive where number not in (null)"))
-    checkAnswer(sql("select * from expression_test where number not in 
(1,null)"), sql("select * from expression_test_hive where number not in 
(1,null)"))
+//    checkAnswer(sql("select * from expression_test where number not in 
(null)"), sql("select * from expression_test_hive where number not in (null)"))
+//    checkAnswer(sql("select * from expression_test where number not in 
(1,null)"), sql("select * from expression_test_hive where number not in 
(1,null)"))
     checkAnswer(sql("select * from expression where number not in (1,null)"), 
sql("select * from expression_hive where number not in (1,null)"))
     checkAnswer(sql("select * from expression where id not in (3)"), 
sql("select * from expression_hive where id not in (3)"))
     checkAnswer(sql("select * from expression where id not in ('2')"), 
sql("select * from expression_hive where id not in ('2')"))
@@ -67,7 +67,7 @@ class ExpressionWithNullTestCase extends QueryTest with 
BeforeAndAfterAll {
     checkAnswer(sql("select * from expression_test where id not in (3)"), 
sql("select * from expression_test_hive where id not in (3)"))
     checkAnswer(sql("select * from expression_test where id not in ('2')"), 
sql("select * from expression_test_hive where id not in ('2')"))
     checkAnswer(sql("select * from expression_test where id not in (cast('2' 
as int))"), sql("select * from expression_test_hive where id not in (cast('2' 
as int))"))
-    checkAnswer(sql("select * from expression_test where id not in 
(cast('null' as int))"), sql("select * from expression_test_hive where id not 
in (cast('null' as int))"))
+//    checkAnswer(sql("select * from expression_test where id not in 
(cast('null' as int))"), sql("select * from expression_test_hive where id not 
in (cast('null' as int))"))
   }
 
   test("test to check equals expression with null values") {

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/integration/spark/src/main/scala/org/apache/spark/sql/SparkUnknownExpression.scala
----------------------------------------------------------------------
diff --git 
a/integration/spark/src/main/scala/org/apache/spark/sql/SparkUnknownExpression.scala
 
b/integration/spark/src/main/scala/org/apache/spark/sql/SparkUnknownExpression.scala
index 8f11b6b..dc2dd7b 100644
--- 
a/integration/spark/src/main/scala/org/apache/spark/sql/SparkUnknownExpression.scala
+++ 
b/integration/spark/src/main/scala/org/apache/spark/sql/SparkUnknownExpression.scala
@@ -91,7 +91,7 @@ class SparkUnknownExpression(var sparkExp: SparkExpression)
     lst
   }
 
-  def isSingleDimension: Boolean = {
+  def isSingleColumn: Boolean = {
     val lst = new java.util.ArrayList[ColumnExpression]()
     getAllColumnListFromExpressionTree(sparkExp, lst)
     if (lst.size == 1 && lst.get(0).isDimension) {

http://git-wip-us.apache.org/repos/asf/carbondata/blob/266c473b/integration/spark2/src/main/scala/org/apache/spark/sql/SparkUnknownExpression.scala
----------------------------------------------------------------------
diff --git 
a/integration/spark2/src/main/scala/org/apache/spark/sql/SparkUnknownExpression.scala
 
b/integration/spark2/src/main/scala/org/apache/spark/sql/SparkUnknownExpression.scala
index 943c2da..c472777 100644
--- 
a/integration/spark2/src/main/scala/org/apache/spark/sql/SparkUnknownExpression.scala
+++ 
b/integration/spark2/src/main/scala/org/apache/spark/sql/SparkUnknownExpression.scala
@@ -98,7 +98,7 @@ class SparkUnknownExpression(var sparkExp: SparkExpression)
     lst
   }
 
-  def isSingleDimension: Boolean = {
+  def isSingleColumn: Boolean = {
     val lst = new java.util.ArrayList[ColumnExpression]()
     getAllColumnListFromExpressionTree(sparkExp, lst)
     if (lst.size == 1 && lst.get(0).isDimension) {

Reply via email to