Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
9ba0bf2
fix: initial refactor for adding ViewVarChar template
vibhatha Feb 7, 2024
91ce65c
feat: adding missing interfaces
vibhatha Feb 7, 2024
a273f3b
feat: initial inline and reference buffer set functionality added
vibhatha Feb 27, 2024
00b32d8
feat: improve test cases for basic set functionality
vibhatha Feb 27, 2024
79b4f83
fix: minor issue in inline set
vibhatha Feb 27, 2024
7dea827
fix: adding documentation to test utils
vibhatha Feb 27, 2024
6e816ea
fix: adding more tests and improving set functionality and memory han…
vibhatha Feb 27, 2024
f862b60
fix: minor ci issue
vibhatha Feb 27, 2024
f7b5300
feat: rewrote the views just using buffers
vibhatha Feb 29, 2024
259a797
feat: code cleanup
vibhatha Mar 4, 2024
71de5ac
feat: initial work on holder based functions
vibhatha Mar 4, 2024
5d14c1d
feat: adding handleSafe and holders
vibhatha Mar 5, 2024
b28d8ad
feat: adding safe handlers and tests
vibhatha Mar 6, 2024
305ea4a
fix: refactoring view buffer allocation logic, allocation logic, addi…
vibhatha Mar 9, 2024
e3cc774
fix: adding test case for copy from nulls, empty overfill
vibhatha Mar 11, 2024
508c2f8
feat: adding last usage test
vibhatha Mar 11, 2024
d5ea158
feat: adding fill empties test
vibhatha Mar 11, 2024
5369708
feat: adding buffer address tests
vibhatha Mar 12, 2024
522e311
feat: adding tests for capacity and buffer data
vibhatha Mar 12, 2024
9a477ad
fix: unnecessary change
vibhatha Mar 12, 2024
df3ab9b
feat: adding null retrieval test
vibhatha Mar 12, 2024
b3e7149
feat: adding hashCode function and tests
vibhatha Mar 12, 2024
69b5a36
feat: adding unload variable width vector test
vibhatha Mar 12, 2024
0219a95
fix: offset tests
vibhatha Mar 12, 2024
7fc59df
feat: adding test for holder retrieval
vibhatha Mar 13, 2024
6822835
fix: checkpoint to re-evaluate holder usage
vibhatha Mar 13, 2024
0d36a5b
fix: removing holders from initial implementation
vibhatha Mar 26, 2024
21ca8be
fix: adding unsupported ops for c interface
vibhatha Mar 26, 2024
246e314
feat: adding binary view
vibhatha Mar 26, 2024
8c7eb64
fix: code cleanup
vibhatha Mar 26, 2024
bc42167
fix: adding javadocs
vibhatha Mar 26, 2024
05119c8
fix: formatting AbstractVariableWidthVector class
vibhatha Mar 28, 2024
9fed6fa
fix: minor formatting to AbstractVariableWidthVector
vibhatha Mar 28, 2024
a158779
fix: review BaseVariableWidthViewVector impl
vibhatha Mar 29, 2024
0af0eed
fix: adding todos for visitors
vibhatha Apr 2, 2024
b03b09f
fix: adding issues for future work
vibhatha Apr 2, 2024
4a39dad
fix: adding issues for todo features
vibhatha Apr 2, 2024
72d300d
fix: remove unnecessary comments
vibhatha Apr 2, 2024
1bb3eac
fix: minor formatting
vibhatha Apr 2, 2024
9616f0e
fix: update test parameter
vibhatha Apr 2, 2024
3c9cf1f
fix: minor changes to TestValueVector test cases
vibhatha Apr 2, 2024
a97da89
fix: removing offset usage s1
vibhatha Apr 4, 2024
8cfb971
fix: removing offset usage s2
vibhatha Apr 4, 2024
b92f850
fix: removing offset usage s3
vibhatha Apr 5, 2024
4d34a63
fix: removing offset usage s4
vibhatha Apr 5, 2024
90a069a
fix: removing offset usage : s5
vibhatha Apr 5, 2024
dec68a4
fix: removing offset usage s6
vibhatha Apr 5, 2024
7da0bdf
fix: removing offset usage s7
vibhatha Apr 5, 2024
fd5a4d5
fix: minor docs and comments
vibhatha Apr 5, 2024
7ec3921
fix: addressing reviews
vibhatha Apr 5, 2024
58efea6
fix: addressing reviews
vibhatha Apr 5, 2024
bbcace5
fix: adding a test case for vector unloading
vibhatha Apr 6, 2024
d585f87
fix: refactoring function usage on current capacity
vibhatha Apr 6, 2024
e5dfb88
fix: cleaning up code and improving comments
vibhatha Apr 6, 2024
bd30d1e
fix: minor unused function removal
vibhatha Apr 8, 2024
a5c18ff
fix: addressing reviews
vibhatha Apr 8, 2024
9c2aef5
fix: addressing reviews s2
vibhatha Apr 8, 2024
cc3c880
fix: addressing reviews and fixed an allocation bug
vibhatha Apr 8, 2024
f741cfc
fix: addressing review: refactor view allocation function
vibhatha Apr 8, 2024
f1e7f8f
fix: addressing reviews s3 v1
vibhatha Apr 15, 2024
99dd6c9
fix: addressing reviews s3 v2
vibhatha Apr 15, 2024
2315b00
fix: addressing reviews s3 v3
vibhatha Apr 15, 2024
e906695
fix: addressing reviews s3 v4: removing holder additional buffers
vibhatha Apr 15, 2024
b8ea2d8
fix: addressing reviews s3 v5
vibhatha Apr 15, 2024
84a474c
fix: addressing reviews s3 v6
vibhatha Apr 15, 2024
90e53e4
fix: addressing reviews s3 v7
vibhatha Apr 15, 2024
51d8ab1
fix: addressing reviews s3 v8
vibhatha Apr 15, 2024
a557037
fix: addressing reviews s3 v9
vibhatha Apr 15, 2024
82b0c18
fix: addressing reviews s4 v1
vibhatha Apr 24, 2024
f364410
fix: addressing reviews s4 v2
vibhatha Apr 24, 2024
714b294
fix: addressing reviews s4 v3: format
vibhatha Apr 24, 2024
f5c6bcd
fix: addressing reviews s4 v3.1: format
vibhatha Apr 24, 2024
b7c81a7
fix: addressing reviews s4 v3.2: format
vibhatha Apr 24, 2024
3ef8351
fix: addressing reviews s4 v3.3: format
vibhatha Apr 24, 2024
17e191f
fix: addressing reviews s4 v3.4: format
vibhatha Apr 24, 2024
8df5f76
fix: addressing reviews s4 v3.5: format
vibhatha Apr 24, 2024
96f9728
fix: addressing reviews s4 v3.6: format
vibhatha Apr 24, 2024
0a8735e
fix: addressing reviews s4 v3.7: format
vibhatha Apr 24, 2024
19d935e
fix: addressing reviews s4 v3.8: format
vibhatha Apr 24, 2024
76d10f9
fix: addressing reviews s4 v3.9: format
vibhatha Apr 24, 2024
2769e29
fix: addressing reviews s4 v3.10: format
vibhatha Apr 24, 2024
ef2f0c1
fix: addressing reviews s4 v3.11: format
vibhatha Apr 24, 2024
7ca6dfb
fix: addressing reviews s4 v3.12: format
vibhatha Apr 24, 2024
75fa10f
fix: addressing reviews s4 v3.13: format
vibhatha Apr 24, 2024
07f13d3
fix: addressing reviews s4 v3.14: format
vibhatha Apr 24, 2024
60cad54
fix: addressing reviews s4 v3.15: format
vibhatha Apr 24, 2024
03e9675
fix: addressing reviews s4 v3.16: format
vibhatha Apr 24, 2024
e544f35
fix: addressing reviews s4 v3.17: format
vibhatha Apr 24, 2024
444dd5c
fix: addressing reviews s4 v3.18: format
vibhatha Apr 24, 2024
79f9207
fix: addressing reviews s4 v3.19: format
vibhatha Apr 24, 2024
449dc79
fix: addressing reviews s4 v3.20: format
vibhatha Apr 24, 2024
5d81945
fix: addressing reviews s4 v3.21: format
vibhatha Apr 24, 2024
b7c787b
fix: addressing reviews s4 v3.22: format
vibhatha Apr 24, 2024
bb3bbce
fix: addressing reviews s4 v3.23: format
vibhatha Apr 24, 2024
a40f97c
fix: addressing reviews s4 v3.24: format
vibhatha Apr 24, 2024
a76cb91
fix: addressing reviews s4 v3.25: format
vibhatha Apr 24, 2024
c801042
fix: updating test names for views
vibhatha Apr 24, 2024
be00c88
fix: updating test parameters
vibhatha Apr 24, 2024
ad80900
fix: adding offset check for views
vibhatha Apr 24, 2024
203bd7b
fix: adding comments for test variables
vibhatha Apr 24, 2024
61b9bc1
fix: updating to junit5
vibhatha Apr 25, 2024
89d48a2
fix: removing assert usage
vibhatha Apr 25, 2024
586f30e
fix: adding tests for overwriting v1
vibhatha Apr 26, 2024
8770f30
fix: adding tests for overwriting v2
vibhatha Apr 26, 2024
88d7818
fix: adding tests for overwriting with setSafe
vibhatha Apr 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,11 @@ public ColumnBinder visit(ArrowType.Utf8 type) {
new VarCharBinder<>(varChar, jdbcType);
}

@Override
public ColumnBinder visit(ArrowType.Utf8View type) {
throw new UnsupportedOperationException("Column binder implemented for type " + type + " is not supported");
}

@Override
public ColumnBinder visit(ArrowType.LargeUtf8 type) {
LargeVarCharVector varChar = (LargeVarCharVector) vector;
Expand All @@ -162,6 +167,11 @@ public ColumnBinder visit(ArrowType.Binary type) {
new VarBinaryBinder<>(varBinary, jdbcType);
}

@Override
public ColumnBinder visit(ArrowType.BinaryView type) {
throw new UnsupportedOperationException("Column binder implemented for type " + type + " is not supported");
}

@Override
public ColumnBinder visit(ArrowType.LargeBinary type) {
LargeVarBinaryVector varBinary = (LargeVarBinaryVector) vector;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,11 @@ public List<ArrowBuf> visit(ArrowType.Utf8 type) {
}
}

@Override
public List<ArrowBuf> visit(ArrowType.Utf8View type) {
throw new UnsupportedOperationException("Importing buffers for view type: " + type + " not supported");
}

@Override
public List<ArrowBuf> visit(ArrowType.LargeUtf8 type) {
try (ArrowBuf offsets = importOffsets(type, LargeVarCharVector.OFFSET_WIDTH)) {
Expand Down Expand Up @@ -237,6 +242,11 @@ public List<ArrowBuf> visit(ArrowType.Binary type) {
}
}

@Override
public List<ArrowBuf> visit(ArrowType.BinaryView type) {
throw new UnsupportedOperationException("Importing buffers for view type: " + type + " not supported");
}

@Override
public List<ArrowBuf> visit(ArrowType.LargeBinary type) {
try (ArrowBuf offsets = importOffsets(type, LargeVarBinaryVector.OFFSET_WIDTH)) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.apache.arrow.driver.jdbc.converter.impl;

import org.apache.arrow.vector.FieldVector;
import org.apache.arrow.vector.types.pojo.ArrowType;
import org.apache.arrow.vector.types.pojo.Field;
import org.apache.calcite.avatica.AvaticaParameter;
import org.apache.calcite.avatica.remote.TypedValue;

/** AvaticaParameterConverter for BinaryView Arrow types. */
public class BinaryViewAvaticaParameterConverter extends BaseAvaticaParameterConverter {

public BinaryViewAvaticaParameterConverter(ArrowType.BinaryView type) {

}

@Override
public boolean bindParameter(FieldVector vector, TypedValue typedValue, int index) {
throw new UnsupportedOperationException("Not implemented");
}

@Override
public AvaticaParameter createParameter(Field field) {
return createParameter(field, false);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.apache.arrow.driver.jdbc.converter.impl;

import org.apache.arrow.vector.FieldVector;
import org.apache.arrow.vector.types.pojo.ArrowType;
import org.apache.arrow.vector.types.pojo.Field;
import org.apache.calcite.avatica.AvaticaParameter;
import org.apache.calcite.avatica.remote.TypedValue;

/**
* AvaticaParameterConverter for Utf8View Arrow types.
*/
public class Utf8ViewAvaticaParameterConverter extends BaseAvaticaParameterConverter {

public Utf8ViewAvaticaParameterConverter(ArrowType.Utf8View type) {
}

@Override
public boolean bindParameter(FieldVector vector, TypedValue typedValue, int index) {
throw new UnsupportedOperationException("Utf8View not supported");
}

@Override
public AvaticaParameter createParameter(Field field) {
return createParameter(field, false);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,11 @@ public Boolean visit(ArrowType.Utf8 type) {
return new Utf8AvaticaParameterConverter(type).bindParameter(vector, typedValue, index);
}

@Override
public Boolean visit(ArrowType.Utf8View type) {
throw new UnsupportedOperationException("Utf8View is unsupported");
}

@Override
public Boolean visit(ArrowType.LargeUtf8 type) {
return new LargeUtf8AvaticaParameterConverter(type).bindParameter(vector, typedValue, index);
Expand All @@ -200,6 +205,11 @@ public Boolean visit(ArrowType.Binary type) {
return new BinaryAvaticaParameterConverter(type).bindParameter(vector, typedValue, index);
}

@Override
public Boolean visit(ArrowType.BinaryView type) {
throw new UnsupportedOperationException("BinaryView is unsupported");
}

@Override
public Boolean visit(ArrowType.LargeBinary type) {
return new LargeBinaryAvaticaParameterConverter(type).bindParameter(vector, typedValue, index);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.util.stream.Stream;

import org.apache.arrow.driver.jdbc.converter.impl.BinaryAvaticaParameterConverter;
import org.apache.arrow.driver.jdbc.converter.impl.BinaryViewAvaticaParameterConverter;
import org.apache.arrow.driver.jdbc.converter.impl.BoolAvaticaParameterConverter;
import org.apache.arrow.driver.jdbc.converter.impl.DateAvaticaParameterConverter;
import org.apache.arrow.driver.jdbc.converter.impl.DecimalAvaticaParameterConverter;
Expand All @@ -43,6 +44,7 @@
import org.apache.arrow.driver.jdbc.converter.impl.TimestampAvaticaParameterConverter;
import org.apache.arrow.driver.jdbc.converter.impl.UnionAvaticaParameterConverter;
import org.apache.arrow.driver.jdbc.converter.impl.Utf8AvaticaParameterConverter;
import org.apache.arrow.driver.jdbc.converter.impl.Utf8ViewAvaticaParameterConverter;
import org.apache.arrow.flight.sql.FlightSqlColumnMetadata;
import org.apache.arrow.vector.types.pojo.ArrowType;
import org.apache.arrow.vector.types.pojo.Field;
Expand Down Expand Up @@ -208,6 +210,11 @@ public AvaticaParameter visit(ArrowType.Utf8 type) {
return new Utf8AvaticaParameterConverter(type).createParameter(field);
}

@Override
public AvaticaParameter visit(ArrowType.Utf8View type) {
return new Utf8ViewAvaticaParameterConverter(type).createParameter(field);
}

@Override
public AvaticaParameter visit(ArrowType.LargeUtf8 type) {
return new LargeUtf8AvaticaParameterConverter(type).createParameter(field);
Expand All @@ -218,6 +225,11 @@ public AvaticaParameter visit(ArrowType.Binary type) {
return new BinaryAvaticaParameterConverter(type).createParameter(field);
}

@Override
public AvaticaParameter visit(ArrowType.BinaryView type) {
return new BinaryViewAvaticaParameterConverter(type).createParameter(field);
}

@Override
public AvaticaParameter visit(ArrowType.LargeBinary type) {
return new LargeBinaryAvaticaParameterConverter(type).createParameter(field);
Expand Down
1 change: 1 addition & 0 deletions java/memory/memory-core/src/main/java/module-info.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,5 @@
requires jsr305;
requires org.immutables.value;
requires org.slf4j;
requires org.checkerframework.checker.qual;
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,6 @@ public interface ReusableBuffer<T> {
* @param len the number of bytes of the new data
*/
void set(ArrowBuf srcBytes, long start, long len);

void set(byte[] srcBytes, long start, long len);
}
10 changes: 10 additions & 0 deletions java/vector/src/main/codegen/data/ArrowTypes.tdd
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,11 @@
fields: [],
complex: false
},
{
name: "Utf8View",
fields: [],
complex: false
},
{
name: "LargeUtf8",
fields: [],
Expand All @@ -75,6 +80,11 @@
fields: [],
complex: false
},
{
name: "BinaryView",
fields: [],
complex: false
},
{
name: "LargeBinary",
fields: [],
Expand Down
4 changes: 3 additions & 1 deletion java/vector/src/main/codegen/data/ValueVectorTypes.tdd
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,9 @@
fields: [{name: "start", type: "int"}, {name: "end", type: "int"}, {name: "buffer", type: "ArrowBuf"}],
minor: [
{ class: "VarBinary" , friendlyType: "byte[]" },
{ class: "VarChar" , friendlyType: "Text" }
{ class: "VarChar" , friendlyType: "Text" },
{ class: "ViewVarBinary" , friendlyType: "byte[]" },
{ class: "ViewVarChar" , friendlyType: "Text" }
]
},
{
Expand Down
4 changes: 2 additions & 2 deletions java/vector/src/main/codegen/templates/HolderReaderImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,9 @@ public void read(Nullable${name}Holder h) {
</#if>
byte[] value = new byte [length];
holder.buffer.getBytes(holder.start, value, 0, length);
<#if minor.class == "VarBinary" || minor.class == "LargeVarBinary">
<#if minor.class == "VarBinary" || minor.class == "LargeVarBinary" || minor.class == "ViewVarBinary">
return value;
<#elseif minor.class == "VarChar" || minor.class == "LargeVarChar">
<#elseif minor.class == "VarChar" || minor.class == "LargeVarChar" || minor.class == "ViewVarChar">
Text text = new Text();
text.set(value);
return text;
Expand Down
2 changes: 1 addition & 1 deletion java/vector/src/main/codegen/templates/UnionReader.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
@SuppressWarnings("unused")
public class UnionReader extends AbstractFieldReader {

private static final int NUM_SUPPORTED_TYPES = 46;
private static final int NUM_SUPPORTED_TYPES = 48;

private BaseReader[] readers = new BaseReader[NUM_SUPPORTED_TYPES];
public UnionVector data;
Expand Down
10 changes: 3 additions & 7 deletions java/vector/src/main/codegen/templates/ValueHolders.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
package org.apache.arrow.vector.holders;

<#include "/@includes/vv_imports.ftl" />

/**
* Source code generated using FreeMarker template ${.template_name}
*/
Expand All @@ -40,11 +39,12 @@ public final class ${className} implements ValueHolder{

/** The last index (exclusive) into the Vector. **/
public int end;

/** The Vector holding the actual values. **/
public ${minor.class}Vector vector;

<#else>

public static final int WIDTH = ${type.width};

<#if mode.name == "Optional">public int isSet;
Expand All @@ -70,10 +70,6 @@ public String toString(){
throw new UnsupportedOperationException();
}
</#if>




}

</#list>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import org.apache.arrow.util.Preconditions;

/**
* Tuple class containing a vector and whether is was created.
* Tuple class containing a vector and whether it was created.
*
* @param <V> The type of vector the result is for.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,7 @@
/**
* BaseLargeVariableWidthVector is a base class providing functionality for large strings/large bytes types.
*/
public abstract class BaseLargeVariableWidthVector extends BaseValueVector
implements VariableWidthVector, FieldVector, VectorDefinitionSetter {
public abstract class BaseLargeVariableWidthVector extends BaseValueVector implements VariableWidthFieldVector {
private static final int DEFAULT_RECORD_BYTE_COUNT = 12;
private static final int INITIAL_BYTE_COUNT = INITIAL_VALUE_ALLOCATION * DEFAULT_RECORD_BYTE_COUNT;
private int lastValueCapacity;
Expand Down Expand Up @@ -942,6 +941,7 @@ public void setValueCount(int valueCount) {
*
* @param index target index
*/
@Override
public void fillEmpties(int index) {
handleSafe(index, emptyByteArray.length);
fillHoles(index);
Expand All @@ -955,6 +955,7 @@ public void fillEmpties(int index) {
*
* @param value desired index of last non-null element.
*/
@Override
public void setLastSet(int value) {
lastSet = value;
}
Expand All @@ -964,6 +965,7 @@ public void setLastSet(int value) {
*
* @return index of the last non-null element
*/
@Override
public int getLastSet() {
return lastSet;
}
Expand Down Expand Up @@ -1003,6 +1005,7 @@ public void setValueLengthSafe(int index, int length) {
* @param index position of element to get
* @return greater than 0 length for non-null element, 0 otherwise
*/
@Override
public int getValueLength(int index) {
assert index >= 0;
if (isSet(index) == 0) {
Expand All @@ -1021,6 +1024,7 @@ public int getValueLength(int index) {
* @param index position of the element to set
* @param value array of bytes to write
*/
@Override
public void set(int index, byte[] value) {
assert index >= 0;
fillHoles(index);
Expand All @@ -1037,6 +1041,7 @@ public void set(int index, byte[] value) {
* @param index position of the element to set
* @param value array of bytes to write
*/
@Override
public void setSafe(int index, byte[] value) {
assert index >= 0;
handleSafe(index, value.length);
Expand All @@ -1055,6 +1060,7 @@ public void setSafe(int index, byte[] value) {
* @param start start index in array of bytes
* @param length length of data in array of bytes
*/
@Override
public void set(int index, byte[] value, int start, int length) {
assert index >= 0;
fillHoles(index);
Expand Down Expand Up @@ -1091,6 +1097,7 @@ public void setSafe(int index, byte[] value, int start, int length) {
* @param start start index in ByteBuffer
* @param length length of data in ByteBuffer
*/
@Override
public void set(int index, ByteBuffer value, int start, int length) {
assert index >= 0;
fillHoles(index);
Expand Down
Loading
Loading