Class DeltaBinaryPackedDecoders.DeltaBinaryPackedByteDecoder

java.lang.Object
io.trino.parquet.reader.decoders.DeltaBinaryPackedDecoders.DeltaBinaryPackedByteDecoder
All Implemented Interfaces:
ValueDecoder<byte[]>
Enclosing class:
DeltaBinaryPackedDecoders

public static class DeltaBinaryPackedDecoders.DeltaBinaryPackedByteDecoder extends Object
  • Constructor Details

    • DeltaBinaryPackedByteDecoder

      public DeltaBinaryPackedByteDecoder()
  • Method Details

    • createMiniBlockBuffer

      protected byte[] createMiniBlockBuffer(int size)
    • setValue

      protected void setValue(byte[] values, int offset, long value)
    • read

      public void read(byte[] values, int offset, int length)
    • unpack

      protected long unpack(byte[] output, int outputOffset, int length, SimpleSliceInputStream input, long minDelta, byte bitWidth)
      This method needs to do two things:
      • Set output[outputOffset-1] to 'previousValue'. This way the inner loops are consistent and can handle iterations in batches of 32. This is needed since some values might have been skipped
      • Delegate unpacking to the corresponding static method from DeltaPackingUtils class
      Returns:
      Last value read
    • init

      public void init(SimpleSliceInputStream input)
      Specified by:
      init in interface ValueDecoder<ValuesType>
    • readInternal

      public void readInternal(byte[] values, int offset, int length)
    • getValueCount

      public int getValueCount()
    • skip

      public void skip(int n)
      Specified by:
      skip in interface ValueDecoder<ValuesType>