From bb538c6643f333cae6cc53886a6b4eadc1c5ae6d Mon Sep 17 00:00:00 2001 From: Ramasai Date: Thu, 2 Mar 2023 22:46:18 -0500 Subject: [PATCH 1/9] Made reader initialization lazy and added new getTransferPair() function that takes in a Field type --- .../arrow/vector/BaseFixedWidthVector.java | 7 ++++ .../org/apache/arrow/vector/BigIntVector.java | 28 ++++++++++++++-- .../org/apache/arrow/vector/BitVector.java | 28 ++++++++++++++-- .../apache/arrow/vector/DateDayVector.java | 28 ++++++++++++++-- .../apache/arrow/vector/DateMilliVector.java | 27 +++++++++++++-- .../apache/arrow/vector/Decimal256Vector.java | 27 +++++++++++++-- .../apache/arrow/vector/DecimalVector.java | 27 +++++++++++++-- .../apache/arrow/vector/DurationVector.java | 27 +++++++++++++-- .../arrow/vector/FixedSizeBinaryVector.java | 28 ++++++++++++++-- .../org/apache/arrow/vector/Float4Vector.java | 28 ++++++++++++++-- .../org/apache/arrow/vector/Float8Vector.java | 28 ++++++++++++++-- .../org/apache/arrow/vector/IntVector.java | 28 ++++++++++++++-- .../arrow/vector/IntervalDayVector.java | 27 +++++++++++++-- .../vector/IntervalMonthDayNanoVector.java | 27 +++++++++++++-- .../arrow/vector/IntervalYearVector.java | 27 +++++++++++++-- .../apache/arrow/vector/SmallIntVector.java | 28 ++++++++++++++-- .../apache/arrow/vector/TimeMicroVector.java | 28 ++++++++++++++-- .../apache/arrow/vector/TimeMilliVector.java | 27 +++++++++++++-- .../apache/arrow/vector/TimeNanoVector.java | 28 ++++++++++++++-- .../apache/arrow/vector/TimeSecVector.java | 28 ++++++++++++++-- .../arrow/vector/TimeStampMicroTZVector.java | 31 ++++++++++++++--- .../arrow/vector/TimeStampMicroVector.java | 30 ++++++++++++++--- .../arrow/vector/TimeStampMilliTZVector.java | 31 ++++++++++++++--- .../arrow/vector/TimeStampMilliVector.java | 30 ++++++++++++++--- .../arrow/vector/TimeStampNanoTZVector.java | 31 ++++++++++++++--- .../arrow/vector/TimeStampNanoVector.java | 30 ++++++++++++++--- .../arrow/vector/TimeStampSecTZVector.java | 31 ++++++++++++++--- .../arrow/vector/TimeStampSecVector.java | 30 ++++++++++++++--- .../apache/arrow/vector/TinyIntVector.java | 28 ++++++++++++++-- .../org/apache/arrow/vector/UInt1Vector.java | 33 +++++++++++++++++-- .../org/apache/arrow/vector/UInt2Vector.java | 33 +++++++++++++++++-- .../org/apache/arrow/vector/UInt4Vector.java | 33 +++++++++++++++++-- .../org/apache/arrow/vector/UInt8Vector.java | 32 ++++++++++++++++-- .../apache/arrow/vector/TestBitVector.java | 10 ++++++ .../arrow/vector/TestDecimal256Vector.java | 11 +++++++ .../arrow/vector/TestDecimalVector.java | 11 +++++++ .../arrow/vector/TestDurationVector.java | 12 +++++++ .../vector/TestFixedSizeBinaryVector.java | 10 ++++++ .../arrow/vector/TestIntervalYearVector.java | 11 +++++++ 39 files changed, 895 insertions(+), 104 deletions(-) diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BaseFixedWidthVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BaseFixedWidthVector.java index 0c61ad70721..bb697db096e 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BaseFixedWidthVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BaseFixedWidthVector.java @@ -580,6 +580,13 @@ public TransferPair getTransferPair(BufferAllocator allocator) { */ public abstract TransferPair getTransferPair(String ref, BufferAllocator allocator); + /** + * Construct a transfer pair of this vector and another vector of same type. + * @param field Field object used by the vector + * @return TransferPair + */ + public abstract TransferPair getTransferPair(Field field, BufferAllocator allocator); + /** * Transfer this vector'data to another vector. The memory associated * with this vector is transferred to the allocator of target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java index c19955b54e5..22140686d6b 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.BigIntReaderImpl; @@ -37,7 +39,7 @@ */ public final class BigIntVector extends BaseFixedWidthVector implements BaseIntVector { public static final byte TYPE_WIDTH = 8; - private final FieldReader reader; + private Supplier reader; /** * Instantiate a BigIntVector. This doesn't allocate any memory for @@ -71,7 +73,11 @@ public BigIntVector(String name, FieldType fieldType, BufferAllocator allocator) */ public BigIntVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new BigIntReaderImpl(BigIntVector.this); + reader = () -> { + final FieldReader fieldReader = new BigIntReaderImpl(BigIntVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -81,7 +87,7 @@ public BigIntVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -298,6 +304,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -331,6 +349,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new BigIntVector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new BigIntVector(field, allocator); + } + public TransferImpl(BigIntVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java index 3bcfd983e64..3bfae8f7bd2 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java @@ -20,6 +20,8 @@ import static org.apache.arrow.memory.util.LargeMemoryUtil.capAtMaxInt; import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.memory.util.ArrowBufPointer; @@ -46,7 +48,7 @@ public final class BitVector extends BaseFixedWidthVector { private static final int HASH_CODE_FOR_ONE = 19; - private final FieldReader reader; + private Supplier reader; /** * Instantiate a BitVector. This doesn't allocate any memory for @@ -80,7 +82,11 @@ public BitVector(String name, FieldType fieldType, BufferAllocator allocator) { */ public BitVector(Field field, BufferAllocator allocator) { super(field, allocator, 0); - reader = new BitReaderImpl(BitVector.this); + reader = () -> { + final FieldReader fieldReader = new BitReaderImpl(BitVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -90,7 +96,7 @@ public BitVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -554,6 +560,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -572,6 +590,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new BitVector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new BitVector(field, allocator); + } + public TransferImpl(BitVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java index 3e88268450a..6d5ec475437 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.DateDayReaderImpl; @@ -38,7 +40,7 @@ public final class DateDayVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 4; - private final FieldReader reader; + private Supplier reader; /** * Instantiate a DateDayVector. This doesn't allocate any memory for @@ -72,7 +74,11 @@ public DateDayVector(String name, FieldType fieldType, BufferAllocator allocator */ public DateDayVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new DateDayReaderImpl(DateDayVector.this); + reader = () -> { + final FieldReader fieldReader = new DateDayReaderImpl(DateDayVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -82,7 +88,7 @@ public DateDayVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -302,6 +308,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -320,6 +338,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new DateDayVector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new DateDayVector(field, allocator); + } + public TransferImpl(DateDayVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java index 73738d77176..8e76a5e2266 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -40,7 +41,7 @@ */ public final class DateMilliVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 8; - private final FieldReader reader; + private Supplier reader; /** * Instantiate a DateMilliVector. This doesn't allocate any memory for @@ -74,7 +75,11 @@ public DateMilliVector(String name, FieldType fieldType, BufferAllocator allocat */ public DateMilliVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new DateMilliReaderImpl(DateMilliVector.this); + reader = () -> { + final FieldReader fieldReader = new DateMilliReaderImpl(DateMilliVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -84,7 +89,7 @@ public DateMilliVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -305,6 +310,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -323,6 +340,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new DateMilliVector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new DateMilliVector(field, allocator); + } + public TransferImpl(DateMilliVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java index 5a1526b0c49..6640aae6847 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java @@ -21,6 +21,7 @@ import java.math.BigDecimal; import java.nio.ByteOrder; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -46,7 +47,7 @@ public final class Decimal256Vector extends BaseFixedWidthVector { public static final int MAX_PRECISION = 76; public static final byte TYPE_WIDTH = 32; private static final boolean LITTLE_ENDIAN = ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN; - private final FieldReader reader; + private Supplier reader; private final int precision; private final int scale; @@ -85,7 +86,11 @@ public Decimal256Vector(String name, FieldType fieldType, BufferAllocator alloca public Decimal256Vector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); ArrowType.Decimal arrowType = (ArrowType.Decimal) field.getFieldType().getType(); - reader = new Decimal256ReaderImpl(Decimal256Vector.this); + reader = () -> { + final FieldReader fieldReader = new Decimal256ReaderImpl(Decimal256Vector.this); + reader = () -> fieldReader; + return fieldReader; + }; this.precision = arrowType.getPrecision(); this.scale = arrowType.getScale(); } @@ -97,7 +102,7 @@ public Decimal256Vector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -544,6 +549,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -563,6 +580,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { Decimal256Vector.this.scale); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new Decimal256Vector(field, allocator); + } + public TransferImpl(Decimal256Vector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java index 3fa9152a260..ae7d6dd4e83 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java @@ -21,6 +21,7 @@ import java.math.BigDecimal; import java.nio.ByteOrder; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -45,7 +46,7 @@ public final class DecimalVector extends BaseFixedWidthVector { public static final int MAX_PRECISION = 38; public static final byte TYPE_WIDTH = 16; private static final boolean LITTLE_ENDIAN = ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN; - private final FieldReader reader; + private Supplier reader; private final int precision; private final int scale; @@ -84,7 +85,11 @@ public DecimalVector(String name, FieldType fieldType, BufferAllocator allocator public DecimalVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); ArrowType.Decimal arrowType = (ArrowType.Decimal) field.getFieldType().getType(); - reader = new DecimalReaderImpl(DecimalVector.this); + reader = () -> { + final FieldReader fieldReader = new DecimalReaderImpl(DecimalVector.this); + reader = () -> fieldReader; + return fieldReader; + }; this.precision = arrowType.getPrecision(); this.scale = arrowType.getScale(); } @@ -96,7 +101,7 @@ public DecimalVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -543,6 +548,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -562,6 +579,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { DecimalVector.this.scale); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new DecimalVector(field, allocator); + } + public TransferImpl(DecimalVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java index 9671b34e002..aa6a71d89df 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java @@ -21,6 +21,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.Duration; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -43,7 +44,7 @@ */ public final class DurationVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 8; - private final FieldReader reader; + private Supplier reader; private final TimeUnit unit; @@ -68,7 +69,11 @@ public DurationVector(String name, FieldType fieldType, BufferAllocator allocato */ public DurationVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new DurationReaderImpl(DurationVector.this); + reader = () -> { + final FieldReader fieldReader = new DurationReaderImpl(DurationVector.this); + reader = () -> fieldReader; + return fieldReader; + }; this.unit = ((ArrowType.Duration) field.getFieldType().getType()).getUnit(); } @@ -79,7 +84,7 @@ public DurationVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -361,6 +366,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -379,6 +396,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new DurationVector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new DurationVector(field, allocator); + } + public TransferImpl(DurationVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java b/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java index e1847e4bb94..daefb799b82 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.util.Preconditions; @@ -39,7 +41,7 @@ */ public class FixedSizeBinaryVector extends BaseFixedWidthVector { private final int byteWidth; - private final FieldReader reader; + private Supplier reader; /** * Instantiate a FixedSizeBinaryVector. This doesn't allocate any memory for @@ -74,7 +76,11 @@ public FixedSizeBinaryVector(String name, FieldType fieldType, BufferAllocator a */ public FixedSizeBinaryVector(Field field, BufferAllocator allocator) { super(field, allocator, ((FixedSizeBinary) field.getFieldType().getType()).getByteWidth()); - reader = new FixedSizeBinaryReaderImpl(FixedSizeBinaryVector.this); + reader = () -> { + final FieldReader fieldReader = new FixedSizeBinaryReaderImpl(FixedSizeBinaryVector.this); + reader = () -> fieldReader; + return fieldReader; + }; byteWidth = ((FixedSizeBinary) field.getFieldType().getType()).getByteWidth(); } @@ -85,7 +91,7 @@ public FixedSizeBinaryVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -341,6 +347,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -359,6 +377,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new FixedSizeBinaryVector(ref, allocator, FixedSizeBinaryVector.this.byteWidth); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new FixedSizeBinaryVector(field, allocator); + } + public TransferImpl(FixedSizeBinaryVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java index 365a1529bb0..42c7069465e 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.Float4ReaderImpl; @@ -37,7 +39,7 @@ */ public final class Float4Vector extends BaseFixedWidthVector implements FloatingPointVector { public static final byte TYPE_WIDTH = 4; - private final FieldReader reader; + private Supplier reader; /** * Instantiate a Float4Vector. This doesn't allocate any memory for @@ -71,7 +73,11 @@ public Float4Vector(String name, FieldType fieldType, BufferAllocator allocator) */ public Float4Vector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new Float4ReaderImpl(Float4Vector.this); + reader = () -> { + final FieldReader fieldReader = new Float4ReaderImpl(Float4Vector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -81,7 +87,7 @@ public Float4Vector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -316,6 +322,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -334,6 +352,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new Float4Vector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new Float4Vector(field, allocator); + } + public TransferImpl(Float4Vector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java index 948390d46f2..2cb563cfdd0 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.Float8ReaderImpl; @@ -37,7 +39,7 @@ */ public final class Float8Vector extends BaseFixedWidthVector implements FloatingPointVector { public static final byte TYPE_WIDTH = 8; - private final FieldReader reader; + private Supplier reader; /** * Instantiate a Float8Vector. This doesn't allocate any memory for @@ -71,7 +73,11 @@ public Float8Vector(String name, FieldType fieldType, BufferAllocator allocator) */ public Float8Vector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new Float8ReaderImpl(Float8Vector.this); + reader = () -> { + final FieldReader fieldReader = new Float8ReaderImpl(Float8Vector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -81,7 +87,7 @@ public Float8Vector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -317,6 +323,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -335,6 +353,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new Float8Vector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new Float8Vector(field, allocator); + } + public TransferImpl(Float8Vector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java index e591ec1e857..e34b3365dad 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.IntReaderImpl; @@ -37,7 +39,7 @@ */ public final class IntVector extends BaseFixedWidthVector implements BaseIntVector { public static final byte TYPE_WIDTH = 4; - private final FieldReader reader; + private Supplier reader; /** * Instantiate a IntVector. This doesn't allocate any memory for @@ -71,7 +73,11 @@ public IntVector(String name, FieldType fieldType, BufferAllocator allocator) { */ public IntVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new IntReaderImpl(IntVector.this); + reader = () -> { + final FieldReader fieldReader = new IntReaderImpl(IntVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -81,7 +87,7 @@ public IntVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -302,6 +308,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -335,6 +353,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new IntVector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new IntVector(field, allocator); + } + public TransferImpl(IntVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java index 0dc860e6b8d..49dffcef135 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.Duration; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -41,7 +42,7 @@ public final class IntervalDayVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 8; private static final byte MILLISECOND_OFFSET = 4; - private final FieldReader reader; + private Supplier reader; /** * Instantiate a IntervalDayVector. This doesn't allocate any memory for @@ -75,7 +76,11 @@ public IntervalDayVector(String name, FieldType fieldType, BufferAllocator alloc */ public IntervalDayVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new IntervalDayReaderImpl(IntervalDayVector.this); + reader = () -> { + final FieldReader fieldReader = new IntervalDayReaderImpl(IntervalDayVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -85,7 +90,7 @@ public IntervalDayVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -388,6 +393,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -406,6 +423,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new IntervalDayVector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new IntervalDayVector(field, allocator); + } + public TransferImpl(IntervalDayVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java index ba3a26a8946..b4ba9f501b1 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java @@ -21,6 +21,7 @@ import java.time.Duration; import java.time.Period; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -46,7 +47,7 @@ public final class IntervalMonthDayNanoVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 16; private static final byte DAY_OFFSET = 4; private static final byte NANOSECOND_OFFSET = 8; - private final FieldReader reader; + private Supplier reader; /** @@ -81,7 +82,11 @@ public IntervalMonthDayNanoVector(String name, FieldType fieldType, BufferAlloca */ public IntervalMonthDayNanoVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new IntervalMonthDayNanoReaderImpl(IntervalMonthDayNanoVector.this); + reader = () -> { + final FieldReader fieldReader = new IntervalMonthDayNanoReaderImpl(IntervalMonthDayNanoVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -91,7 +96,7 @@ public IntervalMonthDayNanoVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -397,6 +402,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -415,6 +432,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new IntervalMonthDayNanoVector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new IntervalMonthDayNanoVector(field, allocator); + } + public TransferImpl(IntervalMonthDayNanoVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java index 7ddfe6b78b1..b4e1de8d026 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.Period; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -39,7 +40,7 @@ */ public final class IntervalYearVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 4; - private final FieldReader reader; + private Supplier reader; /** * Instantiate a IntervalYearVector. This doesn't allocate any memory for @@ -73,7 +74,11 @@ public IntervalYearVector(String name, FieldType fieldType, BufferAllocator allo */ public IntervalYearVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new IntervalYearReaderImpl(IntervalYearVector.this); + reader = () -> { + final FieldReader fieldReader = new IntervalYearReaderImpl(IntervalYearVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -83,7 +88,7 @@ public IntervalYearVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -337,6 +342,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -355,6 +372,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new IntervalYearVector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new IntervalYearVector(field, allocator); + } + public TransferImpl(IntervalYearVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java index 1de6dea90f8..2c835804ff7 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.SmallIntReaderImpl; @@ -37,7 +39,7 @@ */ public final class SmallIntVector extends BaseFixedWidthVector implements BaseIntVector { public static final byte TYPE_WIDTH = 2; - private final FieldReader reader; + private Supplier reader; /** * Instantiate a SmallIntVector. This doesn't allocate any memory for @@ -71,7 +73,11 @@ public SmallIntVector(String name, FieldType fieldType, BufferAllocator allocato */ public SmallIntVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new SmallIntReaderImpl(SmallIntVector.this); + reader = () -> { + final FieldReader fieldReader = new SmallIntReaderImpl(SmallIntVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -81,7 +87,7 @@ public SmallIntVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -329,6 +335,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -362,6 +380,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new SmallIntVector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new SmallIntVector(field, allocator); + } + public TransferImpl(SmallIntVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java index cf128859e4c..e127d63a6a8 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeMicroReaderImpl; @@ -38,7 +40,7 @@ */ public final class TimeMicroVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 8; - private final FieldReader reader; + private Supplier reader; /** * Instantiate a TimeMicroVector. This doesn't allocate any memory for @@ -72,7 +74,11 @@ public TimeMicroVector(String name, FieldType fieldType, BufferAllocator allocat */ public TimeMicroVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new TimeMicroReaderImpl(TimeMicroVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeMicroReaderImpl(TimeMicroVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -82,7 +88,7 @@ public TimeMicroVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -302,6 +308,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -320,6 +338,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new TimeMicroVector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new TimeMicroVector(field, allocator); + } + public TransferImpl(TimeMicroVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java index b96990b1060..4fa46057d68 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -40,7 +41,7 @@ */ public final class TimeMilliVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 4; - private final FieldReader reader; + private Supplier reader; /** * Instantiate a TimeMilliVector. This doesn't allocate any memory for @@ -74,7 +75,11 @@ public TimeMilliVector(String name, FieldType fieldType, BufferAllocator allocat */ public TimeMilliVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new TimeMilliReaderImpl(TimeMilliVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeMilliReaderImpl(TimeMilliVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -84,7 +89,7 @@ public TimeMilliVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -306,6 +311,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -324,6 +341,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new TimeMilliVector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new TimeMilliVector(field, allocator); + } + public TransferImpl(TimeMilliVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java index bc78a026461..1a2a1755d23 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeNanoReaderImpl; @@ -37,7 +39,7 @@ */ public final class TimeNanoVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 8; - private final FieldReader reader; + private Supplier reader; /** * Instantiate a TimeNanoVector. This doesn't allocate any memory for @@ -71,7 +73,11 @@ public TimeNanoVector(String name, FieldType fieldType, BufferAllocator allocato */ public TimeNanoVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new TimeNanoReaderImpl(TimeNanoVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeNanoReaderImpl(TimeNanoVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -81,7 +87,7 @@ public TimeNanoVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -302,6 +308,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -320,6 +338,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new TimeNanoVector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new TimeNanoVector(field, allocator); + } + public TransferImpl(TimeNanoVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java index 29b7381be31..00336c2e4e4 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeSecReaderImpl; @@ -37,7 +39,7 @@ */ public final class TimeSecVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 4; - private final FieldReader reader; + private Supplier reader; /** * Instantiate a TimeSecVector. This doesn't allocate any memory for @@ -71,7 +73,11 @@ public TimeSecVector(String name, FieldType fieldType, BufferAllocator allocator */ public TimeSecVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new TimeSecReaderImpl(TimeSecVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeSecReaderImpl(TimeSecVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -81,7 +87,7 @@ public TimeSecVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -303,6 +309,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -321,6 +339,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new TimeSecVector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new TimeSecVector(field, allocator); + } + public TransferImpl(TimeSecVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java index d08b3523067..0e50160fa4e 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampMicroTZReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -37,7 +39,7 @@ * (bit vector) is maintained to track which elements in the vector are null. */ public final class TimeStampMicroTZVector extends TimeStampVector { - private final FieldReader reader; + private Supplier reader; private final String timeZone; /** @@ -63,7 +65,11 @@ public TimeStampMicroTZVector(String name, FieldType fieldType, BufferAllocator super(name, fieldType, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) fieldType.getType(); timeZone = arrowType.getTimezone(); - reader = new TimeStampMicroTZReaderImpl(TimeStampMicroTZVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeStampMicroTZReaderImpl(TimeStampMicroTZVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -77,7 +83,11 @@ public TimeStampMicroTZVector(Field field, BufferAllocator allocator) { super(field, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) field.getFieldType().getType(); timeZone = arrowType.getTimezone(); - reader = new TimeStampMicroTZReaderImpl(TimeStampMicroTZVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeStampMicroTZReaderImpl(TimeStampMicroTZVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -87,7 +97,7 @@ public TimeStampMicroTZVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -235,6 +245,19 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(to); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + TimeStampMicroTZVector to = new TimeStampMicroTZVector(field, allocator); + return new TransferImpl(to); + } + /** * Construct a TransferPair with a desired target vector of the same type. * diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java index 5cbef896264..9d484d585e0 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; +import java.util.function.Supplier; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampMicroReaderImpl; @@ -38,7 +39,7 @@ * (bit vector) is maintained to track which elements in the vector are null. */ public final class TimeStampMicroVector extends TimeStampVector { - private final FieldReader reader; + private Supplier reader; /** * Instantiate a TimeStampMicroVector. This doesn't allocate any memory for @@ -61,7 +62,11 @@ public TimeStampMicroVector(String name, BufferAllocator allocator) { */ public TimeStampMicroVector(String name, FieldType fieldType, BufferAllocator allocator) { super(name, fieldType, allocator); - reader = new TimeStampMicroReaderImpl(TimeStampMicroVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeStampMicroReaderImpl(TimeStampMicroVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -73,7 +78,11 @@ public TimeStampMicroVector(String name, FieldType fieldType, BufferAllocator al */ public TimeStampMicroVector(Field field, BufferAllocator allocator) { super(field, allocator); - reader = new TimeStampMicroReaderImpl(TimeStampMicroVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeStampMicroReaderImpl(TimeStampMicroVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -83,7 +92,7 @@ public TimeStampMicroVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -223,6 +232,19 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(to); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + TimeStampMicroVector to = new TimeStampMicroVector(field, allocator); + return new TransferImpl(to); + } + /** * Construct a TransferPair with a desired target vector of the same type. * diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java index 1151d064e25..0f4c6691c6b 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampMilliTZReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -37,7 +39,7 @@ * (bit vector) is maintained to track which elements in the vector are null. */ public final class TimeStampMilliTZVector extends TimeStampVector { - private final FieldReader reader; + private Supplier reader; private final String timeZone; /** @@ -63,7 +65,11 @@ public TimeStampMilliTZVector(String name, FieldType fieldType, BufferAllocator super(name, fieldType, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) fieldType.getType(); timeZone = arrowType.getTimezone(); - reader = new TimeStampMilliTZReaderImpl(TimeStampMilliTZVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeStampMilliTZReaderImpl(TimeStampMilliTZVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -77,7 +83,11 @@ public TimeStampMilliTZVector(Field field, BufferAllocator allocator) { super(field, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) field.getFieldType().getType(); timeZone = arrowType.getTimezone(); - reader = new TimeStampMilliTZReaderImpl(TimeStampMilliTZVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeStampMilliTZReaderImpl(TimeStampMilliTZVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -87,7 +97,7 @@ public TimeStampMilliTZVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -234,6 +244,19 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(to); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + TimeStampMilliTZVector to = new TimeStampMilliTZVector(field, allocator); + return new TransferImpl(to); + } + /** * Construct a TransferPair with a desired target vector of the same type. * diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java index 8f46f5606df..b1a513f2d52 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; +import java.util.function.Supplier; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampMilliReaderImpl; @@ -38,7 +39,7 @@ * (bit vector) is maintained to track which elements in the vector are null. */ public final class TimeStampMilliVector extends TimeStampVector { - private final FieldReader reader; + private Supplier reader; /** * Instantiate a TimeStampMilliVector. This doesn't allocate any memory for @@ -61,7 +62,11 @@ public TimeStampMilliVector(String name, BufferAllocator allocator) { */ public TimeStampMilliVector(String name, FieldType fieldType, BufferAllocator allocator) { super(name, fieldType, allocator); - reader = new TimeStampMilliReaderImpl(TimeStampMilliVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeStampMilliReaderImpl(TimeStampMilliVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -73,7 +78,11 @@ public TimeStampMilliVector(String name, FieldType fieldType, BufferAllocator al */ public TimeStampMilliVector(Field field, BufferAllocator allocator) { super(field, allocator); - reader = new TimeStampMilliReaderImpl(TimeStampMilliVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeStampMilliReaderImpl(TimeStampMilliVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -83,7 +92,7 @@ public TimeStampMilliVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -223,6 +232,19 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(to); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + TimeStampMilliVector to = new TimeStampMilliVector(field, allocator); + return new TransferImpl(to); + } + /** * Construct a TransferPair with a desired target vector of the same type. * diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java index b19b437781f..ce76b0230a4 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampNanoTZReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -37,7 +39,7 @@ * (bit vector) is maintained to track which elements in the vector are null. */ public final class TimeStampNanoTZVector extends TimeStampVector { - private final FieldReader reader; + private Supplier reader; private final String timeZone; /** @@ -63,7 +65,11 @@ public TimeStampNanoTZVector(String name, FieldType fieldType, BufferAllocator a super(name, fieldType, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) fieldType.getType(); timeZone = arrowType.getTimezone(); - reader = new TimeStampNanoTZReaderImpl(TimeStampNanoTZVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeStampNanoTZReaderImpl(TimeStampNanoTZVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -77,7 +83,11 @@ public TimeStampNanoTZVector(Field field, BufferAllocator allocator) { super(field, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) field.getFieldType().getType(); timeZone = arrowType.getTimezone(); - reader = new TimeStampNanoTZReaderImpl(TimeStampNanoTZVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeStampNanoTZReaderImpl(TimeStampNanoTZVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -87,7 +97,7 @@ public TimeStampNanoTZVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -237,6 +247,19 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(to); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + TimeStampNanoTZVector to = new TimeStampNanoTZVector(field, allocator); + return new TransferImpl(to); + } + /** * Construct a TransferPair with a desired target vector of the same type. * diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java index 7b87dac4377..84362f446b3 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; +import java.util.function.Supplier; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampNanoReaderImpl; @@ -38,7 +39,7 @@ * (bit vector) is maintained to track which elements in the vector are null. */ public final class TimeStampNanoVector extends TimeStampVector { - private final FieldReader reader; + private Supplier reader; /** * Instantiate a TimeStampNanoVector. This doesn't allocate any memory for @@ -61,7 +62,11 @@ public TimeStampNanoVector(String name, BufferAllocator allocator) { */ public TimeStampNanoVector(String name, FieldType fieldType, BufferAllocator allocator) { super(name, fieldType, allocator); - reader = new TimeStampNanoReaderImpl(TimeStampNanoVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeStampNanoReaderImpl(TimeStampNanoVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -73,7 +78,11 @@ public TimeStampNanoVector(String name, FieldType fieldType, BufferAllocator all */ public TimeStampNanoVector(Field field, BufferAllocator allocator) { super(field, allocator); - reader = new TimeStampNanoReaderImpl(TimeStampNanoVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeStampNanoReaderImpl(TimeStampNanoVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -83,7 +92,7 @@ public TimeStampNanoVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -223,6 +232,19 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(to); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + TimeStampNanoVector to = new TimeStampNanoVector(field, allocator); + return new TransferImpl(to); + } + /** * Construct a TransferPair with a desired target vector of the same type. * diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java index 1ffdb55c7a5..a1d06582aec 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampSecTZReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -37,7 +39,7 @@ * (bit vector) is maintained to track which elements in the vector are null. */ public final class TimeStampSecTZVector extends TimeStampVector { - private final FieldReader reader; + private Supplier reader; private final String timeZone; /** @@ -63,7 +65,11 @@ public TimeStampSecTZVector(String name, FieldType fieldType, BufferAllocator al super(name, fieldType, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) fieldType.getType(); timeZone = arrowType.getTimezone(); - reader = new TimeStampSecTZReaderImpl(TimeStampSecTZVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeStampSecTZReaderImpl(TimeStampSecTZVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -77,7 +83,11 @@ public TimeStampSecTZVector(Field field, BufferAllocator allocator) { super(field, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) field.getFieldType().getType(); timeZone = arrowType.getTimezone(); - reader = new TimeStampSecTZReaderImpl(TimeStampSecTZVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeStampSecTZReaderImpl(TimeStampSecTZVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -87,7 +97,7 @@ public TimeStampSecTZVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -234,6 +244,19 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(to); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + TimeStampSecTZVector to = new TimeStampSecTZVector(field, allocator); + return new TransferImpl(to); + } + /** * Construct a TransferPair with a desired target vector of the same type. * diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java index f12e19684be..024b3085129 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; +import java.util.function.Supplier; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampSecReaderImpl; @@ -38,7 +39,7 @@ * maintained to track which elements in the vector are null. */ public final class TimeStampSecVector extends TimeStampVector { - private final FieldReader reader; + private Supplier reader; /** * Instantiate a TimeStampSecVector. This doesn't allocate any memory for @@ -61,7 +62,11 @@ public TimeStampSecVector(String name, BufferAllocator allocator) { */ public TimeStampSecVector(String name, FieldType fieldType, BufferAllocator allocator) { super(name, fieldType, allocator); - reader = new TimeStampSecReaderImpl(TimeStampSecVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeStampSecReaderImpl(TimeStampSecVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -73,7 +78,11 @@ public TimeStampSecVector(String name, FieldType fieldType, BufferAllocator allo */ public TimeStampSecVector(Field field, BufferAllocator allocator) { super(field, allocator); - reader = new TimeStampSecReaderImpl(TimeStampSecVector.this); + reader = () -> { + final FieldReader fieldReader = new TimeStampSecReaderImpl(TimeStampSecVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -83,7 +92,7 @@ public TimeStampSecVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -224,6 +233,19 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(to); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + TimeStampSecVector to = new TimeStampSecVector(field, allocator); + return new TransferImpl(to); + } + /** * Construct a TransferPair with a desired target vector of the same type. * diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java index f08b0e02f81..12c0d810de7 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TinyIntReaderImpl; @@ -37,7 +39,7 @@ */ public final class TinyIntVector extends BaseFixedWidthVector implements BaseIntVector { public static final byte TYPE_WIDTH = 1; - private final FieldReader reader; + private Supplier reader; /** * Instantiate a TinyIntVector. This doesn't allocate any memory for @@ -71,7 +73,11 @@ public TinyIntVector(String name, FieldType fieldType, BufferAllocator allocator */ public TinyIntVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new TinyIntReaderImpl(TinyIntVector.this); + reader = () -> { + final FieldReader fieldReader = new TinyIntReaderImpl(TinyIntVector.this); + reader = () -> fieldReader; + return fieldReader; + }; } /** @@ -81,7 +87,7 @@ public TinyIntVector(Field field, BufferAllocator allocator) { */ @Override public FieldReader getReader() { - return reader; + return reader.get(); } /** @@ -330,6 +336,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + /** * Construct a TransferPair with a desired target vector of the same type. * @@ -363,6 +381,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new TinyIntVector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new TinyIntVector(field, allocator); + } + public TransferImpl(TinyIntVector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java index bd9a732c108..0aeaea4af65 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.UInt1ReaderImpl; @@ -48,7 +50,7 @@ public final class UInt1Vector extends BaseFixedWidthVector implements BaseIntVe public static final byte MAX_UINT1 = (byte) 0XFF; public static final byte TYPE_WIDTH = 1; - private final FieldReader reader; + private Supplier reader; public UInt1Vector(String name, BufferAllocator allocator) { this(name, FieldType.nullable(MinorType.UINT1.getType()), allocator); @@ -58,14 +60,23 @@ public UInt1Vector(String name, FieldType fieldType, BufferAllocator allocator) this(new Field(name, fieldType, null), allocator); } + /** + * Constructor for UInt1Vector. + * @param field Field type + * @param allocator Allocator type + */ public UInt1Vector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new UInt1ReaderImpl(UInt1Vector.this); + reader = () -> { + final FieldReader fieldReader = new UInt1ReaderImpl(UInt1Vector.this); + reader = () -> fieldReader; + return fieldReader; + }; } @Override public FieldReader getReader() { - return reader; + return reader.get(); } @Override @@ -309,6 +320,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + @Override public TransferPair makeTransferPair(ValueVector to) { return new TransferImpl((UInt1Vector) to); @@ -341,6 +364,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new UInt1Vector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new UInt1Vector(field, allocator); + } + public TransferImpl(UInt1Vector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java index 5c29ab6b321..57258fa1652 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.UInt2ReaderImpl; @@ -44,7 +46,7 @@ public final class UInt2Vector extends BaseFixedWidthVector implements BaseIntVe public static final char MAX_UINT2 = (char) 0XFFFF; public static final byte TYPE_WIDTH = 2; - private final FieldReader reader; + private Supplier reader; public UInt2Vector(String name, BufferAllocator allocator) { this(name, FieldType.nullable(MinorType.UINT2.getType()), allocator); @@ -54,14 +56,23 @@ public UInt2Vector(String name, FieldType fieldType, BufferAllocator allocator) this(new Field(name, fieldType, null), allocator); } + /** + * Constructor for UInt2Vector type. + * @param field Field type + * @param allocator Allocator type + */ public UInt2Vector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new UInt2ReaderImpl(UInt2Vector.this); + reader = () -> { + final FieldReader fieldReader = new UInt2ReaderImpl(UInt2Vector.this); + reader = () -> fieldReader; + return fieldReader; + }; } @Override public FieldReader getReader() { - return reader; + return reader.get(); } @Override @@ -286,6 +297,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + @Override public TransferPair makeTransferPair(ValueVector to) { return new TransferImpl((UInt2Vector) to); @@ -319,6 +342,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new UInt2Vector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new UInt2Vector(field, allocator); + } + public TransferImpl(UInt2Vector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java index cc954d67ddd..80f3f91add6 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.UInt4ReaderImpl; @@ -49,7 +51,7 @@ public final class UInt4Vector extends BaseFixedWidthVector implements BaseIntVe public static final int MAX_UINT4 = 0XFFFFFFFF; public static final byte TYPE_WIDTH = 4; - private final FieldReader reader; + private Supplier reader; public UInt4Vector(String name, BufferAllocator allocator) { this(name, FieldType.nullable(MinorType.UINT4.getType()), allocator); @@ -59,14 +61,23 @@ public UInt4Vector(String name, FieldType fieldType, BufferAllocator allocator) this(new Field(name, fieldType, null), allocator); } + /** + * Constructor for UInt4Vector. + * @param field Field type + * @param allocator Allocator type + */ public UInt4Vector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new UInt4ReaderImpl(UInt4Vector.this); + reader = () -> { + final FieldReader fieldReader = new UInt4ReaderImpl(UInt4Vector.this); + reader = () -> fieldReader; + return fieldReader; + }; } @Override public FieldReader getReader() { - return reader; + return reader.get(); } @Override @@ -281,6 +292,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + @Override public TransferPair makeTransferPair(ValueVector to) { return new TransferImpl((UInt4Vector) to); @@ -313,6 +336,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new UInt4Vector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new UInt4Vector(field, allocator); + } + public TransferImpl(UInt4Vector to) { this.to = to; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java index 98eaf25a6e2..251c77727f6 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.math.BigInteger; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -46,7 +47,7 @@ public final class UInt8Vector extends BaseFixedWidthVector implements BaseIntVe public static final long MAX_UINT8 = 0XFFFFFFFFFFFFFFFFL; public static final byte TYPE_WIDTH = 8; - private final FieldReader reader; + private Supplier reader; public UInt8Vector(String name, BufferAllocator allocator) { this(name, FieldType.nullable(MinorType.UINT8.getType()), allocator); @@ -56,14 +57,23 @@ public UInt8Vector(String name, FieldType fieldType, BufferAllocator allocator) this(new Field(name, fieldType, null), allocator); } + /** + * Constructor for UInt8Vector. + * @param field Field type + * @param allocator Allocator type. + */ public UInt8Vector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = new UInt8ReaderImpl(UInt8Vector.this); + reader = () -> { + final FieldReader fieldReader = new UInt8ReaderImpl(UInt8Vector.this); + reader = () -> fieldReader; + return fieldReader; + }; } @Override public FieldReader getReader() { - return reader; + return reader.get(); } @Override @@ -277,6 +287,18 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { return new TransferImpl(ref, allocator); } + /** + * Construct a TransferPair comprising of this and a target vector of + * the same type. + * + * @param field Field object used by the vector + * @return {@link TransferPair} + */ + @Override + public TransferPair getTransferPair(Field field, BufferAllocator allocator) { + return new TransferImpl(field, allocator); + } + @Override public TransferPair makeTransferPair(ValueVector to) { return new TransferImpl((UInt8Vector) to); @@ -309,6 +331,10 @@ public TransferImpl(String ref, BufferAllocator allocator) { to = new UInt8Vector(ref, field.getFieldType(), allocator); } + public TransferImpl(Field field, BufferAllocator allocator) { + to = new UInt8Vector(field, allocator); + } + public TransferImpl(UInt8Vector to) { this.to = to; } diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestBitVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestBitVector.java index 28d56e342be..075a05c04b6 100644 --- a/java/vector/src/test/java/org/apache/arrow/vector/TestBitVector.java +++ b/java/vector/src/test/java/org/apache/arrow/vector/TestBitVector.java @@ -19,6 +19,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import java.util.stream.IntStream; @@ -540,4 +541,13 @@ public void testBitVectorHashCode() { assertFalse(hashCodes[1] == hashCodes[2]); } } + + @Test + public void testGetTransferPairWithField() { + final BitVector fromVector = new BitVector(EMPTY_SCHEMA_PATH, allocator); + final TransferPair transferPair = fromVector.getTransferPair(fromVector.getField(), allocator); + final BitVector toVector = (BitVector) transferPair.getTo(); + // Field inside a new vector created by reusing a field should be the same in memory as the original field. + assertSame(fromVector.getField(), toVector.getField()); + } } diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestDecimal256Vector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestDecimal256Vector.java index 82c912cef2f..51368cf6aea 100644 --- a/java/vector/src/test/java/org/apache/arrow/vector/TestDecimal256Vector.java +++ b/java/vector/src/test/java/org/apache/arrow/vector/TestDecimal256Vector.java @@ -18,6 +18,7 @@ package org.apache.arrow.vector; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -27,6 +28,7 @@ import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.util.TransferPair; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -337,6 +339,15 @@ public void setUsingArrowBufOfBEBytes() { } } + @Test + public void testGetTransferPairWithField() { + final Decimal256Vector fromVector = new Decimal256Vector("decimal", allocator, 10, scale); + final TransferPair transferPair = fromVector.getTransferPair(fromVector.getField(), allocator); + final Decimal256Vector toVector = (Decimal256Vector) transferPair.getTo(); + // Field inside a new vector created by reusing a field should be the same in memory as the original field. + assertSame(fromVector.getField(), toVector.getField()); + } + private void verifyWritingArrowBufWithBigEndianBytes(Decimal256Vector decimalVector, ArrowBuf buf, BigDecimal[] expectedValues, int length) { diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestDecimalVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestDecimalVector.java index c7e3e436e40..ba25cbe8b52 100644 --- a/java/vector/src/test/java/org/apache/arrow/vector/TestDecimalVector.java +++ b/java/vector/src/test/java/org/apache/arrow/vector/TestDecimalVector.java @@ -18,6 +18,7 @@ package org.apache.arrow.vector; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -27,6 +28,7 @@ import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.util.TransferPair; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -345,6 +347,15 @@ public void setUsingArrowBufOfBEBytes() { } } + @Test + public void testGetTransferPairWithField() { + final DecimalVector fromVector = new DecimalVector("decimal", allocator, 10, scale); + final TransferPair transferPair = fromVector.getTransferPair(fromVector.getField(), allocator); + final DecimalVector toVector = (DecimalVector) transferPair.getTo(); + // Field inside a new vector created by reusing a field should be the same in memory as the original field. + assertSame(fromVector.getField(), toVector.getField()); + } + private void verifyWritingArrowBufWithBigEndianBytes(DecimalVector decimalVector, ArrowBuf buf, BigDecimal[] expectedValues, int length) { diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestDurationVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestDurationVector.java index 8ae876f2011..c5d4d296cc0 100644 --- a/java/vector/src/test/java/org/apache/arrow/vector/TestDurationVector.java +++ b/java/vector/src/test/java/org/apache/arrow/vector/TestDurationVector.java @@ -19,6 +19,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; import java.time.Duration; @@ -26,6 +27,7 @@ import org.apache.arrow.vector.holders.NullableDurationHolder; import org.apache.arrow.vector.types.TimeUnit; import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.util.TransferPair; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -134,4 +136,14 @@ public void testNanosBasics() { assertEquals(1000000 , holder.value); } } + + @Test + public void testGetTransferPairWithField() { + final DurationVector fromVector = TestUtils.newVector(DurationVector.class, "nanos", + new ArrowType.Duration(TimeUnit.NANOSECOND), allocator); + final TransferPair transferPair = fromVector.getTransferPair(fromVector.getField(), allocator); + final DurationVector toVector = (DurationVector) transferPair.getTo(); + // Field inside a new vector created by reusing a field should be the same in memory as the original field. + assertSame(fromVector.getField(), toVector.getField()); + } } diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestFixedSizeBinaryVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestFixedSizeBinaryVector.java index 363821e9839..67f7ce86b8a 100644 --- a/java/vector/src/test/java/org/apache/arrow/vector/TestFixedSizeBinaryVector.java +++ b/java/vector/src/test/java/org/apache/arrow/vector/TestFixedSizeBinaryVector.java @@ -24,6 +24,7 @@ import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.holders.FixedSizeBinaryHolder; import org.apache.arrow.vector.holders.NullableFixedSizeBinaryHolder; +import org.apache.arrow.vector.util.TransferPair; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -276,4 +277,13 @@ public void testGetNull() { vector.setNull(0); assertNull(vector.get(0)); } + + @Test + public void testGetTransferPairWithField() { + final FixedSizeBinaryVector fromVector = new FixedSizeBinaryVector("fixedSizeBinary", allocator, typeWidth); + final TransferPair transferPair = fromVector.getTransferPair(fromVector.getField(), allocator); + final FixedSizeBinaryVector toVector = (FixedSizeBinaryVector) transferPair.getTo(); + // Field inside a new vector created by reusing a field should be the same in memory as the original field. + assertSame(fromVector.getField(), toVector.getField()); + } } diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestIntervalYearVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestIntervalYearVector.java index 5ea48b48513..dae713df71e 100644 --- a/java/vector/src/test/java/org/apache/arrow/vector/TestIntervalYearVector.java +++ b/java/vector/src/test/java/org/apache/arrow/vector/TestIntervalYearVector.java @@ -18,8 +18,10 @@ package org.apache.arrow.vector; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertSame; import org.apache.arrow.memory.BufferAllocator; +import org.apache.arrow.vector.util.TransferPair; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -55,4 +57,13 @@ public void testGetAsStringBuilder() { } } + + @Test + public void testGetTransferPairWithField() { + final IntervalYearVector fromVector = new IntervalYearVector("", allocator); + final TransferPair transferPair = fromVector.getTransferPair(fromVector.getField(), allocator); + final IntervalYearVector toVector = (IntervalYearVector) transferPair.getTo(); + // Field inside a new vector created by reusing a field should be the same in memory as the original field. + assertSame(fromVector.getField(), toVector.getField()); + } } From ca118870cf4edb94344ec00f5908469565c32818 Mon Sep 17 00:00:00 2001 From: Ramasai Date: Fri, 3 Mar 2023 17:24:03 -0500 Subject: [PATCH 2/9] Fix javadoc to add @param annotation for BufferAllocator --- .../java/org/apache/arrow/vector/BaseFixedWidthVector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/BigIntVector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/BitVector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/DateDayVector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/DateMilliVector.java | 3 ++- .../main/java/org/apache/arrow/vector/Decimal256Vector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/DecimalVector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/DurationVector.java | 3 ++- .../java/org/apache/arrow/vector/FixedSizeBinaryVector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/Float4Vector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/Float8Vector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/IntVector.java | 3 ++- .../main/java/org/apache/arrow/vector/IntervalDayVector.java | 3 ++- .../org/apache/arrow/vector/IntervalMonthDayNanoVector.java | 3 ++- .../main/java/org/apache/arrow/vector/IntervalYearVector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/SmallIntVector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/TimeMicroVector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/TimeMilliVector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/TimeNanoVector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/TimeSecVector.java | 3 ++- .../java/org/apache/arrow/vector/TimeStampMicroTZVector.java | 3 ++- .../java/org/apache/arrow/vector/TimeStampMicroVector.java | 3 ++- .../java/org/apache/arrow/vector/TimeStampMilliTZVector.java | 3 ++- .../java/org/apache/arrow/vector/TimeStampMilliVector.java | 3 ++- .../java/org/apache/arrow/vector/TimeStampNanoTZVector.java | 3 ++- .../main/java/org/apache/arrow/vector/TimeStampNanoVector.java | 3 ++- .../java/org/apache/arrow/vector/TimeStampSecTZVector.java | 3 ++- .../main/java/org/apache/arrow/vector/TimeStampSecVector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/TinyIntVector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/UInt1Vector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/UInt2Vector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/UInt4Vector.java | 3 ++- .../src/main/java/org/apache/arrow/vector/UInt8Vector.java | 3 ++- 33 files changed, 66 insertions(+), 33 deletions(-) diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BaseFixedWidthVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BaseFixedWidthVector.java index bb697db096e..223ae9aa8cb 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BaseFixedWidthVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BaseFixedWidthVector.java @@ -582,7 +582,8 @@ public TransferPair getTransferPair(BufferAllocator allocator) { /** * Construct a transfer pair of this vector and another vector of same type. - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return TransferPair */ public abstract TransferPair getTransferPair(Field field, BufferAllocator allocator); diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java index 22140686d6b..d10aea42526 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java @@ -308,7 +308,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java index 3bfae8f7bd2..4ed9772255f 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java @@ -564,7 +564,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java index 6d5ec475437..566fc08ea4d 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java @@ -312,7 +312,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java index 8e76a5e2266..ff1fc1dc2cf 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java @@ -314,7 +314,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java index 6640aae6847..a0e4bd5893a 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java @@ -553,7 +553,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java index ae7d6dd4e83..35f1a86b4a5 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java @@ -552,7 +552,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java index aa6a71d89df..bca66998948 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java @@ -370,7 +370,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java b/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java index daefb799b82..b9bbcb24d4d 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java @@ -351,7 +351,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java index 42c7069465e..9bfe9892a9d 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java @@ -326,7 +326,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java index 2cb563cfdd0..8f82417bf55 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java @@ -327,7 +327,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java index e34b3365dad..e2c399376ef 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java @@ -312,7 +312,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java index 49dffcef135..bd5cd821966 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java @@ -397,7 +397,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java index b4ba9f501b1..b9747447355 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java @@ -406,7 +406,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java index b4e1de8d026..98fcce8a41f 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java @@ -346,7 +346,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java index 2c835804ff7..46a5c45842e 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java @@ -339,7 +339,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java index e127d63a6a8..2a6161a4b51 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java @@ -312,7 +312,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java index 4fa46057d68..4071a2d4451 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java @@ -315,7 +315,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java index 1a2a1755d23..34de1bdecaa 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java @@ -312,7 +312,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java index 00336c2e4e4..2c6030d096a 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java @@ -313,7 +313,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java index 0e50160fa4e..6450ac3bb97 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java @@ -249,7 +249,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java index 9d484d585e0..afcae6a2f48 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java @@ -236,7 +236,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java index 0f4c6691c6b..d179775bbac 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java @@ -248,7 +248,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java index b1a513f2d52..8b05337b141 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java @@ -236,7 +236,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java index ce76b0230a4..e74960aa6eb 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java @@ -251,7 +251,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java index 84362f446b3..1d86a254f7d 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java @@ -236,7 +236,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java index a1d06582aec..7602cd030d1 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java @@ -248,7 +248,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java index 024b3085129..0b0018fd7c0 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java @@ -237,7 +237,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java index 12c0d810de7..0fc007b9cfa 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java @@ -340,7 +340,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java index 0aeaea4af65..b1be4bdfd16 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java @@ -324,7 +324,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java index 57258fa1652..2acac65789b 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java @@ -301,7 +301,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java index 80f3f91add6..03fa2e682a5 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java @@ -296,7 +296,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java index 251c77727f6..68fd2dc2e19 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java @@ -291,7 +291,8 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { * Construct a TransferPair comprising of this and a target vector of * the same type. * - * @param field Field object used by the vector + * @param field Field object used by the target vector + * @param allocator allocator for the target vector * @return {@link TransferPair} */ @Override From 76219f5d276d6dc9a2346461c955d2499877167b Mon Sep 17 00:00:00 2001 From: Ramasai Date: Sun, 4 Jun 2023 19:40:04 -0400 Subject: [PATCH 3/9] GH-15187: Make reader instantiation thread safe in BaseValueVector --- .../apache/arrow/vector/BaseValueVector.java | 41 +++++++++++++++++++ .../org/apache/arrow/vector/BigIntVector.java | 19 ++------- .../org/apache/arrow/vector/BitVector.java | 22 ++-------- .../apache/arrow/vector/DateDayVector.java | 21 ++-------- .../apache/arrow/vector/DateMilliVector.java | 20 ++------- .../apache/arrow/vector/Decimal256Vector.java | 20 ++------- .../apache/arrow/vector/DecimalVector.java | 20 ++------- .../apache/arrow/vector/DurationVector.java | 18 ++------ .../arrow/vector/ExtensionTypeVector.java | 6 +++ .../arrow/vector/FixedSizeBinaryVector.java | 21 ++-------- .../org/apache/arrow/vector/Float4Vector.java | 21 ++-------- .../org/apache/arrow/vector/Float8Vector.java | 21 ++-------- .../org/apache/arrow/vector/IntVector.java | 21 ++-------- .../arrow/vector/IntervalDayVector.java | 20 ++++----- .../vector/IntervalMonthDayNanoVector.java | 16 ++------ .../arrow/vector/IntervalYearVector.java | 20 ++------- .../arrow/vector/LargeVarBinaryVector.java | 11 +---- .../arrow/vector/LargeVarCharVector.java | 10 +---- .../apache/arrow/vector/SmallIntVector.java | 21 ++-------- .../apache/arrow/vector/TimeMicroVector.java | 21 ++-------- .../apache/arrow/vector/TimeMilliVector.java | 20 ++------- .../apache/arrow/vector/TimeNanoVector.java | 21 ++-------- .../apache/arrow/vector/TimeSecVector.java | 19 ++------- .../arrow/vector/TimeStampMicroTZVector.java | 23 ++--------- .../arrow/vector/TimeStampMicroVector.java | 25 ++--------- .../arrow/vector/TimeStampMilliTZVector.java | 26 ++---------- .../arrow/vector/TimeStampMilliVector.java | 25 ++--------- .../arrow/vector/TimeStampNanoTZVector.java | 26 ++---------- .../arrow/vector/TimeStampNanoVector.java | 25 ++--------- .../arrow/vector/TimeStampSecTZVector.java | 22 +--------- .../arrow/vector/TimeStampSecVector.java | 25 ++--------- .../apache/arrow/vector/TinyIntVector.java | 21 ++-------- .../org/apache/arrow/vector/UInt1Vector.java | 14 ++----- .../org/apache/arrow/vector/UInt2Vector.java | 14 ++----- .../org/apache/arrow/vector/UInt4Vector.java | 14 ++----- .../org/apache/arrow/vector/UInt8Vector.java | 13 ++---- .../apache/arrow/vector/VarBinaryVector.java | 11 +---- .../apache/arrow/vector/VarCharVector.java | 10 +---- .../vector/complex/FixedSizeListVector.java | 10 +++-- .../arrow/vector/complex/LargeListVector.java | 9 ++-- .../arrow/vector/complex/ListVector.java | 9 ++-- .../arrow/vector/TestIntervalYearVector.java | 2 +- 42 files changed, 198 insertions(+), 576 deletions(-) diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java index 22fe4254ffd..971755f88bb 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java @@ -17,6 +17,7 @@ package org.apache.arrow.vector; +import java.lang.reflect.InvocationTargetException; import java.util.Collections; import java.util.Iterator; @@ -24,6 +25,7 @@ import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.memory.ReferenceManager; import org.apache.arrow.util.Preconditions; +import org.apache.arrow.vector.complex.reader.FieldReader; import org.apache.arrow.vector.util.DataSizeRoundingUtil; import org.apache.arrow.vector.util.TransferPair; import org.apache.arrow.vector.util.ValueVectorUtility; @@ -50,6 +52,8 @@ public abstract class BaseValueVector implements ValueVector { protected final BufferAllocator allocator; + protected volatile FieldReader fieldReader; + protected BaseValueVector(BufferAllocator allocator) { this.allocator = Preconditions.checkNotNull(allocator, "allocator cannot be null"); } @@ -143,6 +147,43 @@ long computeCombinedBufferSize(int valueCount, int typeWidth) { return allocator.getRoundingPolicy().getRoundedSize(bufferSize); } + /** + * Each vector has a different reader that implements the FieldReader interface. Overridden methods must make + * sure to return the correct type of the reader implementation to instantiate the reader properly. + * + * @return Returns the implementation class type of the vector's reader. + */ + protected abstract Class getReaderImplClass(); + + /** + * Default implementation to create a reader for the vector. Depends on the individual vector + * class' implementation of `getReaderImpl()` to initialize the reader appropriately. + * + * @return Concrete instance of FieldReader by using lazy initialization. + */ + public FieldReader getReader() { + FieldReader reader = fieldReader; + + if (reader != null) { + return reader; + } + synchronized (this) { + if (fieldReader == null) { + try { + fieldReader = + (FieldReader) Class.forName(getReaderImplClass().getName()).getConstructor(getClass()) + .newInstance(this); + } catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | + InvocationTargetException e) { + logger.error("Unable to instantiate FieldReader for {} because of: ", getClass().getSimpleName(), e); + throw new RuntimeException(e); + } + } + + return fieldReader; + } + } + /** * Container for primitive vectors (1 for the validity bit-mask and one to hold the values). */ diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java index d10aea42526..d813283298a 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.BigIntReaderImpl; @@ -39,7 +37,6 @@ */ public final class BigIntVector extends BaseFixedWidthVector implements BaseIntVector { public static final byte TYPE_WIDTH = 8; - private Supplier reader; /** * Instantiate a BigIntVector. This doesn't allocate any memory for @@ -73,21 +70,11 @@ public BigIntVector(String name, FieldType fieldType, BufferAllocator allocator) */ public BigIntVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new BigIntReaderImpl(BigIntVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return BigIntReaderImpl.class; } /** @@ -292,7 +279,7 @@ public static long get(final ArrowBuf buffer, final int index) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java index 4ed9772255f..329a39e1304 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java @@ -20,8 +20,6 @@ import static org.apache.arrow.memory.util.LargeMemoryUtil.capAtMaxInt; import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.memory.util.ArrowBufPointer; @@ -48,8 +46,6 @@ public final class BitVector extends BaseFixedWidthVector { private static final int HASH_CODE_FOR_ONE = 19; - private Supplier reader; - /** * Instantiate a BitVector. This doesn't allocate any memory for * the data in vector. @@ -82,21 +78,11 @@ public BitVector(String name, FieldType fieldType, BufferAllocator allocator) { */ public BitVector(Field field, BufferAllocator allocator) { super(field, allocator, 0); - reader = () -> { - final FieldReader fieldReader = new BitReaderImpl(BitVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return BitReaderImpl.class; } /** @@ -548,7 +534,7 @@ public void setRangeToOne(int firstBitIndex, int count) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -561,7 +547,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java index 566fc08ea4d..fa67f2d5a2d 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.DateDayReaderImpl; @@ -40,7 +38,6 @@ public final class DateDayVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 4; - private Supplier reader; /** * Instantiate a DateDayVector. This doesn't allocate any memory for @@ -74,21 +71,11 @@ public DateDayVector(String name, FieldType fieldType, BufferAllocator allocator */ public DateDayVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new DateDayReaderImpl(DateDayVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return DateDayReaderImpl.class; } /** @@ -296,7 +283,7 @@ public static int get(final ArrowBuf buffer, final int index) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -309,7 +296,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java index ff1fc1dc2cf..eb5d3c08067 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -41,7 +40,6 @@ */ public final class DateMilliVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 8; - private Supplier reader; /** * Instantiate a DateMilliVector. This doesn't allocate any memory for @@ -75,21 +73,11 @@ public DateMilliVector(String name, FieldType fieldType, BufferAllocator allocat */ public DateMilliVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new DateMilliReaderImpl(DateMilliVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return DateMilliReaderImpl.class; } /** @@ -298,7 +286,7 @@ public static long get(final ArrowBuf buffer, final int index) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -311,7 +299,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java index a0e4bd5893a..c254427b841 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java @@ -21,7 +21,6 @@ import java.math.BigDecimal; import java.nio.ByteOrder; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -47,7 +46,6 @@ public final class Decimal256Vector extends BaseFixedWidthVector { public static final int MAX_PRECISION = 76; public static final byte TYPE_WIDTH = 32; private static final boolean LITTLE_ENDIAN = ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN; - private Supplier reader; private final int precision; private final int scale; @@ -86,23 +84,13 @@ public Decimal256Vector(String name, FieldType fieldType, BufferAllocator alloca public Decimal256Vector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); ArrowType.Decimal arrowType = (ArrowType.Decimal) field.getFieldType().getType(); - reader = () -> { - final FieldReader fieldReader = new Decimal256ReaderImpl(Decimal256Vector.this); - reader = () -> fieldReader; - return fieldReader; - }; this.precision = arrowType.getPrecision(); this.scale = arrowType.getScale(); } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return Decimal256ReaderImpl.class; } /** @@ -537,7 +525,7 @@ public void setSafe(int index, int isSet, long start, ArrowBuf buffer) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -550,7 +538,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java index 35f1a86b4a5..e18bf1a05f5 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java @@ -21,7 +21,6 @@ import java.math.BigDecimal; import java.nio.ByteOrder; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -46,7 +45,6 @@ public final class DecimalVector extends BaseFixedWidthVector { public static final int MAX_PRECISION = 38; public static final byte TYPE_WIDTH = 16; private static final boolean LITTLE_ENDIAN = ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN; - private Supplier reader; private final int precision; private final int scale; @@ -85,23 +83,13 @@ public DecimalVector(String name, FieldType fieldType, BufferAllocator allocator public DecimalVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); ArrowType.Decimal arrowType = (ArrowType.Decimal) field.getFieldType().getType(); - reader = () -> { - final FieldReader fieldReader = new DecimalReaderImpl(DecimalVector.this); - reader = () -> fieldReader; - return fieldReader; - }; this.precision = arrowType.getPrecision(); this.scale = arrowType.getScale(); } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return DecimalReaderImpl.class; } /** @@ -536,7 +524,7 @@ public void setSafe(int index, int isSet, long start, ArrowBuf buffer) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -549,7 +537,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java index 69212ef0297..18497d0e7f2 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java @@ -21,7 +21,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.Duration; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -44,7 +43,6 @@ */ public final class DurationVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 8; - private Supplier reader; private final TimeUnit unit; @@ -69,22 +67,12 @@ public DurationVector(String name, FieldType fieldType, BufferAllocator allocato */ public DurationVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new DurationReaderImpl(DurationVector.this); - reader = () -> fieldReader; - return fieldReader; - }; this.unit = ((ArrowType.Duration) field.getFieldType().getType()).getUnit(); } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return DurationReaderImpl.class; } /** @@ -375,7 +363,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/ExtensionTypeVector.java b/java/vector/src/main/java/org/apache/arrow/vector/ExtensionTypeVector.java index ee5b700f505..b54ce117ba5 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/ExtensionTypeVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/ExtensionTypeVector.java @@ -130,6 +130,12 @@ public TransferPair makeTransferPair(ValueVector target) { return underlyingVector.makeTransferPair(target); } + @Override + protected Class getReaderImplClass() { + throw new UnsupportedOperationException("Readers for extension types depend on the underlying vector, " + + "asking for a concrete implementation class of the reader type is invalid."); + } + @Override public FieldReader getReader() { return underlyingVector.getReader(); diff --git a/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java b/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java index 2c3b17889ad..b1a0d916459 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.util.Preconditions; @@ -41,7 +39,6 @@ */ public class FixedSizeBinaryVector extends BaseFixedWidthVector { private final int byteWidth; - private Supplier reader; /** * Instantiate a FixedSizeBinaryVector. This doesn't allocate any memory for @@ -76,22 +73,12 @@ public FixedSizeBinaryVector(String name, FieldType fieldType, BufferAllocator a */ public FixedSizeBinaryVector(Field field, BufferAllocator allocator) { super(field, allocator, ((FixedSizeBinary) field.getFieldType().getType()).getByteWidth()); - reader = () -> { - final FieldReader fieldReader = new FixedSizeBinaryReaderImpl(FixedSizeBinaryVector.this); - reader = () -> fieldReader; - return fieldReader; - }; byteWidth = ((FixedSizeBinary) field.getFieldType().getType()).getByteWidth(); } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return FixedSizeBinaryReaderImpl.class; } /** @@ -341,7 +328,7 @@ public static byte[] get(final ArrowBuf buffer, final int index, final int byteW /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -354,7 +341,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java index 9bfe9892a9d..fc1883dd825 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.Float4ReaderImpl; @@ -39,7 +37,6 @@ */ public final class Float4Vector extends BaseFixedWidthVector implements FloatingPointVector { public static final byte TYPE_WIDTH = 4; - private Supplier reader; /** * Instantiate a Float4Vector. This doesn't allocate any memory for @@ -73,21 +70,11 @@ public Float4Vector(String name, FieldType fieldType, BufferAllocator allocator) */ public Float4Vector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new Float4ReaderImpl(Float4Vector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return Float4ReaderImpl.class; } /** @@ -310,7 +297,7 @@ public double getValueAsDouble(int index) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -323,7 +310,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java index 8f82417bf55..b8750558d43 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.Float8ReaderImpl; @@ -39,7 +37,6 @@ */ public final class Float8Vector extends BaseFixedWidthVector implements FloatingPointVector { public static final byte TYPE_WIDTH = 8; - private Supplier reader; /** * Instantiate a Float8Vector. This doesn't allocate any memory for @@ -73,21 +70,11 @@ public Float8Vector(String name, FieldType fieldType, BufferAllocator allocator) */ public Float8Vector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new Float8ReaderImpl(Float8Vector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return Float8ReaderImpl.class; } /** @@ -311,7 +298,7 @@ public double getValueAsDouble(int index) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -324,7 +311,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java index e2c399376ef..2e375403da1 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.IntReaderImpl; @@ -39,7 +37,6 @@ */ public final class IntVector extends BaseFixedWidthVector implements BaseIntVector { public static final byte TYPE_WIDTH = 4; - private Supplier reader; /** * Instantiate a IntVector. This doesn't allocate any memory for @@ -73,21 +70,11 @@ public IntVector(String name, FieldType fieldType, BufferAllocator allocator) { */ public IntVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new IntReaderImpl(IntVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return IntReaderImpl.class; } /** @@ -296,7 +283,7 @@ public static int get(final ArrowBuf buffer, final int index) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -309,7 +296,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java index bd5cd821966..89cca38e518 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java @@ -77,20 +77,18 @@ public IntervalDayVector(String name, FieldType fieldType, BufferAllocator alloc public IntervalDayVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); reader = () -> { - final FieldReader fieldReader = new IntervalDayReaderImpl(IntervalDayVector.this); - reader = () -> fieldReader; + final FieldReader fieldReader; + synchronized (this) { + fieldReader = new IntervalDayReaderImpl(IntervalDayVector.this); + reader = () -> fieldReader; + } return fieldReader; }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return IntervalDayReaderImpl.class; } /** @@ -381,7 +379,7 @@ public void setSafe(int index, int isSet, int days, int milliseconds) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -394,7 +392,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java index 8da8ec67ca2..b2f2c78ed40 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java @@ -82,21 +82,11 @@ public IntervalMonthDayNanoVector(String name, FieldType fieldType, BufferAlloca */ public IntervalMonthDayNanoVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new IntervalMonthDayNanoReaderImpl(IntervalMonthDayNanoVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return IntervalMonthDayNanoReaderImpl.class; } /** @@ -390,7 +380,7 @@ public void setSafe(int index, int isSet, int months, int days, /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java index 98fcce8a41f..571590be71f 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.Period; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -40,7 +39,6 @@ */ public final class IntervalYearVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 4; - private Supplier reader; /** * Instantiate a IntervalYearVector. This doesn't allocate any memory for @@ -74,21 +72,11 @@ public IntervalYearVector(String name, FieldType fieldType, BufferAllocator allo */ public IntervalYearVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new IntervalYearReaderImpl(IntervalYearVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return IntervalYearReaderImpl.class; } /** @@ -330,7 +318,7 @@ public void setSafe(int index, int isSet, int value) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -343,7 +331,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/LargeVarBinaryVector.java b/java/vector/src/main/java/org/apache/arrow/vector/LargeVarBinaryVector.java index e9d60b38e7a..fdc49dae0f3 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/LargeVarBinaryVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/LargeVarBinaryVector.java @@ -34,7 +34,6 @@ * The size of the underlying buffer can be over 2GB. */ public final class LargeVarBinaryVector extends BaseLargeVariableWidthVector { - private final FieldReader reader; /** * Instantiate a LargeVarBinaryVector. This doesn't allocate any memory for @@ -68,17 +67,11 @@ public LargeVarBinaryVector(String name, FieldType fieldType, BufferAllocator al */ public LargeVarBinaryVector(Field field, BufferAllocator allocator) { super(field, allocator); - reader = new LargeVarBinaryReaderImpl(LargeVarBinaryVector.this); } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader; + protected Class getReaderImplClass() { + return LargeVarBinaryReaderImpl.class; } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/LargeVarCharVector.java b/java/vector/src/main/java/org/apache/arrow/vector/LargeVarCharVector.java index fd205726011..a4b7a3cf649 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/LargeVarCharVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/LargeVarCharVector.java @@ -37,7 +37,6 @@ *

*/ public final class LargeVarCharVector extends BaseLargeVariableWidthVector { - private final FieldReader reader; /** * Instantiate a LargeVarCharVector. This doesn't allocate any memory for @@ -69,16 +68,11 @@ public LargeVarCharVector(String name, FieldType fieldType, BufferAllocator allo */ public LargeVarCharVector(Field field, BufferAllocator allocator) { super(field, allocator); - reader = new LargeVarCharReaderImpl(LargeVarCharVector.this); } - /** - * Get a reader that supports reading values from this vector. - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader; + protected Class getReaderImplClass() { + return LargeVarCharReaderImpl.class; } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java index 46a5c45842e..438c1b03eb6 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.SmallIntReaderImpl; @@ -39,7 +37,6 @@ */ public final class SmallIntVector extends BaseFixedWidthVector implements BaseIntVector { public static final byte TYPE_WIDTH = 2; - private Supplier reader; /** * Instantiate a SmallIntVector. This doesn't allocate any memory for @@ -73,21 +70,11 @@ public SmallIntVector(String name, FieldType fieldType, BufferAllocator allocato */ public SmallIntVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new SmallIntReaderImpl(SmallIntVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return SmallIntReaderImpl.class; } /** @@ -323,7 +310,7 @@ public static short get(final ArrowBuf buffer, final int index) { *----------------------------------------------------------------*/ /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -336,7 +323,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java index 2a6161a4b51..55510911513 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeMicroReaderImpl; @@ -40,7 +38,6 @@ */ public final class TimeMicroVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 8; - private Supplier reader; /** * Instantiate a TimeMicroVector. This doesn't allocate any memory for @@ -74,21 +71,11 @@ public TimeMicroVector(String name, FieldType fieldType, BufferAllocator allocat */ public TimeMicroVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new TimeMicroReaderImpl(TimeMicroVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return TimeMicroReaderImpl.class; } /** @@ -296,7 +283,7 @@ public static long get(final ArrowBuf buffer, int index) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -309,7 +296,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java index 4071a2d4451..25cd644a84c 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -41,7 +40,6 @@ */ public final class TimeMilliVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 4; - private Supplier reader; /** * Instantiate a TimeMilliVector. This doesn't allocate any memory for @@ -75,21 +73,11 @@ public TimeMilliVector(String name, FieldType fieldType, BufferAllocator allocat */ public TimeMilliVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new TimeMilliReaderImpl(TimeMilliVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return TimeMilliReaderImpl.class; } /** @@ -299,7 +287,7 @@ public static int get(final ArrowBuf buffer, final int index) { *----------------------------------------------------------------*/ /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -312,7 +300,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java index 34de1bdecaa..7466fa72255 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeNanoReaderImpl; @@ -39,7 +37,6 @@ */ public final class TimeNanoVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 8; - private Supplier reader; /** * Instantiate a TimeNanoVector. This doesn't allocate any memory for @@ -73,21 +70,11 @@ public TimeNanoVector(String name, FieldType fieldType, BufferAllocator allocato */ public TimeNanoVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new TimeNanoReaderImpl(TimeNanoVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return TimeNanoReaderImpl.class; } /** @@ -296,7 +283,7 @@ public static long get(final ArrowBuf buffer, final int index) { *----------------------------------------------------------------*/ /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -309,7 +296,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java index 2c6030d096a..910824b8eb5 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeSecReaderImpl; @@ -39,7 +37,6 @@ */ public final class TimeSecVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 4; - private Supplier reader; /** * Instantiate a TimeSecVector. This doesn't allocate any memory for @@ -73,21 +70,11 @@ public TimeSecVector(String name, FieldType fieldType, BufferAllocator allocator */ public TimeSecVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new TimeSecReaderImpl(TimeSecVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return TimeSecReaderImpl.class; } /** @@ -297,7 +284,7 @@ public static int get(final ArrowBuf buffer, final int index) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java index ea81f905c02..64ed0a1a45b 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java @@ -65,11 +65,6 @@ public TimeStampMicroTZVector(String name, FieldType fieldType, BufferAllocator super(name, fieldType, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) fieldType.getType(); timeZone = arrowType.getTimezone(); - reader = () -> { - final FieldReader fieldReader = new TimeStampMicroTZReaderImpl(TimeStampMicroTZVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } /** @@ -83,21 +78,11 @@ public TimeStampMicroTZVector(Field field, BufferAllocator allocator) { super(field, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) field.getFieldType().getType(); timeZone = arrowType.getTimezone(); - reader = () -> { - final FieldReader fieldReader = new TimeStampMicroTZReaderImpl(TimeStampMicroTZVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return TimeStampMicroTZReaderImpl.class; } /** @@ -239,7 +224,7 @@ public void setSafe(int index, TimeStampMicroTZHolder holder) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -254,7 +239,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java index afcae6a2f48..9f72a59e956 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; -import java.util.function.Supplier; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampMicroReaderImpl; @@ -39,7 +38,6 @@ * (bit vector) is maintained to track which elements in the vector are null. */ public final class TimeStampMicroVector extends TimeStampVector { - private Supplier reader; /** * Instantiate a TimeStampMicroVector. This doesn't allocate any memory for @@ -62,11 +60,6 @@ public TimeStampMicroVector(String name, BufferAllocator allocator) { */ public TimeStampMicroVector(String name, FieldType fieldType, BufferAllocator allocator) { super(name, fieldType, allocator); - reader = () -> { - final FieldReader fieldReader = new TimeStampMicroReaderImpl(TimeStampMicroVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } /** @@ -78,21 +71,11 @@ public TimeStampMicroVector(String name, FieldType fieldType, BufferAllocator al */ public TimeStampMicroVector(Field field, BufferAllocator allocator) { super(field, allocator); - reader = () -> { - final FieldReader fieldReader = new TimeStampMicroReaderImpl(TimeStampMicroVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return TimeStampMicroReaderImpl.class; } /** @@ -218,7 +201,7 @@ public void setSafe(int index, TimeStampMicroHolder holder) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -233,7 +216,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java index 73ad7f14fda..da8dbd56645 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampMilliTZReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -39,7 +37,6 @@ * (bit vector) is maintained to track which elements in the vector are null. */ public final class TimeStampMilliTZVector extends TimeStampVector { - private Supplier reader; private final String timeZone; /** @@ -65,11 +62,6 @@ public TimeStampMilliTZVector(String name, FieldType fieldType, BufferAllocator super(name, fieldType, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) fieldType.getType(); timeZone = arrowType.getTimezone(); - reader = () -> { - final FieldReader fieldReader = new TimeStampMilliTZReaderImpl(TimeStampMilliTZVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } /** @@ -83,21 +75,11 @@ public TimeStampMilliTZVector(Field field, BufferAllocator allocator) { super(field, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) field.getFieldType().getType(); timeZone = arrowType.getTimezone(); - reader = () -> { - final FieldReader fieldReader = new TimeStampMilliTZReaderImpl(TimeStampMilliTZVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return TimeStampMilliTZReaderImpl.class; } /** @@ -238,7 +220,7 @@ public void setSafe(int index, TimeStampMilliTZHolder holder) { *----------------------------------------------------------------*/ /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -253,7 +235,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java index 8b05337b141..8662b67f405 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; -import java.util.function.Supplier; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampMilliReaderImpl; @@ -39,7 +38,6 @@ * (bit vector) is maintained to track which elements in the vector are null. */ public final class TimeStampMilliVector extends TimeStampVector { - private Supplier reader; /** * Instantiate a TimeStampMilliVector. This doesn't allocate any memory for @@ -62,11 +60,6 @@ public TimeStampMilliVector(String name, BufferAllocator allocator) { */ public TimeStampMilliVector(String name, FieldType fieldType, BufferAllocator allocator) { super(name, fieldType, allocator); - reader = () -> { - final FieldReader fieldReader = new TimeStampMilliReaderImpl(TimeStampMilliVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } /** @@ -78,21 +71,11 @@ public TimeStampMilliVector(String name, FieldType fieldType, BufferAllocator al */ public TimeStampMilliVector(Field field, BufferAllocator allocator) { super(field, allocator); - reader = () -> { - final FieldReader fieldReader = new TimeStampMilliReaderImpl(TimeStampMilliVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return TimeStampMilliReaderImpl.class; } /** @@ -218,7 +201,7 @@ public void setSafe(int index, TimeStampMilliHolder holder) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -233,7 +216,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java index d4495c4c471..e8e3da9da02 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampNanoTZReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -39,7 +37,6 @@ * (bit vector) is maintained to track which elements in the vector are null. */ public final class TimeStampNanoTZVector extends TimeStampVector { - private Supplier reader; private final String timeZone; /** @@ -65,11 +62,6 @@ public TimeStampNanoTZVector(String name, FieldType fieldType, BufferAllocator a super(name, fieldType, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) fieldType.getType(); timeZone = arrowType.getTimezone(); - reader = () -> { - final FieldReader fieldReader = new TimeStampNanoTZReaderImpl(TimeStampNanoTZVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } /** @@ -83,21 +75,11 @@ public TimeStampNanoTZVector(Field field, BufferAllocator allocator) { super(field, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) field.getFieldType().getType(); timeZone = arrowType.getTimezone(); - reader = () -> { - final FieldReader fieldReader = new TimeStampNanoTZReaderImpl(TimeStampNanoTZVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return TimeStampNanoTZReaderImpl.class; } /** @@ -241,7 +223,7 @@ public void setSafe(int index, TimeStampNanoTZHolder holder) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -256,7 +238,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java index 1d86a254f7d..7da1c0920d0 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; -import java.util.function.Supplier; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampNanoReaderImpl; @@ -39,7 +38,6 @@ * (bit vector) is maintained to track which elements in the vector are null. */ public final class TimeStampNanoVector extends TimeStampVector { - private Supplier reader; /** * Instantiate a TimeStampNanoVector. This doesn't allocate any memory for @@ -62,11 +60,6 @@ public TimeStampNanoVector(String name, BufferAllocator allocator) { */ public TimeStampNanoVector(String name, FieldType fieldType, BufferAllocator allocator) { super(name, fieldType, allocator); - reader = () -> { - final FieldReader fieldReader = new TimeStampNanoReaderImpl(TimeStampNanoVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } /** @@ -78,21 +71,11 @@ public TimeStampNanoVector(String name, FieldType fieldType, BufferAllocator all */ public TimeStampNanoVector(Field field, BufferAllocator allocator) { super(field, allocator); - reader = () -> { - final FieldReader fieldReader = new TimeStampNanoReaderImpl(TimeStampNanoVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return TimeStampNanoReaderImpl.class; } /** @@ -218,7 +201,7 @@ public void setSafe(int index, TimeStampNanoHolder holder) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -233,7 +216,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java index c4f2d6da8b3..7c549a83698 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampSecTZReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -39,7 +37,6 @@ * (bit vector) is maintained to track which elements in the vector are null. */ public final class TimeStampSecTZVector extends TimeStampVector { - private Supplier reader; private final String timeZone; /** @@ -65,11 +62,6 @@ public TimeStampSecTZVector(String name, FieldType fieldType, BufferAllocator al super(name, fieldType, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) fieldType.getType(); timeZone = arrowType.getTimezone(); - reader = () -> { - final FieldReader fieldReader = new TimeStampSecTZReaderImpl(TimeStampSecTZVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } /** @@ -83,21 +75,11 @@ public TimeStampSecTZVector(Field field, BufferAllocator allocator) { super(field, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) field.getFieldType().getType(); timeZone = arrowType.getTimezone(); - reader = () -> { - final FieldReader fieldReader = new TimeStampSecTZReaderImpl(TimeStampSecTZVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return TimeStampSecTZReaderImpl.class; } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java index 0b0018fd7c0..7503c80d924 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; -import java.util.function.Supplier; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampSecReaderImpl; @@ -39,7 +38,6 @@ * maintained to track which elements in the vector are null. */ public final class TimeStampSecVector extends TimeStampVector { - private Supplier reader; /** * Instantiate a TimeStampSecVector. This doesn't allocate any memory for @@ -62,11 +60,6 @@ public TimeStampSecVector(String name, BufferAllocator allocator) { */ public TimeStampSecVector(String name, FieldType fieldType, BufferAllocator allocator) { super(name, fieldType, allocator); - reader = () -> { - final FieldReader fieldReader = new TimeStampSecReaderImpl(TimeStampSecVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } /** @@ -78,21 +71,11 @@ public TimeStampSecVector(String name, FieldType fieldType, BufferAllocator allo */ public TimeStampSecVector(Field field, BufferAllocator allocator) { super(field, allocator); - reader = () -> { - final FieldReader fieldReader = new TimeStampSecReaderImpl(TimeStampSecVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return TimeStampSecReaderImpl.class; } /** @@ -219,7 +202,7 @@ public void setSafe(int index, TimeStampSecHolder holder) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -234,7 +217,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java index 0fc007b9cfa..f140bf036fa 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TinyIntReaderImpl; @@ -39,7 +37,6 @@ */ public final class TinyIntVector extends BaseFixedWidthVector implements BaseIntVector { public static final byte TYPE_WIDTH = 1; - private Supplier reader; /** * Instantiate a TinyIntVector. This doesn't allocate any memory for @@ -73,21 +70,11 @@ public TinyIntVector(String name, FieldType fieldType, BufferAllocator allocator */ public TinyIntVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new TinyIntReaderImpl(TinyIntVector.this); - reader = () -> fieldReader; - return fieldReader; - }; } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return TinyIntReaderImpl.class; } /** @@ -324,7 +311,7 @@ public static byte get(final ArrowBuf buffer, final int index) { /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param ref name of the target vector @@ -337,7 +324,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java index b1be4bdfd16..b803ba7c35b 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.UInt1ReaderImpl; @@ -50,7 +48,6 @@ public final class UInt1Vector extends BaseFixedWidthVector implements BaseIntVe public static final byte MAX_UINT1 = (byte) 0XFF; public static final byte TYPE_WIDTH = 1; - private Supplier reader; public UInt1Vector(String name, BufferAllocator allocator) { this(name, FieldType.nullable(MinorType.UINT1.getType()), allocator); @@ -67,16 +64,11 @@ public UInt1Vector(String name, FieldType fieldType, BufferAllocator allocator) */ public UInt1Vector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new UInt1ReaderImpl(UInt1Vector.this); - reader = () -> fieldReader; - return fieldReader; - }; } @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return UInt1ReaderImpl.class; } @Override @@ -321,7 +313,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java index 2acac65789b..510f1170265 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.UInt2ReaderImpl; @@ -46,7 +44,6 @@ public final class UInt2Vector extends BaseFixedWidthVector implements BaseIntVe public static final char MAX_UINT2 = (char) 0XFFFF; public static final byte TYPE_WIDTH = 2; - private Supplier reader; public UInt2Vector(String name, BufferAllocator allocator) { this(name, FieldType.nullable(MinorType.UINT2.getType()), allocator); @@ -63,16 +60,11 @@ public UInt2Vector(String name, FieldType fieldType, BufferAllocator allocator) */ public UInt2Vector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new UInt2ReaderImpl(UInt2Vector.this); - reader = () -> fieldReader; - return fieldReader; - }; } @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return UInt2ReaderImpl.class; } @Override @@ -298,7 +290,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java index 03fa2e682a5..ab067079d93 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.UInt4ReaderImpl; @@ -51,7 +49,6 @@ public final class UInt4Vector extends BaseFixedWidthVector implements BaseIntVe public static final int MAX_UINT4 = 0XFFFFFFFF; public static final byte TYPE_WIDTH = 4; - private Supplier reader; public UInt4Vector(String name, BufferAllocator allocator) { this(name, FieldType.nullable(MinorType.UINT4.getType()), allocator); @@ -68,16 +65,11 @@ public UInt4Vector(String name, FieldType fieldType, BufferAllocator allocator) */ public UInt4Vector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new UInt4ReaderImpl(UInt4Vector.this); - reader = () -> fieldReader; - return fieldReader; - }; } @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return UInt4ReaderImpl.class; } @Override @@ -293,7 +285,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java index 68fd2dc2e19..7c8ff6ee491 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.math.BigInteger; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -47,7 +46,6 @@ public final class UInt8Vector extends BaseFixedWidthVector implements BaseIntVe public static final long MAX_UINT8 = 0XFFFFFFFFFFFFFFFFL; public static final byte TYPE_WIDTH = 8; - private Supplier reader; public UInt8Vector(String name, BufferAllocator allocator) { this(name, FieldType.nullable(MinorType.UINT8.getType()), allocator); @@ -64,16 +62,11 @@ public UInt8Vector(String name, FieldType fieldType, BufferAllocator allocator) */ public UInt8Vector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader = new UInt8ReaderImpl(UInt8Vector.this); - reader = () -> fieldReader; - return fieldReader; - }; } @Override - public FieldReader getReader() { - return reader.get(); + protected Class getReaderImplClass() { + return UInt8ReaderImpl.class; } @Override @@ -288,7 +281,7 @@ public TransferPair getTransferPair(String ref, BufferAllocator allocator) { } /** - * Construct a TransferPair comprising of this and a target vector of + * Construct a TransferPair comprising this and a target vector of * the same type. * * @param field Field object used by the target vector diff --git a/java/vector/src/main/java/org/apache/arrow/vector/VarBinaryVector.java b/java/vector/src/main/java/org/apache/arrow/vector/VarBinaryVector.java index 798d30fe4a8..8728a37aa79 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/VarBinaryVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/VarBinaryVector.java @@ -35,7 +35,6 @@ * to track which elements in the vector are null. */ public final class VarBinaryVector extends BaseVariableWidthVector { - private final FieldReader reader; /** * Instantiate a VarBinaryVector. This doesn't allocate any memory for @@ -69,17 +68,11 @@ public VarBinaryVector(String name, FieldType fieldType, BufferAllocator allocat */ public VarBinaryVector(Field field, BufferAllocator allocator) { super(field, allocator); - reader = new VarBinaryReaderImpl(VarBinaryVector.this); } - /** - * Get a reader that supports reading values from this vector. - * - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader; + protected Class getReaderImplClass() { + return VarBinaryReaderImpl.class; } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/VarCharVector.java b/java/vector/src/main/java/org/apache/arrow/vector/VarCharVector.java index e725e2d2839..505ab9a7e43 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/VarCharVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/VarCharVector.java @@ -36,7 +36,6 @@ * to track which elements in the vector are null. */ public final class VarCharVector extends BaseVariableWidthVector { - private final FieldReader reader; /** * Instantiate a VarCharVector. This doesn't allocate any memory for @@ -68,16 +67,11 @@ public VarCharVector(String name, FieldType fieldType, BufferAllocator allocator */ public VarCharVector(Field field, BufferAllocator allocator) { super(field, allocator); - reader = new VarCharReaderImpl(VarCharVector.this); } - /** - * Get a reader that supports reading values from this vector. - * @return Field Reader for this vector - */ @Override - public FieldReader getReader() { - return reader; + protected Class getReaderImplClass() { + return VarCharReaderImpl.class; } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/FixedSizeListVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/FixedSizeListVector.java index 9b7f6e03060..ed900a97b45 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/complex/FixedSizeListVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/FixedSizeListVector.java @@ -48,6 +48,7 @@ import org.apache.arrow.vector.compare.VectorVisitor; import org.apache.arrow.vector.complex.impl.UnionFixedSizeListReader; import org.apache.arrow.vector.complex.impl.UnionFixedSizeListWriter; +import org.apache.arrow.vector.complex.reader.FieldReader; import org.apache.arrow.vector.ipc.message.ArrowFieldNode; import org.apache.arrow.vector.types.Types.MinorType; import org.apache.arrow.vector.types.pojo.ArrowType; @@ -181,11 +182,14 @@ public List getFieldInnerVectors() { throw new UnsupportedOperationException("There are no inner vectors. Use getFieldBuffers"); } + @Override + protected Class getReaderImplClass() { + return UnionFixedSizeListReader.class; + } + @Override public UnionFixedSizeListReader getReader() { - if (reader == null) { - reader = new UnionFixedSizeListReader(this); - } + reader = (UnionFixedSizeListReader) super.getReader(); return reader; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java index c08c2e496e3..6ab356109aa 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java @@ -695,11 +695,14 @@ public void copyValueSafe(int from, int to) { } } + @Override + protected Class getReaderImplClass() { + return UnionLargeListReader.class; + } + @Override public UnionLargeListReader getReader() { - if (reader == null) { - reader = new UnionLargeListReader(this); - } + reader = (UnionLargeListReader) super.getReader(); return reader; } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java index 0fa091fb0ce..2c9f5789c4b 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java @@ -566,11 +566,14 @@ public void copyValueSafe(int from, int to) { } } + @Override + protected Class getReaderImplClass() { + return UnionListReader.class; + } + @Override public UnionListReader getReader() { - if (reader == null) { - reader = new UnionListReader(this); - } + reader = (UnionListReader) super.getReader(); return reader; } diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestIntervalYearVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestIntervalYearVector.java index 43a32a72901..4b2ae2eb3d4 100644 --- a/java/vector/src/test/java/org/apache/arrow/vector/TestIntervalYearVector.java +++ b/java/vector/src/test/java/org/apache/arrow/vector/TestIntervalYearVector.java @@ -21,10 +21,10 @@ import static org.junit.Assert.assertSame; import org.apache.arrow.memory.BufferAllocator; -import org.apache.arrow.vector.util.TransferPair; import org.apache.arrow.vector.types.IntervalUnit; import org.apache.arrow.vector.types.Types; import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.util.TransferPair; import org.junit.After; import org.junit.Before; import org.junit.Test; From 7f73e3c616311610ef33c24b1557b431fbdf8501 Mon Sep 17 00:00:00 2001 From: Ramasai Date: Wed, 14 Jun 2023 19:49:18 -0400 Subject: [PATCH 4/9] GH-15187: Change markdown from devils tick to link --- .../src/main/java/org/apache/arrow/vector/BaseValueVector.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java index 971755f88bb..2bda9accdf2 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java @@ -157,7 +157,7 @@ long computeCombinedBufferSize(int valueCount, int typeWidth) { /** * Default implementation to create a reader for the vector. Depends on the individual vector - * class' implementation of `getReaderImpl()` to initialize the reader appropriately. + * class' implementation of {@link #getReaderImplClass} to initialize the reader appropriately. * * @return Concrete instance of FieldReader by using lazy initialization. */ From fe52705393e1c9b4934189640b75b653d83ffa3a Mon Sep 17 00:00:00 2001 From: Ramasai Date: Wed, 14 Jun 2023 19:56:26 -0400 Subject: [PATCH 5/9] GH-15187: Change class instantiation --- .../main/java/org/apache/arrow/vector/BaseValueVector.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java index 2bda9accdf2..80a6a481726 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java @@ -170,10 +170,8 @@ public FieldReader getReader() { synchronized (this) { if (fieldReader == null) { try { - fieldReader = - (FieldReader) Class.forName(getReaderImplClass().getName()).getConstructor(getClass()) - .newInstance(this); - } catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | + fieldReader = getReaderImplClass().getDeclaredConstructor(getClass()).newInstance(this); + } catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e) { logger.error("Unable to instantiate FieldReader for {} because of: ", getClass().getSimpleName(), e); throw new RuntimeException(e); From fa745840b679afccee4b2b73a6f0daa31331782d Mon Sep 17 00:00:00 2001 From: Ramasai Date: Thu, 15 Jun 2023 22:32:03 -0400 Subject: [PATCH 6/9] GH-15187: add new lambda to return implementation of the reader --- .../org/apache/arrow/vector/BaseValueVector.java | 14 ++++---------- .../java/org/apache/arrow/vector/BigIntVector.java | 6 ++++-- .../java/org/apache/arrow/vector/BitVector.java | 6 ++++-- .../org/apache/arrow/vector/DateDayVector.java | 6 ++++-- .../org/apache/arrow/vector/DateMilliVector.java | 5 +++-- .../org/apache/arrow/vector/Decimal256Vector.java | 5 +++-- .../org/apache/arrow/vector/DecimalVector.java | 5 +++-- .../org/apache/arrow/vector/DurationVector.java | 5 +++-- .../apache/arrow/vector/ExtensionTypeVector.java | 3 ++- .../apache/arrow/vector/FixedSizeBinaryVector.java | 6 ++++-- .../java/org/apache/arrow/vector/Float4Vector.java | 6 ++++-- .../java/org/apache/arrow/vector/Float8Vector.java | 6 ++++-- .../java/org/apache/arrow/vector/IntVector.java | 6 ++++-- .../org/apache/arrow/vector/IntervalDayVector.java | 13 ++----------- .../arrow/vector/IntervalMonthDayNanoVector.java | 5 ++--- .../apache/arrow/vector/IntervalYearVector.java | 5 +++-- .../apache/arrow/vector/LargeVarBinaryVector.java | 6 ++++-- .../apache/arrow/vector/LargeVarCharVector.java | 6 ++++-- .../org/apache/arrow/vector/SmallIntVector.java | 6 ++++-- .../org/apache/arrow/vector/TimeMicroVector.java | 6 ++++-- .../org/apache/arrow/vector/TimeMilliVector.java | 5 +++-- .../org/apache/arrow/vector/TimeNanoVector.java | 6 ++++-- .../org/apache/arrow/vector/TimeSecVector.java | 6 ++++-- .../arrow/vector/TimeStampMicroTZVector.java | 5 ++--- .../apache/arrow/vector/TimeStampMicroVector.java | 5 +++-- .../arrow/vector/TimeStampMilliTZVector.java | 6 ++++-- .../apache/arrow/vector/TimeStampMilliVector.java | 5 +++-- .../apache/arrow/vector/TimeStampNanoTZVector.java | 6 ++++-- .../apache/arrow/vector/TimeStampNanoVector.java | 5 +++-- .../apache/arrow/vector/TimeStampSecTZVector.java | 6 ++++-- .../apache/arrow/vector/TimeStampSecVector.java | 5 +++-- .../org/apache/arrow/vector/TinyIntVector.java | 6 ++++-- .../java/org/apache/arrow/vector/UInt1Vector.java | 6 ++++-- .../java/org/apache/arrow/vector/UInt2Vector.java | 6 ++++-- .../java/org/apache/arrow/vector/UInt4Vector.java | 6 ++++-- .../java/org/apache/arrow/vector/UInt8Vector.java | 5 +++-- .../org/apache/arrow/vector/VarBinaryVector.java | 6 ++++-- .../org/apache/arrow/vector/VarCharVector.java | 6 ++++-- .../arrow/vector/complex/FixedSizeListVector.java | 5 +++-- .../arrow/vector/complex/LargeListVector.java | 5 +++-- .../apache/arrow/vector/complex/ListVector.java | 5 +++-- 41 files changed, 142 insertions(+), 100 deletions(-) diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java index 80a6a481726..e9c06efe8d4 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java @@ -17,9 +17,9 @@ package org.apache.arrow.vector; -import java.lang.reflect.InvocationTargetException; import java.util.Collections; import java.util.Iterator; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -153,11 +153,11 @@ long computeCombinedBufferSize(int valueCount, int typeWidth) { * * @return Returns the implementation class type of the vector's reader. */ - protected abstract Class getReaderImplClass(); + protected abstract Supplier getReaderImpl(); /** * Default implementation to create a reader for the vector. Depends on the individual vector - * class' implementation of {@link #getReaderImplClass} to initialize the reader appropriately. + * class' implementation of {@link #getReaderImpl} to initialize the reader appropriately. * * @return Concrete instance of FieldReader by using lazy initialization. */ @@ -169,13 +169,7 @@ public FieldReader getReader() { } synchronized (this) { if (fieldReader == null) { - try { - fieldReader = getReaderImplClass().getDeclaredConstructor(getClass()).newInstance(this); - } catch (NoSuchMethodException | InstantiationException | IllegalAccessException | - InvocationTargetException e) { - logger.error("Unable to instantiate FieldReader for {} because of: ", getClass().getSimpleName(), e); - throw new RuntimeException(e); - } + fieldReader = getReaderImpl().get(); } return fieldReader; diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java index d813283298a..a487d2ac287 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.BigIntReaderImpl; @@ -73,8 +75,8 @@ public BigIntVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return BigIntReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new BigIntReaderImpl(BigIntVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java index 329a39e1304..e2de9455501 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java @@ -20,6 +20,8 @@ import static org.apache.arrow.memory.util.LargeMemoryUtil.capAtMaxInt; import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.memory.util.ArrowBufPointer; @@ -81,8 +83,8 @@ public BitVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return BitReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new BitReaderImpl(BitVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java index fa67f2d5a2d..eb01d67d871 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.DateDayReaderImpl; @@ -74,8 +76,8 @@ public DateDayVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return DateDayReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new DateDayReaderImpl(DateDayVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java index eb5d3c08067..1b61d5789f1 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -76,8 +77,8 @@ public DateMilliVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return DateMilliReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new DateMilliReaderImpl(DateMilliVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java index c254427b841..0791ba8b816 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java @@ -21,6 +21,7 @@ import java.math.BigDecimal; import java.nio.ByteOrder; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -89,8 +90,8 @@ public Decimal256Vector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return Decimal256ReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new Decimal256ReaderImpl(Decimal256Vector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java index e18bf1a05f5..09bf4b9a44d 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java @@ -21,6 +21,7 @@ import java.math.BigDecimal; import java.nio.ByteOrder; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -88,8 +89,8 @@ public DecimalVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return DecimalReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new DecimalReaderImpl(DecimalVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java index 18497d0e7f2..65c18f0f91a 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java @@ -21,6 +21,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.Duration; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -71,8 +72,8 @@ public DurationVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return DurationReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new DurationReaderImpl(DurationVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/ExtensionTypeVector.java b/java/vector/src/main/java/org/apache/arrow/vector/ExtensionTypeVector.java index b54ce117ba5..e06a77b541f 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/ExtensionTypeVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/ExtensionTypeVector.java @@ -19,6 +19,7 @@ import java.util.Iterator; import java.util.List; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -131,7 +132,7 @@ public TransferPair makeTransferPair(ValueVector target) { } @Override - protected Class getReaderImplClass() { + protected Supplier getReaderImpl() { throw new UnsupportedOperationException("Readers for extension types depend on the underlying vector, " + "asking for a concrete implementation class of the reader type is invalid."); } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java b/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java index b1a0d916459..d87ccef6871 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.util.Preconditions; @@ -77,8 +79,8 @@ public FixedSizeBinaryVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return FixedSizeBinaryReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new FixedSizeBinaryReaderImpl(FixedSizeBinaryVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java index fc1883dd825..36e5ed27418 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.Float4ReaderImpl; @@ -73,8 +75,8 @@ public Float4Vector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return Float4ReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new Float4ReaderImpl(Float4Vector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java index b8750558d43..593297da2eb 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.Float8ReaderImpl; @@ -73,8 +75,8 @@ public Float8Vector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return Float8ReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new Float8ReaderImpl(Float8Vector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java index 2e375403da1..79b4a065a02 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.IntReaderImpl; @@ -73,8 +75,8 @@ public IntVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return IntReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new IntReaderImpl(IntVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java index 89cca38e518..4730ae317d2 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java @@ -42,7 +42,6 @@ public final class IntervalDayVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 8; private static final byte MILLISECOND_OFFSET = 4; - private Supplier reader; /** * Instantiate a IntervalDayVector. This doesn't allocate any memory for @@ -76,19 +75,11 @@ public IntervalDayVector(String name, FieldType fieldType, BufferAllocator alloc */ public IntervalDayVector(Field field, BufferAllocator allocator) { super(field, allocator, TYPE_WIDTH); - reader = () -> { - final FieldReader fieldReader; - synchronized (this) { - fieldReader = new IntervalDayReaderImpl(IntervalDayVector.this); - reader = () -> fieldReader; - } - return fieldReader; - }; } @Override - protected Class getReaderImplClass() { - return IntervalDayReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new IntervalDayReaderImpl(IntervalDayVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java index b2f2c78ed40..ab17011012a 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java @@ -47,7 +47,6 @@ public final class IntervalMonthDayNanoVector extends BaseFixedWidthVector { public static final byte TYPE_WIDTH = 16; private static final byte DAY_OFFSET = 4; private static final byte NANOSECOND_OFFSET = 8; - private Supplier reader; /** @@ -85,8 +84,8 @@ public IntervalMonthDayNanoVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return IntervalMonthDayNanoReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new IntervalMonthDayNanoReaderImpl(IntervalMonthDayNanoVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java index 571590be71f..a407f59b92e 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.Period; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -75,8 +76,8 @@ public IntervalYearVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return IntervalYearReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new IntervalYearReaderImpl(IntervalYearVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/LargeVarBinaryVector.java b/java/vector/src/main/java/org/apache/arrow/vector/LargeVarBinaryVector.java index fdc49dae0f3..32a90f1d435 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/LargeVarBinaryVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/LargeVarBinaryVector.java @@ -17,6 +17,8 @@ package org.apache.arrow.vector; +import java.util.function.Supplier; + import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.LargeVarBinaryReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -70,8 +72,8 @@ public LargeVarBinaryVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return LargeVarBinaryReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new LargeVarBinaryReaderImpl(LargeVarBinaryVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/LargeVarCharVector.java b/java/vector/src/main/java/org/apache/arrow/vector/LargeVarCharVector.java index a4b7a3cf649..44c4bdf6d2e 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/LargeVarCharVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/LargeVarCharVector.java @@ -17,6 +17,8 @@ package org.apache.arrow.vector; +import java.util.function.Supplier; + import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.LargeVarCharReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -71,8 +73,8 @@ public LargeVarCharVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return LargeVarCharReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new LargeVarCharReaderImpl(LargeVarCharVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java index 438c1b03eb6..f629952fcf1 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.SmallIntReaderImpl; @@ -73,8 +75,8 @@ public SmallIntVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return SmallIntReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new SmallIntReaderImpl(SmallIntVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java index 55510911513..336c22336fb 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeMicroReaderImpl; @@ -74,8 +76,8 @@ public TimeMicroVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return TimeMicroReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new TimeMicroReaderImpl(TimeMicroVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java index 25cd644a84c..59680529641 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -76,8 +77,8 @@ public TimeMilliVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return TimeMilliReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new TimeMilliReaderImpl(TimeMilliVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java index 7466fa72255..7f510828d45 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeNanoReaderImpl; @@ -73,8 +75,8 @@ public TimeNanoVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return TimeNanoReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new TimeNanoReaderImpl(TimeNanoVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java index 910824b8eb5..e1946ec0a7f 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeSecReaderImpl; @@ -73,8 +75,8 @@ public TimeSecVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return TimeSecReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new TimeSecReaderImpl(TimeSecVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java index 64ed0a1a45b..f1357a3a171 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java @@ -39,7 +39,6 @@ * (bit vector) is maintained to track which elements in the vector are null. */ public final class TimeStampMicroTZVector extends TimeStampVector { - private Supplier reader; private final String timeZone; /** @@ -81,8 +80,8 @@ public TimeStampMicroTZVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return TimeStampMicroTZReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new TimeStampMicroTZReaderImpl(TimeStampMicroTZVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java index 9f72a59e956..eec2dfbc4ac 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; +import java.util.function.Supplier; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampMicroReaderImpl; @@ -74,8 +75,8 @@ public TimeStampMicroVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return TimeStampMicroReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new TimeStampMicroReaderImpl(TimeStampMicroVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java index da8dbd56645..abcb46ee4cd 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampMilliTZReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -78,8 +80,8 @@ public TimeStampMilliTZVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return TimeStampMilliTZReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new TimeStampMilliTZReaderImpl(TimeStampMilliTZVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java index 8662b67f405..a27fd573791 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; +import java.util.function.Supplier; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampMilliReaderImpl; @@ -74,8 +75,8 @@ public TimeStampMilliVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return TimeStampMilliReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new TimeStampMilliReaderImpl(TimeStampMilliVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java index e8e3da9da02..954e04bc5b6 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampNanoTZReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -78,8 +80,8 @@ public TimeStampNanoTZVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return TimeStampNanoTZReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new TimeStampNanoTZReaderImpl(TimeStampNanoTZVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java index 7da1c0920d0..00c0203332e 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; +import java.util.function.Supplier; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampNanoReaderImpl; @@ -74,8 +75,8 @@ public TimeStampNanoVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return TimeStampNanoReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new TimeStampNanoReaderImpl(TimeStampNanoVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java index 7c549a83698..7e9da06e387 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampSecTZReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -78,8 +80,8 @@ public TimeStampSecTZVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return TimeStampSecTZReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new TimeStampSecTZReaderImpl(TimeStampSecTZVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java index 7503c80d924..651fbcff71c 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; +import java.util.function.Supplier; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampSecReaderImpl; @@ -74,8 +75,8 @@ public TimeStampSecVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return TimeStampSecReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new TimeStampSecReaderImpl(TimeStampSecVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java index f140bf036fa..d6e4db6b8f7 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TinyIntReaderImpl; @@ -73,8 +75,8 @@ public TinyIntVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return TinyIntReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new TinyIntReaderImpl(TinyIntVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java index b803ba7c35b..e1f0dfe88b8 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.UInt1ReaderImpl; @@ -67,8 +69,8 @@ public UInt1Vector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return UInt1ReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new UInt1ReaderImpl(UInt1Vector.this); } @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java index 510f1170265..32c3317cd75 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.UInt2ReaderImpl; @@ -63,8 +65,8 @@ public UInt2Vector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return UInt2ReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new UInt2ReaderImpl(UInt2Vector.this); } @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java index ab067079d93..0658f35a82d 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.UInt4ReaderImpl; @@ -68,8 +70,8 @@ public UInt4Vector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return UInt4ReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new UInt4ReaderImpl(UInt4Vector.this); } @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java index 7c8ff6ee491..cc66032e60f 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java @@ -20,6 +20,7 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.math.BigInteger; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -65,8 +66,8 @@ public UInt8Vector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return UInt8ReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new UInt8ReaderImpl(UInt8Vector.this); } @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/VarBinaryVector.java b/java/vector/src/main/java/org/apache/arrow/vector/VarBinaryVector.java index 8728a37aa79..cf38036a618 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/VarBinaryVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/VarBinaryVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.VarBinaryReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -71,8 +73,8 @@ public VarBinaryVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return VarBinaryReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new VarBinaryReaderImpl(VarBinaryVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/VarCharVector.java b/java/vector/src/main/java/org/apache/arrow/vector/VarCharVector.java index 505ab9a7e43..72afa8c14a3 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/VarCharVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/VarCharVector.java @@ -19,6 +19,8 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; +import java.util.function.Supplier; + import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.VarCharReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -70,8 +72,8 @@ public VarCharVector(Field field, BufferAllocator allocator) { } @Override - protected Class getReaderImplClass() { - return VarCharReaderImpl.class; + protected Supplier getReaderImpl() { + return () -> new VarCharReaderImpl(VarCharVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/FixedSizeListVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/FixedSizeListVector.java index ed900a97b45..f6716ef44ef 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/complex/FixedSizeListVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/FixedSizeListVector.java @@ -29,6 +29,7 @@ import java.util.Iterator; import java.util.List; import java.util.Objects; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -183,8 +184,8 @@ public List getFieldInnerVectors() { } @Override - protected Class getReaderImplClass() { - return UnionFixedSizeListReader.class; + protected Supplier getReaderImpl() { + return () -> new UnionFixedSizeListReader(this); } @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java index 6ab356109aa..af4af2d2d04 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java @@ -27,6 +27,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -696,8 +697,8 @@ public void copyValueSafe(int from, int to) { } @Override - protected Class getReaderImplClass() { - return UnionLargeListReader.class; + protected Supplier getReaderImpl() { + return () -> new UnionLargeListReader(this); } @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java index 2c9f5789c4b..386fc12df88 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java @@ -27,6 +27,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -567,8 +568,8 @@ public void copyValueSafe(int from, int to) { } @Override - protected Class getReaderImplClass() { - return UnionListReader.class; + protected Supplier getReaderImpl() { + return () -> new UnionListReader(this); } @Override From 24deeeb52a150f5bd462c3aa9e06664b71ec1116 Mon Sep 17 00:00:00 2001 From: Ramasai Date: Thu, 15 Jun 2023 22:34:56 -0400 Subject: [PATCH 7/9] GH-15187: Fix comments --- .../main/java/org/apache/arrow/vector/BaseValueVector.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java index e9c06efe8d4..6896a663b5b 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java @@ -149,9 +149,9 @@ long computeCombinedBufferSize(int valueCount, int typeWidth) { /** * Each vector has a different reader that implements the FieldReader interface. Overridden methods must make - * sure to return the correct type of the reader implementation to instantiate the reader properly. + * sure to return the correct concrete reader implementation. * - * @return Returns the implementation class type of the vector's reader. + * @return Returns a lambda that initializes a reader when called. */ protected abstract Supplier getReaderImpl(); @@ -159,7 +159,7 @@ long computeCombinedBufferSize(int valueCount, int typeWidth) { * Default implementation to create a reader for the vector. Depends on the individual vector * class' implementation of {@link #getReaderImpl} to initialize the reader appropriately. * - * @return Concrete instance of FieldReader by using lazy initialization. + * @return Concrete instance of FieldReader by using double-checked locking. */ public FieldReader getReader() { FieldReader reader = fieldReader; From 94fe92d14ba92409e1f8ac286fb9c237c43741f8 Mon Sep 17 00:00:00 2001 From: Ramasai Date: Sat, 17 Jun 2023 15:17:28 -0400 Subject: [PATCH 8/9] GH-15187: Move supplier and just return new instance of FieldReader type when asked for impl --- .../java/org/apache/arrow/vector/BaseValueVector.java | 4 ++-- .../main/java/org/apache/arrow/vector/BigIntVector.java | 6 ++---- .../src/main/java/org/apache/arrow/vector/BitVector.java | 6 ++---- .../main/java/org/apache/arrow/vector/DateDayVector.java | 6 ++---- .../java/org/apache/arrow/vector/DateMilliVector.java | 5 ++--- .../java/org/apache/arrow/vector/Decimal256Vector.java | 5 ++--- .../main/java/org/apache/arrow/vector/DecimalVector.java | 5 ++--- .../java/org/apache/arrow/vector/DurationVector.java | 5 ++--- .../org/apache/arrow/vector/ExtensionTypeVector.java | 9 +-------- .../org/apache/arrow/vector/FixedSizeBinaryVector.java | 6 ++---- .../main/java/org/apache/arrow/vector/Float4Vector.java | 6 ++---- .../main/java/org/apache/arrow/vector/Float8Vector.java | 6 ++---- .../src/main/java/org/apache/arrow/vector/IntVector.java | 6 ++---- .../java/org/apache/arrow/vector/IntervalDayVector.java | 5 ++--- .../apache/arrow/vector/IntervalMonthDayNanoVector.java | 5 ++--- .../java/org/apache/arrow/vector/IntervalYearVector.java | 5 ++--- .../org/apache/arrow/vector/LargeVarBinaryVector.java | 6 ++---- .../java/org/apache/arrow/vector/LargeVarCharVector.java | 6 ++---- .../java/org/apache/arrow/vector/SmallIntVector.java | 6 ++---- .../java/org/apache/arrow/vector/TimeMicroVector.java | 6 ++---- .../java/org/apache/arrow/vector/TimeMilliVector.java | 5 ++--- .../java/org/apache/arrow/vector/TimeNanoVector.java | 6 ++---- .../main/java/org/apache/arrow/vector/TimeSecVector.java | 6 ++---- .../org/apache/arrow/vector/TimeStampMicroTZVector.java | 6 ++---- .../org/apache/arrow/vector/TimeStampMicroVector.java | 5 ++--- .../org/apache/arrow/vector/TimeStampMilliTZVector.java | 6 ++---- .../org/apache/arrow/vector/TimeStampMilliVector.java | 5 ++--- .../org/apache/arrow/vector/TimeStampNanoTZVector.java | 6 ++---- .../org/apache/arrow/vector/TimeStampNanoVector.java | 5 ++--- .../org/apache/arrow/vector/TimeStampSecTZVector.java | 6 ++---- .../java/org/apache/arrow/vector/TimeStampSecVector.java | 5 ++--- .../main/java/org/apache/arrow/vector/TinyIntVector.java | 4 ++-- .../main/java/org/apache/arrow/vector/UInt1Vector.java | 6 ++---- .../main/java/org/apache/arrow/vector/UInt2Vector.java | 6 ++---- .../main/java/org/apache/arrow/vector/UInt4Vector.java | 6 ++---- .../main/java/org/apache/arrow/vector/UInt8Vector.java | 5 ++--- .../java/org/apache/arrow/vector/VarBinaryVector.java | 6 ++---- .../main/java/org/apache/arrow/vector/VarCharVector.java | 6 ++---- .../apache/arrow/vector/complex/FixedSizeListVector.java | 5 ++--- .../org/apache/arrow/vector/complex/LargeListVector.java | 5 ++--- .../java/org/apache/arrow/vector/complex/ListVector.java | 5 ++--- 41 files changed, 81 insertions(+), 148 deletions(-) diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java index 6896a663b5b..44830c67304 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java @@ -153,7 +153,7 @@ long computeCombinedBufferSize(int valueCount, int typeWidth) { * * @return Returns a lambda that initializes a reader when called. */ - protected abstract Supplier getReaderImpl(); + protected abstract FieldReader getReaderImpl(); /** * Default implementation to create a reader for the vector. Depends on the individual vector @@ -169,7 +169,7 @@ public FieldReader getReader() { } synchronized (this) { if (fieldReader == null) { - fieldReader = getReaderImpl().get(); + fieldReader = getReaderImpl(); } return fieldReader; diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java index a487d2ac287..b0052e7e330 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.BigIntReaderImpl; @@ -75,8 +73,8 @@ public BigIntVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new BigIntReaderImpl(BigIntVector.this); + protected FieldReader getReaderImpl() { + return new BigIntReaderImpl(BigIntVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java index e2de9455501..104819147b1 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java @@ -20,8 +20,6 @@ import static org.apache.arrow.memory.util.LargeMemoryUtil.capAtMaxInt; import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.memory.util.ArrowBufPointer; @@ -83,8 +81,8 @@ public BitVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new BitReaderImpl(BitVector.this); + protected FieldReader getReaderImpl() { + return new BitReaderImpl(BitVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java index eb01d67d871..c99c5786058 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.DateDayReaderImpl; @@ -76,8 +74,8 @@ public DateDayVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new DateDayReaderImpl(DateDayVector.this); + protected FieldReader getReaderImpl() { + return new DateDayReaderImpl(DateDayVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java index 1b61d5789f1..6ab8ac4eed2 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -77,8 +76,8 @@ public DateMilliVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new DateMilliReaderImpl(DateMilliVector.this); + protected FieldReader getReaderImpl() { + return new DateMilliReaderImpl(DateMilliVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java index 0791ba8b816..4ccee50d680 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java @@ -21,7 +21,6 @@ import java.math.BigDecimal; import java.nio.ByteOrder; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -90,8 +89,8 @@ public Decimal256Vector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new Decimal256ReaderImpl(Decimal256Vector.this); + protected FieldReader getReaderImpl() { + return new Decimal256ReaderImpl(Decimal256Vector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java index 09bf4b9a44d..db04563df24 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java @@ -21,7 +21,6 @@ import java.math.BigDecimal; import java.nio.ByteOrder; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -89,8 +88,8 @@ public DecimalVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new DecimalReaderImpl(DecimalVector.this); + protected FieldReader getReaderImpl() { + return new DecimalReaderImpl(DecimalVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java index 65c18f0f91a..1e1db0d1c3c 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java @@ -21,7 +21,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.Duration; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -72,8 +71,8 @@ public DurationVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new DurationReaderImpl(DurationVector.this); + protected FieldReader getReaderImpl() { + return new DurationReaderImpl(DurationVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/ExtensionTypeVector.java b/java/vector/src/main/java/org/apache/arrow/vector/ExtensionTypeVector.java index e06a77b541f..9433719c5b8 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/ExtensionTypeVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/ExtensionTypeVector.java @@ -19,7 +19,6 @@ import java.util.Iterator; import java.util.List; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -132,13 +131,7 @@ public TransferPair makeTransferPair(ValueVector target) { } @Override - protected Supplier getReaderImpl() { - throw new UnsupportedOperationException("Readers for extension types depend on the underlying vector, " + - "asking for a concrete implementation class of the reader type is invalid."); - } - - @Override - public FieldReader getReader() { + protected FieldReader getReaderImpl() { return underlyingVector.getReader(); } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java b/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java index d87ccef6871..3ce2bb77ccc 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/FixedSizeBinaryVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.util.Preconditions; @@ -79,8 +77,8 @@ public FixedSizeBinaryVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new FixedSizeBinaryReaderImpl(FixedSizeBinaryVector.this); + protected FieldReader getReaderImpl() { + return new FixedSizeBinaryReaderImpl(FixedSizeBinaryVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java index 36e5ed27418..4b56a22f2d0 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.Float4ReaderImpl; @@ -75,8 +73,8 @@ public Float4Vector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new Float4ReaderImpl(Float4Vector.this); + protected FieldReader getReaderImpl() { + return new Float4ReaderImpl(Float4Vector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java index 593297da2eb..7e4fae7087b 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.Float8ReaderImpl; @@ -75,8 +73,8 @@ public Float8Vector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new Float8ReaderImpl(Float8Vector.this); + protected FieldReader getReaderImpl() { + return new Float8ReaderImpl(Float8Vector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java index 79b4a065a02..5c8ef440e8e 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.IntReaderImpl; @@ -75,8 +73,8 @@ public IntVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new IntReaderImpl(IntVector.this); + protected FieldReader getReaderImpl() { + return new IntReaderImpl(IntVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java index 4730ae317d2..35312ba7c96 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.Duration; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -78,8 +77,8 @@ public IntervalDayVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new IntervalDayReaderImpl(IntervalDayVector.this); + protected FieldReader getReaderImpl() { + return new IntervalDayReaderImpl(IntervalDayVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java index ab17011012a..73bbc0a2c19 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java @@ -21,7 +21,6 @@ import java.time.Duration; import java.time.Period; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -84,8 +83,8 @@ public IntervalMonthDayNanoVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new IntervalMonthDayNanoReaderImpl(IntervalMonthDayNanoVector.this); + protected FieldReader getReaderImpl() { + return new IntervalMonthDayNanoReaderImpl(IntervalMonthDayNanoVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java index a407f59b92e..7fe572f3ff1 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.Period; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -76,8 +75,8 @@ public IntervalYearVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new IntervalYearReaderImpl(IntervalYearVector.this); + protected FieldReader getReaderImpl() { + return new IntervalYearReaderImpl(IntervalYearVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/LargeVarBinaryVector.java b/java/vector/src/main/java/org/apache/arrow/vector/LargeVarBinaryVector.java index 32a90f1d435..0063a61da57 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/LargeVarBinaryVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/LargeVarBinaryVector.java @@ -17,8 +17,6 @@ package org.apache.arrow.vector; -import java.util.function.Supplier; - import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.LargeVarBinaryReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -72,8 +70,8 @@ public LargeVarBinaryVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new LargeVarBinaryReaderImpl(LargeVarBinaryVector.this); + protected FieldReader getReaderImpl() { + return new LargeVarBinaryReaderImpl(LargeVarBinaryVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/LargeVarCharVector.java b/java/vector/src/main/java/org/apache/arrow/vector/LargeVarCharVector.java index 44c4bdf6d2e..1f8d9b7d3a8 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/LargeVarCharVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/LargeVarCharVector.java @@ -17,8 +17,6 @@ package org.apache.arrow.vector; -import java.util.function.Supplier; - import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.LargeVarCharReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -73,8 +71,8 @@ public LargeVarCharVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new LargeVarCharReaderImpl(LargeVarCharVector.this); + protected FieldReader getReaderImpl() { + return new LargeVarCharReaderImpl(LargeVarCharVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java index f629952fcf1..518ee707396 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.SmallIntReaderImpl; @@ -75,8 +73,8 @@ public SmallIntVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new SmallIntReaderImpl(SmallIntVector.this); + protected FieldReader getReaderImpl() { + return new SmallIntReaderImpl(SmallIntVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java index 336c22336fb..86738cd221e 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeMicroReaderImpl; @@ -76,8 +74,8 @@ public TimeMicroVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new TimeMicroReaderImpl(TimeMicroVector.this); + protected FieldReader getReaderImpl() { + return new TimeMicroReaderImpl(TimeMicroVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java index 59680529641..480add91097 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -77,8 +76,8 @@ public TimeMilliVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new TimeMilliReaderImpl(TimeMilliVector.this); + protected FieldReader getReaderImpl() { + return new TimeMilliReaderImpl(TimeMilliVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java index 7f510828d45..82609cdc446 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeNanoReaderImpl; @@ -75,8 +73,8 @@ public TimeNanoVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new TimeNanoReaderImpl(TimeNanoVector.this); + protected FieldReader getReaderImpl() { + return new TimeNanoReaderImpl(TimeNanoVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java index e1946ec0a7f..9b7614e55b6 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeSecReaderImpl; @@ -75,8 +73,8 @@ public TimeSecVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new TimeSecReaderImpl(TimeSecVector.this); + protected FieldReader getReaderImpl() { + return new TimeSecReaderImpl(TimeSecVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java index f1357a3a171..a37b444d1a3 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampMicroTZReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -80,8 +78,8 @@ public TimeStampMicroTZVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new TimeStampMicroTZReaderImpl(TimeStampMicroTZVector.this); + protected FieldReader getReaderImpl() { + return new TimeStampMicroTZReaderImpl(TimeStampMicroTZVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java index eec2dfbc4ac..88ce27a187e 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; -import java.util.function.Supplier; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampMicroReaderImpl; @@ -75,8 +74,8 @@ public TimeStampMicroVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new TimeStampMicroReaderImpl(TimeStampMicroVector.this); + protected FieldReader getReaderImpl() { + return new TimeStampMicroReaderImpl(TimeStampMicroVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java index abcb46ee4cd..775594ceea6 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampMilliTZReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -80,8 +78,8 @@ public TimeStampMilliTZVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new TimeStampMilliTZReaderImpl(TimeStampMilliTZVector.this); + protected FieldReader getReaderImpl() { + return new TimeStampMilliTZReaderImpl(TimeStampMilliTZVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java index a27fd573791..a42773269f8 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; -import java.util.function.Supplier; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampMilliReaderImpl; @@ -75,8 +74,8 @@ public TimeStampMilliVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new TimeStampMilliReaderImpl(TimeStampMilliVector.this); + protected FieldReader getReaderImpl() { + return new TimeStampMilliReaderImpl(TimeStampMilliVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java index 954e04bc5b6..af43cf6fc9b 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampNanoTZReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -80,8 +78,8 @@ public TimeStampNanoTZVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new TimeStampNanoTZReaderImpl(TimeStampNanoTZVector.this); + protected FieldReader getReaderImpl() { + return new TimeStampNanoTZReaderImpl(TimeStampNanoTZVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java index 00c0203332e..7b02b1c87d3 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; -import java.util.function.Supplier; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampNanoReaderImpl; @@ -75,8 +74,8 @@ public TimeStampNanoVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new TimeStampNanoReaderImpl(TimeStampNanoVector.this); + protected FieldReader getReaderImpl() { + return new TimeStampNanoReaderImpl(TimeStampNanoVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java index 7e9da06e387..5837e9d8515 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecTZVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampSecTZReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -80,8 +78,8 @@ public TimeStampSecTZVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new TimeStampSecTZReaderImpl(TimeStampSecTZVector.this); + protected FieldReader getReaderImpl() { + return new TimeStampSecTZReaderImpl(TimeStampSecTZVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java index 651fbcff71c..1e249140335 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.time.LocalDateTime; -import java.util.function.Supplier; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TimeStampSecReaderImpl; @@ -75,8 +74,8 @@ public TimeStampSecVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new TimeStampSecReaderImpl(TimeStampSecVector.this); + protected FieldReader getReaderImpl() { + return new TimeStampSecReaderImpl(TimeStampSecVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java index d6e4db6b8f7..ae4a32e7694 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java @@ -75,8 +75,8 @@ public TinyIntVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new TinyIntReaderImpl(TinyIntVector.this); + protected FieldReader getReaderImpl() { + return new TinyIntReaderImpl(TinyIntVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java index e1f0dfe88b8..777df3fb1ef 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.UInt1ReaderImpl; @@ -69,8 +67,8 @@ public UInt1Vector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new UInt1ReaderImpl(UInt1Vector.this); + protected FieldReader getReaderImpl() { + return new UInt1ReaderImpl(UInt1Vector.this); } @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java index 32c3317cd75..e5b95be191d 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.UInt2ReaderImpl; @@ -65,8 +63,8 @@ public UInt2Vector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new UInt2ReaderImpl(UInt2Vector.this); + protected FieldReader getReaderImpl() { + return new UInt2ReaderImpl(UInt2Vector.this); } @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java index 0658f35a82d..bda98b12005 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.UInt4ReaderImpl; @@ -70,8 +68,8 @@ public UInt4Vector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new UInt4ReaderImpl(UInt4Vector.this); + protected FieldReader getReaderImpl() { + return new UInt4ReaderImpl(UInt4Vector.this); } @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java index cc66032e60f..5e7c18902f0 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java @@ -20,7 +20,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; import java.math.BigInteger; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -66,8 +65,8 @@ public UInt8Vector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new UInt8ReaderImpl(UInt8Vector.this); + protected FieldReader getReaderImpl() { + return new UInt8ReaderImpl(UInt8Vector.this); } @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/VarBinaryVector.java b/java/vector/src/main/java/org/apache/arrow/vector/VarBinaryVector.java index cf38036a618..34e072aaa83 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/VarBinaryVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/VarBinaryVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.VarBinaryReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -73,8 +71,8 @@ public VarBinaryVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new VarBinaryReaderImpl(VarBinaryVector.this); + protected FieldReader getReaderImpl() { + return new VarBinaryReaderImpl(VarBinaryVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/VarCharVector.java b/java/vector/src/main/java/org/apache/arrow/vector/VarCharVector.java index 72afa8c14a3..bc5c68b29f3 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/VarCharVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/VarCharVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.VarCharReaderImpl; import org.apache.arrow.vector.complex.reader.FieldReader; @@ -72,8 +70,8 @@ public VarCharVector(Field field, BufferAllocator allocator) { } @Override - protected Supplier getReaderImpl() { - return () -> new VarCharReaderImpl(VarCharVector.this); + protected FieldReader getReaderImpl() { + return new VarCharReaderImpl(VarCharVector.this); } /** diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/FixedSizeListVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/FixedSizeListVector.java index f6716ef44ef..0f788291811 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/complex/FixedSizeListVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/FixedSizeListVector.java @@ -29,7 +29,6 @@ import java.util.Iterator; import java.util.List; import java.util.Objects; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -184,8 +183,8 @@ public List getFieldInnerVectors() { } @Override - protected Supplier getReaderImpl() { - return () -> new UnionFixedSizeListReader(this); + protected FieldReader getReaderImpl() { + return new UnionFixedSizeListReader(this); } @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java index af4af2d2d04..6ef5f994fc6 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java @@ -27,7 +27,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -697,8 +696,8 @@ public void copyValueSafe(int from, int to) { } @Override - protected Supplier getReaderImpl() { - return () -> new UnionLargeListReader(this); + protected FieldReader getReaderImpl() { + return new UnionLargeListReader(this); } @Override diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java index 386fc12df88..52e5307e139 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java @@ -27,7 +27,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; @@ -568,8 +567,8 @@ public void copyValueSafe(int from, int to) { } @Override - protected Supplier getReaderImpl() { - return () -> new UnionListReader(this); + protected FieldReader getReaderImpl() { + return new UnionListReader(this); } @Override From b4a0c9dc8250b3efb27a94fc1163e2a4c4f2ed0f Mon Sep 17 00:00:00 2001 From: Ramasai Date: Sat, 17 Jun 2023 15:21:09 -0400 Subject: [PATCH 9/9] GH-15187: remove unneeded Supplier imports --- .../src/main/java/org/apache/arrow/vector/BaseValueVector.java | 1 - .../src/main/java/org/apache/arrow/vector/TinyIntVector.java | 2 -- 2 files changed, 3 deletions(-) diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java index 44830c67304..679e5d06c01 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java @@ -19,7 +19,6 @@ import java.util.Collections; import java.util.Iterator; -import java.util.function.Supplier; import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java index ae4a32e7694..4c4eee1342f 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java @@ -19,8 +19,6 @@ import static org.apache.arrow.vector.NullCheckingForGet.NULL_CHECKING_ENABLED; -import java.util.function.Supplier; - import org.apache.arrow.memory.ArrowBuf; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.complex.impl.TinyIntReaderImpl;