public static void writeBigDecimal(DecimalType decimalType, BlockBuilder blockBuilder, BigDecimal value) { decimalType.writeSlice(blockBuilder, encodeScaledValue(value)); }
@Override protected void writeDecimalToBlock(BigDecimal decimal, BlockBuilder blockBuilder) { longDecimalType.writeSlice(blockBuilder, encodeScaledValue(decimal)); }
@Override protected void writeDecimalToBlock(BigDecimal decimal, BlockBuilder blockBuilder) { LONG_DECIMAL_TYPE.writeSlice(blockBuilder, encodeScaledValue(decimal)); }
@Override protected void writeDecimalToBlock(BigDecimal decimal, BlockBuilder blockBuilder) { LONG_DECIMAL_TYPE.writeSlice(blockBuilder, encodeScaledValue(decimal)); }
@Override protected void writeDecimalToBlock(BigDecimal decimal, BlockBuilder blockBuilder) { longDecimalType.writeSlice(blockBuilder, encodeScaledValue(decimal)); }
@Override public void decodeValueInto(int depth, BlockBuilder builder, Slice slice, int offset, int length) { if (isShortDecimal(type)) { type.writeLong(builder, parseLong(slice, offset, length)); } else { type.writeSlice(builder, parseSlice(slice, offset, length)); } }
@Override public void decodeValueInto(BlockBuilder builder, Slice slice, int offset, int length) { if (isShortDecimal(type)) { type.writeLong(builder, parseLong(slice, offset)); } else { type.writeSlice(builder, parseSlice(slice, offset)); } }
@Override public void append(JsonParser parser, BlockBuilder blockBuilder) throws IOException { Slice result = currentTokenAsLongDecimal(parser, type.getPrecision(), type.getScale()); if (result == null) { blockBuilder.appendNull(); } else { type.writeSlice(blockBuilder, result); } } }
@Override public void append(JsonParser parser, BlockBuilder blockBuilder) throws IOException { Slice result = currentTokenAsLongDecimal(parser, type.getPrecision(), type.getScale()); if (result == null) { blockBuilder.appendNull(); } else { type.writeSlice(blockBuilder, result); } } }
public static Block createLongDecimalSequenceBlock(int start, int end, DecimalType type) { BlockBuilder builder = type.createFixedSizeBlockBuilder(end - start); BigInteger base = BigInteger.TEN.pow(type.getScale()); for (int i = start; i < end; ++i) { type.writeSlice(builder, encodeUnscaledValue(BigInteger.valueOf(i).multiply(base))); } return builder.build(); }
public static Block createLongDecimalSequenceBlock(int start, int end, DecimalType type) { BlockBuilder builder = type.createFixedSizeBlockBuilder(end - start); BigInteger base = BigInteger.TEN.pow(type.getScale()); for (int i = start; i < end; ++i) { type.writeSlice(builder, encodeUnscaledValue(BigInteger.valueOf(i).multiply(base))); } return builder.build(); }
public static void outputLongDecimal(DecimalType type, LongDecimalWithOverflowState state, BlockBuilder out) { if (state.getLongDecimal() == null) { out.appendNull(); } else { if (state.getOverflow() != 0) { throwOverflowException(); } throwIfOverflows(state.getLongDecimal()); type.writeSlice(out, state.getLongDecimal()); } } }
public static void outputLongDecimal(DecimalType type, LongDecimalWithOverflowState state, BlockBuilder out) { if (state.getLongDecimal() == null) { out.appendNull(); } else { if (state.getOverflow() != 0) { throwOverflowException(); } throwIfOverflows(state.getLongDecimal()); type.writeSlice(out, state.getLongDecimal()); } } }
private static void addToState(LongDecimalWithOverflowState state, BigInteger value) { BlockBuilder blockBuilder = TYPE.createFixedSizeBlockBuilder(1); TYPE.writeSlice(blockBuilder, unscaledDecimal(value)); DecimalSumAggregation.inputLongDecimal(TYPE, state, blockBuilder.build(), 0); } }
private static void addToState(LongDecimalWithOverflowAndLongState state, BigInteger value) { BlockBuilder blockBuilder = TYPE.createFixedSizeBlockBuilder(1); TYPE.writeSlice(blockBuilder, unscaledDecimal(value)); DecimalAverageAggregation.inputLongDecimal(TYPE, state, blockBuilder.build(), 0); } }
private static void addToState(LongDecimalWithOverflowState state, BigInteger value) { BlockBuilder blockBuilder = TYPE.createFixedSizeBlockBuilder(1); TYPE.writeSlice(blockBuilder, unscaledDecimal(value)); DecimalSumAggregation.inputLongDecimal(TYPE, state, blockBuilder.build(), 0); } }
private static void addToState(LongDecimalWithOverflowAndLongState state, BigInteger value) { BlockBuilder blockBuilder = TYPE.createFixedSizeBlockBuilder(1); TYPE.writeSlice(blockBuilder, unscaledDecimal(value)); DecimalAverageAggregation.inputLongDecimal(TYPE, state, blockBuilder.build(), 0); } }
@Override public Block decodeColumn(ColumnData columnData) { int size = columnData.rowCount(); BlockBuilder builder = type.createBlockBuilder(null, size); Slice slice = columnData.getSlice(); for (int i = 0; i < size; i++) { int offset = columnData.getOffset(i); int length = columnData.getLength(i); if (length == 0) { builder.appendNull(); } else if (isShortDecimal(type)) { type.writeLong(builder, parseLong(slice, offset)); } else { type.writeSlice(builder, parseSlice(slice, offset)); } } return builder.build(); }
@Override public Block decodeColumn(ColumnData columnData) { int size = columnData.rowCount(); BlockBuilder builder = type.createBlockBuilder(null, size); Slice slice = columnData.getSlice(); for (int i = 0; i < size; i++) { int offset = columnData.getOffset(i); int length = columnData.getLength(i); if (length == 0 || nullSequence.equals(0, nullSequence.length(), slice, offset, length)) { builder.appendNull(); } else if (isShortDecimal(type)) { type.writeLong(builder, parseLong(slice, offset, length)); } else { type.writeSlice(builder, parseSlice(slice, offset, length)); } } return builder.build(); }
decimalType.writeSlice(builder, DecimalUtils.getLongDecimalValue(hiveDecimal, decimalType.getScale()));