Skip to content

Commit

Permalink
feat: adding initial interfaces:
Browse files Browse the repository at this point in the history
  • Loading branch information
vibhatha committed Aug 13, 2024
1 parent ee86db5 commit 7c4ccfe
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@
import org.apache.arrow.vector.ipc.message.ArrowFieldNode;
import org.apache.arrow.vector.types.Types.MinorType;
import org.apache.arrow.vector.types.pojo.ArrowType;
import org.apache.arrow.vector.types.pojo.ArrowType.LargeListView;
import org.apache.arrow.vector.types.pojo.ArrowType.ListView;
import org.apache.arrow.vector.types.pojo.ArrowType.Union;
import org.apache.arrow.vector.types.pojo.Field;
Expand Down Expand Up @@ -729,7 +730,8 @@ private List<ArrowBuf> readIntoBuffer(
} else if (bufferType.equals(OFFSET) || bufferType.equals(SIZE)) {
if (type == MinorType.LARGELIST
|| type == MinorType.LARGEVARCHAR
|| type == MinorType.LARGEVARBINARY) {
|| type == MinorType.LARGEVARBINARY
|| type == MinorType.LARGELISTVIEW) {
reader = helper.INT8;
} else {
reader = helper.INT4;
Expand Down Expand Up @@ -890,7 +892,10 @@ private void readFromJsonIntoVector(Field field, FieldVector vector) throws IOEx
BufferType bufferType = vectorTypes.get(v);
nextFieldIs(bufferType.getName());
int innerBufferValueCount = valueCount;
if (bufferType.equals(OFFSET) && !(type instanceof Union) && !(type instanceof ListView)) {
if (bufferType.equals(OFFSET)
&& !(type instanceof Union)
&& !(type instanceof ListView)
&& !(type instanceof LargeListView)) {
/* offset buffer has 1 additional value capacity except for dense unions and ListView */
innerBufferValueCount = valueCount + 1;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@
import org.apache.arrow.vector.UInt4Vector;
import org.apache.arrow.vector.UInt8Vector;
import org.apache.arrow.vector.VectorSchemaRoot;
import org.apache.arrow.vector.complex.BaseLargeRepeatedValueViewVector;
import org.apache.arrow.vector.complex.BaseRepeatedValueViewVector;
import org.apache.arrow.vector.dictionary.Dictionary;
import org.apache.arrow.vector.dictionary.DictionaryProvider;
Expand Down Expand Up @@ -232,7 +233,8 @@ private void writeFromVectorIntoJson(Field field, FieldVector vector) throws IOE
final int bufferValueCount =
(bufferType.equals(OFFSET)
&& vector.getMinorType() != MinorType.DENSEUNION
&& vector.getMinorType() != MinorType.LISTVIEW)
&& vector.getMinorType() != MinorType.LISTVIEW
&& vector.getMinorType() != MinorType.LARGELISTVIEW)
? valueCount + 1
: valueCount;
for (int i = 0; i < bufferValueCount; i++) {
Expand Down Expand Up @@ -274,6 +276,7 @@ private void writeFromVectorIntoJson(Field field, FieldVector vector) throws IOE
} else if (bufferType.equals(OFFSET)
&& vector.getValueCount() == 0
&& (vector.getMinorType() == MinorType.LARGELIST
|| vector.getMinorType() == MinorType.LARGELISTVIEW
|| vector.getMinorType() == MinorType.LARGEVARBINARY
|| vector.getMinorType() == MinorType.LARGEVARCHAR)) {
// Empty vectors may not have allocated an offsets buffer
Expand Down Expand Up @@ -427,6 +430,10 @@ private void writeValueToGenerator(
generator.writeNumber(
buffer.getInt((long) index * BaseRepeatedValueViewVector.OFFSET_WIDTH));
break;
case LARGELISTVIEW:
generator.writeNumber(
buffer.getInt((long) index * BaseLargeRepeatedValueViewVector.OFFSET_WIDTH));
break;
case LARGELIST:
case LARGEVARBINARY:
case LARGEVARCHAR:
Expand Down Expand Up @@ -582,7 +589,12 @@ private void writeValueToGenerator(
throw new UnsupportedOperationException("minor type: " + vector.getMinorType());
}
} else if (bufferType.equals(SIZE)) {
generator.writeNumber(buffer.getInt((long) index * BaseRepeatedValueViewVector.SIZE_WIDTH));
if (vector.getMinorType() == MinorType.LISTVIEW) {
generator.writeNumber(buffer.getInt((long) index * BaseRepeatedValueViewVector.SIZE_WIDTH));
} else {
generator.writeNumber(
buffer.getInt((long) index * BaseLargeRepeatedValueViewVector.SIZE_WIDTH));
}
}
}

Expand Down

0 comments on commit 7c4ccfe

Please sign in to comment.