This is an automated email from the ASF dual-hosted git repository.
JingsongLi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git
The following commit(s) were added to refs/heads/master by this push:
new dc30c49c78 [core] Reject Variant type for primary key and partition
key (#9105)
dc30c49c78 is described below
commit dc30c49c7881a3c61823e1260c752434d12e8739
Author: Arnav Balyan <[email protected]>
AuthorDate: Mon Aug 10 14:14:25 2026 +0530
[core] Reject Variant type for primary key and partition key (#9105)
---
.../org/apache/paimon/schema/SchemaValidation.java | 3 ++-
.../apache/paimon/schema/SchemaManagerTest.java | 28 ++++++++++++++++++++++
2 files changed, 30 insertions(+), 1 deletion(-)
diff --git
a/paimon-core/src/main/java/org/apache/paimon/schema/SchemaValidation.java
b/paimon-core/src/main/java/org/apache/paimon/schema/SchemaValidation.java
index 1fd428a851..3bd841460f 100644
--- a/paimon-core/src/main/java/org/apache/paimon/schema/SchemaValidation.java
+++ b/paimon-core/src/main/java/org/apache/paimon/schema/SchemaValidation.java
@@ -120,7 +120,8 @@ public class SchemaValidation {
ArrayType.class,
RowType.class,
MultisetType.class,
- VectorType.class);
+ VectorType.class,
+ VariantType.class);
/**
* Validate the {@link TableSchema} and {@link CoreOptions}.
diff --git
a/paimon-core/src/test/java/org/apache/paimon/schema/SchemaManagerTest.java
b/paimon-core/src/test/java/org/apache/paimon/schema/SchemaManagerTest.java
index aed3a9a309..c080d0eef1 100644
--- a/paimon-core/src/test/java/org/apache/paimon/schema/SchemaManagerTest.java
+++ b/paimon-core/src/test/java/org/apache/paimon/schema/SchemaManagerTest.java
@@ -40,6 +40,7 @@ import org.apache.paimon.types.IntType;
import org.apache.paimon.types.MapType;
import org.apache.paimon.types.RowType;
import org.apache.paimon.types.VarCharType;
+import org.apache.paimon.types.VariantType;
import org.apache.paimon.utils.ChangelogManager;
import org.apache.paimon.utils.FailingFileIO;
import org.apache.paimon.utils.SnapshotManager;
@@ -588,6 +589,33 @@ public class SchemaManagerTest {
MapType.class.getSimpleName(), "f0");
}
+ @Test
+ public void testVariantKeyType() {
+ final RowType variantType =
+ RowType.of(new VariantType(), new BigIntType(), new
VarCharType());
+
+ final Schema variantPrimaryKeySchema =
+ new Schema(variantType.getFields(), partitionKeys,
primaryKeys, options, "");
+ assertThatThrownBy(() -> manager.createTable(variantPrimaryKeySchema))
+ .isInstanceOf(UnsupportedOperationException.class)
+ .hasMessage(
+ "The type %s in primary key field %s is unsupported",
+ VariantType.class.getSimpleName(), "f0");
+
+ final Schema variantPartitionSchema =
+ new Schema(
+ variantType.getFields(),
+ partitionKeys,
+ Collections.emptyList(),
+ options,
+ "");
+ assertThatThrownBy(() -> manager.createTable(variantPartitionSchema))
+ .isInstanceOf(UnsupportedOperationException.class)
+ .hasMessage(
+ "The type %s in partition field %s is unsupported",
+ VariantType.class.getSimpleName(), "f0");
+ }
+
@Test
public void testChangelogTableWithFullCompaction() throws Exception {
Map<String, String> options = new HashMap<>();