/** * Set the element at the given index to the given value. * * @param index position of element * @param value BigDecimal containing decimal value. */ public void set(int index, BigDecimal value) { BitVectorHelper.setValidityBitToOne(validityBuffer, index); DecimalUtility.checkPrecisionAndScale(value, precision, scale); DecimalUtility.writeBigDecimalToArrowBuf(value, valueBuffer, index); }
public void add() { if (in.isSet != 0) { nonNullCount.value = 1; in.start = (in.start / (org.apache.arrow.vector.util.DecimalUtility.DECIMAL_BYTE_LENGTH)); java.math.BigDecimal bd = org.apache.arrow.vector.util.DecimalUtility.getBigDecimalFromArrowBuf(in.buffer, in.start, in.scale); double val = bd.doubleValue(); if (val < minVal.value) { minVal.value = val; } } } public void output() {
/** * Write the given byte array to the ArrowBuf at the given value index. Will throw an * UnsupportedOperationException if the decimal size is greater than the Decimal vector byte * width. */ public static void writeByteArrayToArrowBuf(byte[] bytes, ArrowBuf bytebuf, int index) { writeByteArrayToArrowBuf(bytes, bytebuf, index, 0); }
@Override protected void readField(long recordsToReadInThisPass) { recordsReadInThisIteration = Math.min(pageReader.currentPageCount - pageReader.valuesRead, recordsToReadInThisPass - valuesReadInCurrentPass); if (usingDictionary) { for (int i = 0; i < recordsReadInThisIteration; i++){ BigDecimal bigDecimal = new BigDecimal(BigInteger.valueOf(pageReader.dictionaryValueReader.readInteger())); DecimalUtility.writeBigDecimalToArrowBuf(bigDecimal, vectorData, valuesReadInCurrentPass + i); valueVec.setIndexDefined(valuesReadInCurrentPass + i); } } } }
@Override protected ArrowBuf read(BufferAllocator allocator, int count) throws IOException { final int size = count * DecimalVector.TYPE_WIDTH; ArrowBuf buf = allocator.buffer(size); for (int i = 0; i < count; i++) { parser.nextToken(); BigDecimal decimalValue = new BigDecimal(parser.readValueAs(String.class)); DecimalUtility.writeBigDecimalToArrowBuf(decimalValue, buf, i); } buf.writerIndex(size); return buf; } };
@Override public void eval() { java.math.BigDecimal bd = java.math.BigDecimal.valueOf(in.value).setScale((int) scale.value, java.math.RoundingMode.HALF_UP); try { org.apache.arrow.vector.util.DecimalUtility.writeBigDecimalToArrowBuf(bd, buffer, 0); } catch (RuntimeException e) { throw errorContext.error(e) .build(); } out.buffer = buffer; out.precision = (int) precision.value; out.scale = (int) scale.value; } }
public void add() { if (in.isSet != 0) { nonNullCount.value = 1; in.start = (in.start / (org.apache.arrow.vector.util.DecimalUtility.DECIMAL_BYTE_LENGTH)); java.math.BigDecimal bd = org.apache.arrow.vector.util.DecimalUtility.getBigDecimalFromArrowBuf(in.buffer, in.start, in.scale); double val = bd.doubleValue(); if (val > maxVal.value) { maxVal.value = val; } } } public void output() {
/** * Write the given BigDecimal to the ArrowBuf at the given value index. Will throw an * UnsupportedOperationException if the decimal size is greater than the Decimal vector byte * width. */ public static void writeBigDecimalToArrowBuf(BigDecimal value, ArrowBuf bytebuf, int index) { final byte[] bytes = value.unscaledValue().toByteArray(); final int padValue = value.signum() == -1 ? 0xFF : 0; writeByteArrayToArrowBuf(bytes, bytebuf, index, padValue); }
@Override protected void readField(long recordsToReadInThisPass) { recordsReadInThisIteration = Math.min(pageReader.currentPageCount - pageReader.valuesRead, recordsToReadInThisPass - valuesReadInCurrentPass); for (int i = 0; i < recordsReadInThisIteration; i++){ try { BigDecimal bigDecimal = new BigDecimal(BigInteger.valueOf(pageReader.dictionaryValueReader.readLong())); DecimalUtility.writeBigDecimalToArrowBuf(bigDecimal, vectorData, valuesReadInCurrentPass + i); valueVec.setIndexDefined(valuesReadInCurrentPass + i); } catch ( Exception ex) { throw ex; } } } }
public void eval() { out.isSet = 1; if (in.isSet == 0) { out.value = 0; } else { in.start = (in.start / (org.apache.arrow.vector.util.DecimalUtility.DECIMAL_BYTE_LENGTH)); java.math.BigDecimal decimal = org.apache.arrow.vector.util.DecimalUtility.getBigDecimalFromArrowBuf(in.buffer, in.start, in.scale); out.value = decimal.hashCode() ^ ((int) seed.value) ^ (seed.value >> 16); } } }
@Override public void eval() { java.math.BigDecimal bd = java.math.BigDecimal.valueOf(in.value).setScale((int) scale.value, java.math.RoundingMode.HALF_UP); try { org.apache.arrow.vector.util.DecimalUtility.writeBigDecimalToArrowBuf(bd, buffer, 0); } catch (RuntimeException e) { throw errorContext.error(e) .build(); } out.buffer = buffer; out.precision = (int) precision.value; out.scale = (int) scale.value; } }
public void add() { if (in.isSet == 1) { in.start = (in.start / (org.apache.arrow.vector.util.DecimalUtility.DECIMAL_BYTE_LENGTH)); java.math.BigDecimal bd = org.apache.arrow.vector.util.DecimalUtility.getBigDecimalFromArrowBuf(in.buffer, in.start, in.scale); sum.value += bd.doubleValue(); } } public void output() {
@Override public void eval() { java.math.BigDecimal bd = java.math.BigDecimal.valueOf(in.value).setScale((int) scale.value, java.math.RoundingMode.HALF_UP); try { org.apache.arrow.vector.util.DecimalUtility.writeBigDecimalToArrowBuf(bd, buffer, 0); } catch (RuntimeException e) { throw errorContext.error(e) .build(); } out.buffer = buffer; out.precision = (int) precision.value; out.scale = (int) scale.value; } }
public void eval() { out.isSet = 1; if (in.isSet == 0) { out.value = 0; } else { in.start = (in.start / (org.apache.arrow.vector.util.DecimalUtility.DECIMAL_BYTE_LENGTH)); java.math.BigDecimal decimal = org.apache.arrow.vector.util.DecimalUtility.getBigDecimalFromArrowBuf(in.buffer, in.start, in.scale); out.value = decimal.hashCode(); } } }
@Override public void eval() { out.isSet = 1; java.math.BigDecimal bd = java.math.BigDecimal.valueOf(in.value).setScale((int) scale.value, java.math.RoundingMode.HALF_UP); try { org.apache.arrow.vector.util.DecimalUtility.writeBigDecimalToArrowBuf(bd, buffer, 0); } catch (RuntimeException e) { throw errorContext.error(e) .build(); } out.buffer = buffer; out.precision = (int) precision.value; out.scale = (int) scale.value; } }
public void eval() { out.isSet = 1; if (in.isSet == 0) { out.value = 0; } else { in.start = (in.start / (org.apache.arrow.vector.util.DecimalUtility.DECIMAL_BYTE_LENGTH)); java.math.BigDecimal decimal = org.apache.arrow.vector.util.DecimalUtility.getBigDecimalFromArrowBuf(in.buffer, in.start, in.scale); out.value = decimal.hashCode(); } } }
@Override protected void readField(long recordsToReadInThisPass) { if (usingDictionary) { for (int i = 0; i < recordsToReadInThisPass; i++){ BigDecimal bigDecimal = new BigDecimal(BigInteger.valueOf(pageReader.dictionaryValueReader.readInteger())); /* this will swap bytes as we are writing to the buffer of DecimalVector */ DecimalUtility.writeBigDecimalToArrowBuf(bigDecimal, vectorData, valuesReadInCurrentPass + i); valueVec.setIndexDefined(valuesReadInCurrentPass + i); } } else { for (int i = 0; i < recordsToReadInThisPass; i++){ BigDecimal bigDecimal = new BigDecimal(BigInteger.valueOf(pageReader.valueReader.readInteger())); /* this will swap bytes as we are writing to the buffer of DecimalVector */ DecimalUtility.writeBigDecimalToArrowBuf(bigDecimal, vectorData, valuesReadInCurrentPass + i); valueVec.setIndexDefined(valuesReadInCurrentPass + i); } } } }
public void eval() { out.isSet = 1; if (in.isSet == 0) { out.value = 0; } else { in.start = (in.start / (org.apache.arrow.vector.util.DecimalUtility.DECIMAL_BYTE_LENGTH)); java.math.BigDecimal decimal = org.apache.arrow.vector.util.DecimalUtility.getBigDecimalFromArrowBuf(in.buffer, in.start, in.scale); out.value = decimal.hashCode() ^ seed.value; } } }
@Override protected void readField(long recordsToReadInThisPass) { if (usingDictionary) { for (int i = 0; i < recordsToReadInThisPass; i++){ BigDecimal bigDecimal = new BigDecimal(BigInteger.valueOf(pageReader.dictionaryValueReader.readLong())); /* this will swap bytes as we are writing to the buffer of DecimalVector */ DecimalUtility.writeBigDecimalToArrowBuf(bigDecimal, vectorData, valuesReadInCurrentPass + i); valueVec.setIndexDefined(valuesReadInCurrentPass + i); } } else { for (int i = 0; i < recordsToReadInThisPass; i++){ BigDecimal bigDecimal = new BigDecimal(BigInteger.valueOf(pageReader.valueReader.readLong())); /* this will swap bytes as we are writing to the buffer of DecimalVector */ DecimalUtility.writeBigDecimalToArrowBuf(bigDecimal, vectorData, valuesReadInCurrentPass + i); valueVec.setIndexDefined(valuesReadInCurrentPass + i); } } } }
@Override public void eval() { in.start = (in.start / (org.apache.arrow.vector.util.DecimalUtility.DECIMAL_BYTE_LENGTH)); java.math.BigDecimal bd = org.apache.arrow.vector.util.DecimalUtility.getBigDecimalFromArrowBuf(in.buffer, in.start, in.scale); out.value = bd.doubleValue(); } }