[jira] [Created] (CARBONDATA-3965) Adaptive encoding of Complex primitive float is using log value to store float (4 bytes) data

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (CARBONDATA-3965) Adaptive encoding of Complex primitive float is using log value to store float (4 bytes) data

Akash R Nilugal (Jira)
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)