Ajantha Bhat created CARBONDATA-3965:
----------------------------------------

             Summary: Adaptive encoding of Complex primitive float is using log 
value to store float (4 bytes) data
                 Key: CARBONDATA-3965
                 URL: https://issues.apache.org/jira/browse/CARBONDATA-3965
             Project: CarbonData
          Issue Type: Bug
            Reporter: Ajantha Bhat


I have tested, With current UT itself it is hitting. for [Null, 5.512] it is 
using long as storage for complex primitive adaptive. Base behavior needs to 
check. I guess it can be analyzed separately

 

For this, I have checked
If No complex type, (if it is just primitive type) same values goes to 
DirectCompress, not adaptive. But for complex primitive it goes to adaptive 
because of below code. And as min max is stored as double precision. Long is 
chosen for this.

{{DefaultEncodingFactory#selectCodecByAlgorithmForFloating()}}

 

{{} else if (decimalCount < 0 && !isComplexPrimitive) \{
      return new DirectCompressCodec(DataTypes.DOUBLE);
    } else \{
      return getColumnPageCodec(stats, isComplexPrimitive, columnSpec, 
srcDataType, maxValue,
          minValue, decimalCount, absMaxValue);
    }}}

{{}}

I don't know (remember) why complex primitive should not enter direct compress. 
why that check is explicitly added.{{}}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to