Skip to content

Commit a80b90c

Browse files
committed
Refactor copyvaluesafe w/ extension
1 parent 8663ffc commit a80b90c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+43
-541
lines changed

vector/src/main/codegen/templates/AbstractFieldReader.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,6 @@ public void copyAsField(String name, ${name}Writer writer) {
109109

110110
</#list></#list>
111111

112-
public void copyAsValue(StructWriter writer, ExtensionTypeWriterFactory writerFactory) {
113-
fail("CopyAsValue StructWriter");
114-
}
115-
116112
public void read(ExtensionHolder holder) {
117113
fail("Extension");
118114
}
@@ -144,7 +140,13 @@ public int size() {
144140
return -1;
145141
}
146142

143+
@Override
144+
public ExtensionTypeWriterFactory getExtensionTypeWriterFactory() {
145+
throw new IllegalStateException("The current reader doesn't support reading extension type");
146+
}
147+
147148
private void fail(String name) {
148149
throw new IllegalArgumentException(String.format("You tried to read a [%s] type when you are using a field reader of type [%s].", name, this.getClass().getSimpleName()));
149150
}
151+
150152
}

vector/src/main/codegen/templates/BaseReader.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ public interface RepeatedStructReader extends StructReader{
4949
boolean next();
5050
int size();
5151
void copyAsValue(StructWriter writer);
52-
void copyAsValue(StructWriter writer, ExtensionTypeWriterFactory writerFactory);
5352
}
5453

5554
public interface ListReader extends BaseReader{
@@ -60,7 +59,6 @@ public interface RepeatedListReader extends ListReader{
6059
boolean next();
6160
int size();
6261
void copyAsValue(ListWriter writer);
63-
void copyAsValue(ListWriter writer, ExtensionTypeWriterFactory writerFactory);
6462
}
6563

6664
public interface MapReader extends BaseReader{
@@ -71,7 +69,6 @@ public interface RepeatedMapReader extends MapReader{
7169
boolean next();
7270
int size();
7371
void copyAsValue(MapWriter writer);
74-
void copyAsValue(MapWriter writer, ExtensionTypeWriterFactory writerFactory);
7572
}
7673

7774
public interface ScalarReader extends

vector/src/main/codegen/templates/ComplexCopier.java

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,10 @@ public class ComplexCopier {
4242
* @param output field to write to
4343
*/
4444
public static void copy(FieldReader input, FieldWriter output) {
45-
writeValue(input, output, null);
45+
writeValue(input, output);
4646
}
4747

48-
public static void copy(FieldReader input, FieldWriter output, ExtensionTypeWriterFactory extensionTypeWriterFactory) {
49-
writeValue(input, output, extensionTypeWriterFactory);
50-
}
51-
52-
private static void writeValue(FieldReader reader, FieldWriter writer, ExtensionTypeWriterFactory extensionTypeWriterFactory) {
48+
private static void writeValue(FieldReader reader, FieldWriter writer) {
5349
final MinorType mt = reader.getMinorType();
5450

5551
switch (mt) {
@@ -63,9 +59,9 @@ private static void writeValue(FieldReader reader, FieldWriter writer, Extension
6359
writer.startList();
6460
while (reader.next()) {
6561
FieldReader childReader = reader.reader();
66-
FieldWriter childWriter = getListWriterForReader(childReader, writer, extensionTypeWriterFactory);
62+
FieldWriter childWriter = getListWriterForReader(childReader, writer);
6763
if (childReader.isSet()) {
68-
writeValue(childReader, childWriter, extensionTypeWriterFactory);
64+
writeValue(childReader, childWriter);
6965
} else {
7066
childWriter.writeNull();
7167
}
@@ -83,8 +79,8 @@ private static void writeValue(FieldReader reader, FieldWriter writer, Extension
8379
FieldReader structReader = reader.reader();
8480
if (structReader.isSet()) {
8581
writer.startEntry();
86-
writeValue(mapReader.key(), getMapWriterForReader(mapReader.key(), writer.key()), extensionTypeWriterFactory);
87-
writeValue(mapReader.value(), getMapWriterForReader(mapReader.value(), writer.value()), extensionTypeWriterFactory);
82+
writeValue(mapReader.key(), getMapWriterForReader(mapReader.key(), writer.key()));
83+
writeValue(mapReader.value(), getMapWriterForReader(mapReader.value(), writer.value()));
8884
writer.endEntry();
8985
} else {
9086
writer.writeNull();
@@ -103,7 +99,7 @@ private static void writeValue(FieldReader reader, FieldWriter writer, Extension
10399
if (childReader.getMinorType() != Types.MinorType.NULL) {
104100
FieldWriter childWriter = getStructWriterForReader(childReader, writer, name);
105101
if (childReader.isSet()) {
106-
writeValue(childReader, childWriter, extensionTypeWriterFactory);
102+
writeValue(childReader, childWriter);
107103
} else {
108104
childWriter.writeNull();
109105
}
@@ -115,13 +111,11 @@ private static void writeValue(FieldReader reader, FieldWriter writer, Extension
115111
}
116112
break;
117113
case EXTENSIONTYPE:
118-
if (extensionTypeWriterFactory == null) {
119-
throw new IllegalArgumentException("Must provide ExtensionTypeWriterFactory");
120-
}
121114
if (reader.isSet()) {
122115
Object value = reader.readObject();
123116
if (value != null) {
124-
writer.addExtensionTypeWriterFactory(extensionTypeWriterFactory);
117+
ExtensionTypeWriterFactory writerFactory = reader.getExtensionTypeWriterFactory();
118+
writer.addExtensionTypeWriterFactory(writerFactory);
125119
writer.writeExtension(value);
126120
}
127121
} else {
@@ -189,10 +183,6 @@ private static FieldWriter getStructWriterForReader(FieldReader reader, StructWr
189183
}
190184
191185
private static FieldWriter getListWriterForReader(FieldReader reader, ListWriter writer) {
192-
return getListWriterForReader(reader, writer, null);
193-
}
194-
195-
private static FieldWriter getListWriterForReader(FieldReader reader, ListWriter writer, ExtensionTypeWriterFactory extensionTypeWriterFactory) {
196186
switch (reader.getMinorType()) {
197187
<#list vv.types as type><#list type.minor as minor><#assign name = minor.class?cap_first />
198188
<#assign fields = minor.fields!type.fields />
@@ -213,9 +203,6 @@ private static FieldWriter getListWriterForReader(FieldReader reader, ListWriter
213203
return (FieldWriter) writer.listView();
214204
case EXTENSIONTYPE:
215205
ExtensionWriter extensionWriter = writer.extension(reader.getField().getType());
216-
if (extensionTypeWriterFactory != null) {
217-
extensionWriter.addExtensionTypeWriterFactory(extensionTypeWriterFactory);
218-
}
219206
return (FieldWriter) extensionWriter;
220207
default:
221208
throw new UnsupportedOperationException(reader.getMinorType().toString());

vector/src/main/codegen/templates/DenseUnionVector.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -708,10 +708,6 @@ public void copyValueSafe(int from, int to) {
708708
this.to.copyFrom(from, to, DenseUnionVector.this);
709709
}
710710
711-
@Override
712-
public void copyValueSafe(int from, int to, ExtensionTypeWriterFactory writerFactory) {
713-
this.to.copyFrom(from, to, DenseUnionVector.this, writerFactory);
714-
}
715711
}
716712
717713
@Override

vector/src/main/codegen/templates/UnionVector.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -621,10 +621,6 @@ public void copyValueSafe(int from, int to) {
621621
this.to.copyFrom(from, to, UnionVector.this);
622622
}
623623
624-
@Override
625-
public void copyValueSafe(int from, int to, ExtensionTypeWriterFactory writerFactory) {
626-
this.to.copyFrom(from, to, UnionVector.this, writerFactory);
627-
}
628624
}
629625
630626
@Override

vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.apache.arrow.memory.BufferAllocator;
2323
import org.apache.arrow.memory.ReferenceManager;
2424
import org.apache.arrow.util.Preconditions;
25-
import org.apache.arrow.vector.complex.impl.ExtensionTypeWriterFactory;
2625
import org.apache.arrow.vector.complex.reader.FieldReader;
2726
import org.apache.arrow.vector.util.DataSizeRoundingUtil;
2827
import org.apache.arrow.vector.util.TransferPair;
@@ -261,18 +260,6 @@ public void copyFromSafe(int fromIndex, int thisIndex, ValueVector from) {
261260
throw new UnsupportedOperationException();
262261
}
263262

264-
@Override
265-
public void copyFrom(
266-
int fromIndex, int thisIndex, ValueVector from, ExtensionTypeWriterFactory writerFactory) {
267-
throw new UnsupportedOperationException();
268-
}
269-
270-
@Override
271-
public void copyFromSafe(
272-
int fromIndex, int thisIndex, ValueVector from, ExtensionTypeWriterFactory writerFactory) {
273-
throw new UnsupportedOperationException();
274-
}
275-
276263
/**
277264
* Transfer the validity buffer from `validityBuffer` to the target vector's `validityBuffer`.
278265
* Start at `startIndex` and copy `length` number of elements. If the starting index is 8 byte

vector/src/main/java/org/apache/arrow/vector/BigIntVector.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.apache.arrow.memory.ArrowBuf;
2222
import org.apache.arrow.memory.BufferAllocator;
2323
import org.apache.arrow.vector.complex.impl.BigIntReaderImpl;
24-
import org.apache.arrow.vector.complex.impl.ExtensionTypeWriterFactory;
2524
import org.apache.arrow.vector.complex.reader.FieldReader;
2625
import org.apache.arrow.vector.holders.BigIntHolder;
2726
import org.apache.arrow.vector.holders.NullableBigIntHolder;
@@ -351,11 +350,5 @@ public void splitAndTransfer(int startIndex, int length) {
351350
public void copyValueSafe(int fromIndex, int toIndex) {
352351
to.copyFromSafe(fromIndex, toIndex, BigIntVector.this);
353352
}
354-
355-
@Override
356-
public void copyValueSafe(
357-
int fromIndex, int toIndex, ExtensionTypeWriterFactory writerFactory) {
358-
copyValueSafe(fromIndex, toIndex);
359-
}
360353
}
361354
}

vector/src/main/java/org/apache/arrow/vector/BitVector.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import org.apache.arrow.memory.util.hash.ArrowBufHasher;
2626
import org.apache.arrow.util.Preconditions;
2727
import org.apache.arrow.vector.complex.impl.BitReaderImpl;
28-
import org.apache.arrow.vector.complex.impl.ExtensionTypeWriterFactory;
2928
import org.apache.arrow.vector.complex.reader.FieldReader;
3029
import org.apache.arrow.vector.holders.BitHolder;
3130
import org.apache.arrow.vector.holders.NullableBitHolder;
@@ -593,11 +592,5 @@ public void splitAndTransfer(int startIndex, int length) {
593592
public void copyValueSafe(int fromIndex, int toIndex) {
594593
to.copyFromSafe(fromIndex, toIndex, BitVector.this);
595594
}
596-
597-
@Override
598-
public void copyValueSafe(
599-
int fromIndex, int toIndex, ExtensionTypeWriterFactory writerFactory) {
600-
copyValueSafe(fromIndex, toIndex);
601-
}
602595
}
603596
}

vector/src/main/java/org/apache/arrow/vector/DateDayVector.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.apache.arrow.memory.ArrowBuf;
2222
import org.apache.arrow.memory.BufferAllocator;
2323
import org.apache.arrow.vector.complex.impl.DateDayReaderImpl;
24-
import org.apache.arrow.vector.complex.impl.ExtensionTypeWriterFactory;
2524
import org.apache.arrow.vector.complex.reader.FieldReader;
2625
import org.apache.arrow.vector.holders.DateDayHolder;
2726
import org.apache.arrow.vector.holders.NullableDateDayHolder;
@@ -337,11 +336,5 @@ public void splitAndTransfer(int startIndex, int length) {
337336
public void copyValueSafe(int fromIndex, int toIndex) {
338337
to.copyFromSafe(fromIndex, toIndex, DateDayVector.this);
339338
}
340-
341-
@Override
342-
public void copyValueSafe(
343-
int fromIndex, int toIndex, ExtensionTypeWriterFactory writerFactory) {
344-
copyValueSafe(fromIndex, toIndex);
345-
}
346339
}
347340
}

vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.apache.arrow.memory.ArrowBuf;
2323
import org.apache.arrow.memory.BufferAllocator;
2424
import org.apache.arrow.vector.complex.impl.DateMilliReaderImpl;
25-
import org.apache.arrow.vector.complex.impl.ExtensionTypeWriterFactory;
2625
import org.apache.arrow.vector.complex.reader.FieldReader;
2726
import org.apache.arrow.vector.holders.DateMilliHolder;
2827
import org.apache.arrow.vector.holders.NullableDateMilliHolder;
@@ -339,11 +338,5 @@ public void splitAndTransfer(int startIndex, int length) {
339338
public void copyValueSafe(int fromIndex, int toIndex) {
340339
to.copyFromSafe(fromIndex, toIndex, DateMilliVector.this);
341340
}
342-
343-
@Override
344-
public void copyValueSafe(
345-
int fromIndex, int toIndex, ExtensionTypeWriterFactory writerFactory) {
346-
copyValueSafe(fromIndex, toIndex);
347-
}
348341
}
349342
}

0 commit comments

Comments
 (0)