Skip to content

Commit b76a0ea

Browse files
committed
Move Variant classes from arrow-vector to arrow-variant module
1 parent 3a0d927 commit b76a0ea

File tree

24 files changed

+648
-527
lines changed

24 files changed

+648
-527
lines changed

arrow-variant/pom.xml

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,30 +33,19 @@ under the License.
3333
<groupId>org.apache.arrow</groupId>
3434
<artifactId>arrow-memory-core</artifactId>
3535
</dependency>
36+
<dependency>
37+
<groupId>org.apache.arrow</groupId>
38+
<artifactId>arrow-vector</artifactId>
39+
</dependency>
3640
<dependency>
3741
<groupId>org.apache.parquet</groupId>
3842
<artifactId>parquet-variant</artifactId>
43+
<version>${dep.parquet.version}</version>
3944
</dependency>
4045
<dependency>
4146
<groupId>org.apache.arrow</groupId>
4247
<artifactId>arrow-memory-unsafe</artifactId>
4348
<scope>test</scope>
4449
</dependency>
4550
</dependencies>
46-
47-
<build>
48-
<plugins>
49-
<plugin>
50-
<groupId>org.apache.maven.plugins</groupId>
51-
<artifactId>maven-jar-plugin</artifactId>
52-
<executions>
53-
<execution>
54-
<goals>
55-
<goal>test-jar</goal>
56-
</goals>
57-
</execution>
58-
</executions>
59-
</plugin>
60-
</plugins>
61-
</build>
6251
</project>

arrow-variant/src/main/java/module-info.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,12 @@
1717

1818
@SuppressWarnings("requires-automatic")
1919
module org.apache.arrow.variant {
20-
exports org.apache.arrow.vector.variant;
20+
exports org.apache.arrow.variant;
21+
exports org.apache.arrow.variant.extension;
22+
exports org.apache.arrow.variant.impl;
23+
exports org.apache.arrow.variant.holders;
2124

2225
requires org.apache.arrow.memory.core;
26+
requires org.apache.arrow.vector;
2327
requires parquet.variant;
2428
}

arrow-variant/src/main/java/org/apache/arrow/vector/variant/Variant.java renamed to arrow-variant/src/main/java/org/apache/arrow/variant/Variant.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,14 @@
1414
* See the License for the specific language governing permissions and
1515
* limitations under the License.
1616
*/
17-
package org.apache.arrow.vector.variant;
17+
package org.apache.arrow.variant;
1818

1919
import java.math.BigDecimal;
2020
import java.nio.ByteBuffer;
2121
import java.util.Objects;
2222
import java.util.UUID;
2323
import org.apache.arrow.memory.ArrowBuf;
24+
import org.apache.arrow.variant.holders.NullableVariantHolder;
2425

2526
/**
2627
* Wrapper around parquet-variant's Variant implementation.
@@ -58,6 +59,16 @@ private Variant(org.apache.parquet.variant.Variant delegate) {
5859
this.delegate = delegate;
5960
}
6061

62+
public Variant(NullableVariantHolder holder) {
63+
this(
64+
holder.metadataBuffer,
65+
holder.metadataStart,
66+
holder.metadataEnd,
67+
holder.valueBuffer,
68+
holder.valueStart,
69+
holder.valueEnd);
70+
}
71+
6172
public ByteBuffer getValueBuffer() {
6273
return delegate.getValueBuffer();
6374
}

vector/src/main/java/org/apache/arrow/vector/extension/VariantType.java renamed to arrow-variant/src/main/java/org/apache/arrow/variant/extension/VariantType.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,22 @@
1414
* See the License for the specific language governing permissions and
1515
* limitations under the License.
1616
*/
17-
package org.apache.arrow.vector.extension;
17+
package org.apache.arrow.variant.extension;
1818

1919
import org.apache.arrow.memory.BufferAllocator;
20+
import org.apache.arrow.variant.impl.VariantWriterImpl;
2021
import org.apache.arrow.vector.FieldVector;
2122
import org.apache.arrow.vector.ValueVector;
22-
import org.apache.arrow.vector.complex.impl.VariantWriterImpl;
2323
import org.apache.arrow.vector.complex.writer.FieldWriter;
2424
import org.apache.arrow.vector.types.pojo.ArrowType;
2525
import org.apache.arrow.vector.types.pojo.ArrowType.ExtensionType;
2626
import org.apache.arrow.vector.types.pojo.ExtensionTypeRegistry;
2727
import org.apache.arrow.vector.types.pojo.FieldType;
2828

29+
/**
30+
* Arrow extension type for <a href="https://github.com/apache/parquet-format/blob/master/VariantEncoding.md">
31+
* Parquet Variant</a> binary encoding. The type itself does not support shredded variant data.
32+
*/
2933
public final class VariantType extends ExtensionType {
3034

3135
public static final VariantType INSTANCE = new VariantType();

vector/src/main/java/org/apache/arrow/vector/extension/VariantVector.java renamed to arrow-variant/src/main/java/org/apache/arrow/variant/extension/VariantVector.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,16 @@
1414
* See the License for the specific language governing permissions and
1515
* limitations under the License.
1616
*/
17-
package org.apache.arrow.vector.extension;
17+
package org.apache.arrow.variant.extension;
1818

1919
import java.nio.ByteBuffer;
2020
import java.util.List;
2121
import org.apache.arrow.memory.ArrowBuf;
2222
import org.apache.arrow.memory.BufferAllocator;
2323
import org.apache.arrow.memory.util.hash.ArrowBufHasher;
24+
import org.apache.arrow.variant.Variant;
25+
import org.apache.arrow.variant.holders.NullableVariantHolder;
26+
import org.apache.arrow.variant.holders.VariantHolder;
2427
import org.apache.arrow.vector.BitVectorHelper;
2528
import org.apache.arrow.vector.ExtensionTypeVector;
2629
import org.apache.arrow.vector.FieldVector;
@@ -29,16 +32,19 @@
2932
import org.apache.arrow.vector.complex.AbstractStructVector;
3033
import org.apache.arrow.vector.complex.StructVector;
3134
import org.apache.arrow.vector.complex.reader.FieldReader;
32-
import org.apache.arrow.vector.holders.NullableVariantHolder;
33-
import org.apache.arrow.vector.holders.VariantHolder;
3435
import org.apache.arrow.vector.types.pojo.ArrowType;
3536
import org.apache.arrow.vector.types.pojo.ArrowType.Binary;
3637
import org.apache.arrow.vector.types.pojo.Field;
3738
import org.apache.arrow.vector.types.pojo.FieldType;
3839
import org.apache.arrow.vector.util.CallBack;
3940
import org.apache.arrow.vector.util.TransferPair;
40-
import org.apache.arrow.vector.variant.Variant;
4141

42+
/**
43+
* Arrow vector for storing {@link VariantType} values.
44+
*
45+
* <p>Stores semi-structured data (like JSON) as metadata + value binary pairs, allowing
46+
* type-flexible columnar storage within Arrow's type system.
47+
*/
4248
public class VariantVector extends ExtensionTypeVector<StructVector> {
4349

4450
public static final String METADATA_VECTOR_NAME = "metadata";
@@ -291,7 +297,7 @@ public void setSafe(int index, Variant variant) {
291297

292298
@Override
293299
protected FieldReader getReaderImpl() {
294-
return new org.apache.arrow.vector.complex.impl.VariantReaderImpl(this);
300+
return new org.apache.arrow.variant.impl.VariantReaderImpl(this);
295301
}
296302

297303
@Override

vector/src/main/java/org/apache/arrow/vector/holders/NullableVariantHolder.java renamed to arrow-variant/src/main/java/org/apache/arrow/variant/holders/NullableVariantHolder.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@
1414
* See the License for the specific language governing permissions and
1515
* limitations under the License.
1616
*/
17-
package org.apache.arrow.vector.holders;
17+
package org.apache.arrow.variant.holders;
1818

1919
import org.apache.arrow.memory.ArrowBuf;
20-
import org.apache.arrow.vector.extension.VariantType;
20+
import org.apache.arrow.variant.extension.VariantType;
21+
import org.apache.arrow.vector.holders.ExtensionHolder;
2122
import org.apache.arrow.vector.types.pojo.ArrowType;
2223

2324
@SuppressWarnings("checkstyle:VisibilityModifier")

vector/src/main/java/org/apache/arrow/vector/holders/VariantHolder.java renamed to arrow-variant/src/main/java/org/apache/arrow/variant/holders/VariantHolder.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@
1414
* See the License for the specific language governing permissions and
1515
* limitations under the License.
1616
*/
17-
package org.apache.arrow.vector.holders;
17+
package org.apache.arrow.variant.holders;
1818

1919
import org.apache.arrow.memory.ArrowBuf;
20-
import org.apache.arrow.vector.extension.VariantType;
20+
import org.apache.arrow.variant.extension.VariantType;
21+
import org.apache.arrow.vector.holders.ExtensionHolder;
2122
import org.apache.arrow.vector.types.pojo.ArrowType;
2223

2324
@SuppressWarnings("checkstyle:VisibilityModifier")

vector/src/main/java/org/apache/arrow/vector/complex/impl/NullableVariantHolderReaderImpl.java renamed to arrow-variant/src/main/java/org/apache/arrow/variant/impl/NullableVariantHolderReaderImpl.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@
1414
* See the License for the specific language governing permissions and
1515
* limitations under the License.
1616
*/
17-
package org.apache.arrow.vector.complex.impl;
17+
package org.apache.arrow.variant.impl;
1818

19-
import org.apache.arrow.vector.holders.NullableVariantHolder;
19+
import org.apache.arrow.variant.holders.NullableVariantHolder;
20+
import org.apache.arrow.vector.complex.impl.AbstractFieldReader;
2021
import org.apache.arrow.vector.types.Types;
2122

2223
public class NullableVariantHolderReaderImpl extends AbstractFieldReader {

vector/src/main/java/org/apache/arrow/vector/complex/impl/VariantReaderImpl.java renamed to arrow-variant/src/main/java/org/apache/arrow/variant/impl/VariantReaderImpl.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@
1414
* See the License for the specific language governing permissions and
1515
* limitations under the License.
1616
*/
17-
package org.apache.arrow.vector.complex.impl;
17+
package org.apache.arrow.variant.impl;
1818

19-
import org.apache.arrow.vector.extension.VariantVector;
19+
import org.apache.arrow.variant.extension.VariantVector;
20+
import org.apache.arrow.variant.holders.NullableVariantHolder;
21+
import org.apache.arrow.variant.holders.VariantHolder;
22+
import org.apache.arrow.vector.complex.impl.AbstractFieldReader;
2023
import org.apache.arrow.vector.holders.ExtensionHolder;
21-
import org.apache.arrow.vector.holders.NullableVariantHolder;
22-
import org.apache.arrow.vector.holders.VariantHolder;
2324
import org.apache.arrow.vector.types.Types;
2425
import org.apache.arrow.vector.types.pojo.Field;
2526

vector/src/main/java/org/apache/arrow/vector/complex/impl/VariantWriterImpl.java renamed to arrow-variant/src/main/java/org/apache/arrow/variant/impl/VariantWriterImpl.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,16 @@
1414
* See the License for the specific language governing permissions and
1515
* limitations under the License.
1616
*/
17-
package org.apache.arrow.vector.complex.impl;
17+
package org.apache.arrow.variant.impl;
1818

1919
import org.apache.arrow.memory.ArrowBuf;
20-
import org.apache.arrow.vector.extension.VariantVector;
20+
import org.apache.arrow.variant.Variant;
21+
import org.apache.arrow.variant.extension.VariantVector;
22+
import org.apache.arrow.variant.holders.NullableVariantHolder;
23+
import org.apache.arrow.variant.holders.VariantHolder;
24+
import org.apache.arrow.vector.complex.impl.AbstractExtensionTypeWriter;
2125
import org.apache.arrow.vector.holders.ExtensionHolder;
22-
import org.apache.arrow.vector.holders.NullableVariantHolder;
23-
import org.apache.arrow.vector.holders.VariantHolder;
2426
import org.apache.arrow.vector.types.pojo.ArrowType;
25-
import org.apache.arrow.vector.variant.Variant;
2627

2728
/**
2829
* Writer implementation for VARIANT extension type vectors.

0 commit comments

Comments
 (0)