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

    https://github.com/apache/carbondata/pull/2654#discussion_r214341633
  
    --- Diff: 
processing/src/main/java/org/apache/carbondata/processing/loading/partition/impl/RawRowComparator.java
 ---
    @@ -30,24 +33,39 @@
     public class RawRowComparator implements Comparator<CarbonRow> {
       private int[] sortColumnIndices;
       private boolean[] isSortColumnNoDict;
    +  private DataType[] noDicDataTypes;
     
    -  public RawRowComparator(int[] sortColumnIndices, boolean[] 
isSortColumnNoDict) {
    +  public RawRowComparator(int[] sortColumnIndices, boolean[] 
isSortColumnNoDict,
    +      DataType[] noDicDataTypes) {
         this.sortColumnIndices = sortColumnIndices;
         this.isSortColumnNoDict = isSortColumnNoDict;
    +    this.noDicDataTypes = noDicDataTypes;
       }
     
       @Override
       public int compare(CarbonRow o1, CarbonRow o2) {
         int diff = 0;
         int i = 0;
    +    int noDicIdx = 0;
         for (int colIdx : sortColumnIndices) {
           if (isSortColumnNoDict[i]) {
    -        byte[] colA = (byte[]) o1.getObject(colIdx);
    -        byte[] colB = (byte[]) o2.getObject(colIdx);
    -        diff = UnsafeComparer.INSTANCE.compareTo(colA, colB);
    -        if (diff != 0) {
    -          return diff;
    +        if (DataTypeUtil.isPrimitiveColumn(noDicDataTypes[noDicIdx])) {
    +          // for no dictionary numeric column get comparator based on the 
data type
    +          SerializableComparator comparator = 
org.apache.carbondata.core.util.comparator.Comparator
    --- End diff --
    
    increment `noDicIdx` in if block and remove from method end


---

Reply via email to