You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@iceberg.apache.org by "talatuyarer (via GitHub)" <gi...@apache.org> on 2025/09/30 07:22:59 UTC
[PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
talatuyarer opened a new pull request, #14218:
URL: https://github.com/apache/iceberg/pull/14218
I've added a comprehensive doc that tracks which V3 features are actually implemented across our different engines (Core, Spark, Flink). Turns out there's quite a bit of variation in what's supported where!
Feel free to correct content. This is so far based on my initial research.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "amogh-jahagirdar (via GitHub)" <gi...@apache.org>.
amogh-jahagirdar commented on code in PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#discussion_r2392678928
##########
docs/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,155 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
Review Comment:
I think it's a good idea to have this, one thing we'll need to be diligent about is updating this on PRs.
##########
docs/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,155 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
+
+This document tracks the implementation status of Apache Iceberg V3 Table Format features across different engines and components.
+
+## Overview
+
+Apache Iceberg V3 Table Format introduces several new features including new data types, row lineage, deletion vectors, default values, and table encryption. This document provides a comprehensive comparison of V3 feature implementation status across Apache Iceberg Core, Apache Spark, and Apache Flink.
+
+## V3 Features Implementation Status
+
+| **V3 Feature** | **Core** | **Spark** | **Flink** | **Notes** |
+|---|---|---|---|---|
+| **New Data Types** | | | | |
+| `unknown` type | ✅ **Implemented** | ⚠️ **Partially Implemented** | ✅ **Implemented** | Core: Full support. Spark: v4.0+ ✅, v3.4/v3.5 ❌. Flink: Full support. |
+| `timestamp_ns` (nanosecond timestamps) | ✅ **Implemented** | ❌ **Not Implemented** | ✅ **Implemented** | Core: Full support including timestamptz_ns. Spark: Not supported in any version. Flink: Full support including timestamptz_ns. |
+| `variant` type | ⚠️ **Partially Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Core: Avro ✅, Parquet ✅, ORC ❌. Spark/Flink: No support. |
+| `geometry` type | ❌ **Not Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Type definitions exist in API but no data processing implementation in any engine. |
+| `geography` type | ❌ **Not Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Type definitions exist in API but no data processing implementation in any engine. |
+| **Deletion Vectors** | | | | |
+| Binary Deletion vector support | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
+| **Default Values** | | | | |
+| Field default values | ✅ **Implemented** | ✅ **Implemented** | ✅ **Implemented** | Core: Full support for both initial-default and write-default. Spark: Full support across all versions. Flink: Full support across all versions. |
+| **Table Encryption** | | | | |
+| AES-GCM encryption | ✅ **Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Core: Full support. Spark/Flink: No support. |
+| **Multi-Argument Transforms** | | | | |
+| Z-order partitioning/sorting | ✅ **Implemented** | ✅ **Implemented** | ❌ **Not Implemented** | Core: Full support. Spark: Full support across all versions. Flink: No support. |
+| **Row Lineage** | | | | |
+| `_row_id` column | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
+| `_last_updated_sequence_number` | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
+
+## Implementation Status Summary
+
+### Apache Iceberg Core
+- **Status**: ✅ **Mostly Complete**
+- **Implemented**: All core V3 features including new data types (except geometry/geography data processing), row lineage, deletion vectors, default values, and table encryption
+- **Missing**: Actual data processing implementation for geometry and geography types (type definitions exist but no functional implementation)
+
+### Apache Spark
+- **Status**: ⚠️ **Partial Support** (v4.0+)
+- **Implemented**: Row lineage, deletion vectors, default values, unknown type, and basic V3 features
+- **Missing**: Variant type, geometry/geography types, table encryption, nanosecond timestamps
+
+### Apache Flink
+- **Status**: ⚠️ **Basic Support**
+- **Implemented**: Unknown type, nanosecond timestamps, default values, and basic V3 features
+- **Missing**: Row lineage, deletion vectors, variant type, geometry/geography types, table encryption
+
+## File Format Support Details
+
+### Variant Type File Format Support in Core
+
+| **File Format** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Avro** | ✅ **Full Support** | Complete with `VariantConversion` and `VariantLogicalType` | Full read/write support |
+| **Parquet** | ✅ **Full Support** | Complete with `VariantWriterBuilder` and `VariantReaderBuilder` | Supports both serialized and shredded variants |
+| **ORC** | ❌ **Not Implemented** | Schema conversion exists but throws `UnsupportedOperationException` | No actual read/write implementation |
+
+### Geometry/Geography Type File Format Support
+
+| **File Format** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Avro** | ❌ **Not Implemented** | Type definitions exist but no data processing | No conversion or logical type support |
+| **Parquet** | ❌ **Not Implemented** | Type definitions exist but no data processing | No read/write implementation |
+| **ORC** | ❌ **Not Implemented** | Type definitions exist but no data processing | No read/write implementation |
+
+### Timestamp Nanoseconds Support
+
+| **Engine** | **timestamp_ns** (nanos) | **timestamptz_ns** (nanos) | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | ✅ **Full Support** | Complete support for all timestamp types and precisions |
+| **Spark** | ❌ **Not Implemented** | ❌ **Not Implemented** | Only supports microsecond precision timestamps |
+| **Flink** | ✅ **Full Support** | ✅ **Full Support** | Complete support for all timestamp types and precisions |
+
+### Unknown Type Support
+
+| **Engine** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | Complete type system and schema evolution support | Supports optional unknown fields, proper validation |
+| **Spark v4.0+** | ✅ **Full Support** | Complete type mapping to `NullType` | Full support with comprehensive tests |
+| **Spark v3.4/v3.5** | ❌ **Not Implemented** | Missing from type conversion | Throws "Cannot convert unknown type to Spark" error |
+| **Flink** | ✅ **Full Support** | Complete type mapping to `NullType` | Full support across all versions (v1.20, v2.0, v2.1) |
+
+### Multi-Argument Transforms Support
+
+| **Engine** | **Z-Order Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | Complete `Zorder` class implementation | Full support for multi-column transforms in partitioning and sorting |
+| **Spark** | ✅ **Full Support** | Complete `SparkZOrderFileRewriteRunner` implementation | Full support across all versions (v3.4, v3.5, v4.0) with file rewriting |
+| **Flink** | ❌ **Not Implemented** | No multi-argument transform support | Only single-argument transforms supported |
+
+### Default Values Support
+
+| **Engine** | **initial-default** | **write-default** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | ✅ **Full Support** | Complete support for both types with schema evolution |
+| **Spark** | ✅ **Full Support** | ✅ **Full Support** | Full support across all versions (v3.4, v3.5, v4.0) |
+| **Flink** | ✅ **Full Support** | ✅ **Full Support** | Full support across all versions (v1.20, v2.0, v2.1) |
+
+## Critical Missing Features
+
+### 1. Geometry and Geography Types
+- **Status**: ❌ **Not Implemented** across all engines
+- **Issue**: While type definitions exist in the API module, no engine has actual data processing implementation
+- **Impact**: Spatial data operations are not supported
+
+### 2. Table Encryption
+- **Status**: ❌ **Only Core supports it**
+- **Issue**: Spark and Flink don't support AES-GCM table encryption
+- **Impact**: Security features are limited to Core usage
+
+### 3. Variant Type
+- **Status**: ⚠️ **Partially Implemented in Core**
+- **Issue**: Core supports Avro and Parquet but not ORC; Spark and Flink have no support
+- **Impact**: Semi-structured data handling is limited to specific file formats
+
+### 4. Nanosecond Timestamps
+- **Status**: ❌ **Spark doesn't support them**
+- **Issue**: Spark connector doesn't support nanosecond precision timestamps
+- **Impact**: High-precision timestamp operations are not available in Spark
+
+## Recommendations for Users
Review Comment:
Not super against having this section, but I feel like it'd be best if we just let people look at tables for the different engines/versions and decide. It feels a bit redundant is all.
##########
docs/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,155 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
+
+This document tracks the implementation status of Apache Iceberg V3 Table Format features across different engines and components.
+
+## Overview
+
+Apache Iceberg V3 Table Format introduces several new features including new data types, row lineage, deletion vectors, default values, and table encryption. This document provides a comprehensive comparison of V3 feature implementation status across Apache Iceberg Core, Apache Spark, and Apache Flink.
+
+## V3 Features Implementation Status
+
+| **V3 Feature** | **Core** | **Spark** | **Flink** | **Notes** |
+|---|---|---|---|---|
+| **New Data Types** | | | | |
+| `unknown` type | ✅ **Implemented** | ⚠️ **Partially Implemented** | ✅ **Implemented** | Core: Full support. Spark: v4.0+ ✅, v3.4/v3.5 ❌. Flink: Full support. |
+| `timestamp_ns` (nanosecond timestamps) | ✅ **Implemented** | ❌ **Not Implemented** | ✅ **Implemented** | Core: Full support including timestamptz_ns. Spark: Not supported in any version. Flink: Full support including timestamptz_ns. |
+| `variant` type | ⚠️ **Partially Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Core: Avro ✅, Parquet ✅, ORC ❌. Spark/Flink: No support. |
+| `geometry` type | ❌ **Not Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Type definitions exist in API but no data processing implementation in any engine. |
+| `geography` type | ❌ **Not Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Type definitions exist in API but no data processing implementation in any engine. |
+| **Deletion Vectors** | | | | |
+| Binary Deletion vector support | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
+| **Default Values** | | | | |
+| Field default values | ✅ **Implemented** | ✅ **Implemented** | ✅ **Implemented** | Core: Full support for both initial-default and write-default. Spark: Full support across all versions. Flink: Full support across all versions. |
+| **Table Encryption** | | | | |
+| AES-GCM encryption | ✅ **Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Core: Full support. Spark/Flink: No support. |
+| **Multi-Argument Transforms** | | | | |
+| Z-order partitioning/sorting | ✅ **Implemented** | ✅ **Implemented** | ❌ **Not Implemented** | Core: Full support. Spark: Full support across all versions. Flink: No support. |
+| **Row Lineage** | | | | |
+| `_row_id` column | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
+| `_last_updated_sequence_number` | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
Review Comment:
We also support row lineage in spark 3.4/3.5
##########
docs/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,155 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
+
+This document tracks the implementation status of Apache Iceberg V3 Table Format features across different engines and components.
+
+## Overview
+
+Apache Iceberg V3 Table Format introduces several new features including new data types, row lineage, deletion vectors, default values, and table encryption. This document provides a comprehensive comparison of V3 feature implementation status across Apache Iceberg Core, Apache Spark, and Apache Flink.
+
+## V3 Features Implementation Status
+
+| **V3 Feature** | **Core** | **Spark** | **Flink** | **Notes** |
+|---|---|---|---|---|
+| **New Data Types** | | | | |
+| `unknown` type | ✅ **Implemented** | ⚠️ **Partially Implemented** | ✅ **Implemented** | Core: Full support. Spark: v4.0+ ✅, v3.4/v3.5 ❌. Flink: Full support. |
+| `timestamp_ns` (nanosecond timestamps) | ✅ **Implemented** | ❌ **Not Implemented** | ✅ **Implemented** | Core: Full support including timestamptz_ns. Spark: Not supported in any version. Flink: Full support including timestamptz_ns. |
+| `variant` type | ⚠️ **Partially Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Core: Avro ✅, Parquet ✅, ORC ❌. Spark/Flink: No support. |
+| `geometry` type | ❌ **Not Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Type definitions exist in API but no data processing implementation in any engine. |
+| `geography` type | ❌ **Not Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Type definitions exist in API but no data processing implementation in any engine. |
+| **Deletion Vectors** | | | | |
+| Binary Deletion vector support | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
+| **Default Values** | | | | |
+| Field default values | ✅ **Implemented** | ✅ **Implemented** | ✅ **Implemented** | Core: Full support for both initial-default and write-default. Spark: Full support across all versions. Flink: Full support across all versions. |
Review Comment:
For Spark there is reader/writer support but I don't think we've implemented the DDL integration to be able to create a table with default values, update schemas etc.
##########
docs/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,155 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
+
+This document tracks the implementation status of Apache Iceberg V3 Table Format features across different engines and components.
+
+## Overview
+
+Apache Iceberg V3 Table Format introduces several new features including new data types, row lineage, deletion vectors, default values, and table encryption. This document provides a comprehensive comparison of V3 feature implementation status across Apache Iceberg Core, Apache Spark, and Apache Flink.
+
+## V3 Features Implementation Status
+
+| **V3 Feature** | **Core** | **Spark** | **Flink** | **Notes** |
+|---|---|---|---|---|
+| **New Data Types** | | | | |
+| `unknown` type | ✅ **Implemented** | ⚠️ **Partially Implemented** | ✅ **Implemented** | Core: Full support. Spark: v4.0+ ✅, v3.4/v3.5 ❌. Flink: Full support. |
+| `timestamp_ns` (nanosecond timestamps) | ✅ **Implemented** | ❌ **Not Implemented** | ✅ **Implemented** | Core: Full support including timestamptz_ns. Spark: Not supported in any version. Flink: Full support including timestamptz_ns. |
+| `variant` type | ⚠️ **Partially Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Core: Avro ✅, Parquet ✅, ORC ❌. Spark/Flink: No support. |
+| `geometry` type | ❌ **Not Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Type definitions exist in API but no data processing implementation in any engine. |
+| `geography` type | ❌ **Not Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Type definitions exist in API but no data processing implementation in any engine. |
+| **Deletion Vectors** | | | | |
+| Binary Deletion vector support | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
+| **Default Values** | | | | |
+| Field default values | ✅ **Implemented** | ✅ **Implemented** | ✅ **Implemented** | Core: Full support for both initial-default and write-default. Spark: Full support across all versions. Flink: Full support across all versions. |
+| **Table Encryption** | | | | |
+| AES-GCM encryption | ✅ **Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Core: Full support. Spark/Flink: No support. |
+| **Multi-Argument Transforms** | | | | |
+| Z-order partitioning/sorting | ✅ **Implemented** | ✅ **Implemented** | ❌ **Not Implemented** | Core: Full support. Spark: Full support across all versions. Flink: No support. |
+| **Row Lineage** | | | | |
+| `_row_id` column | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
+| `_last_updated_sequence_number` | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
+
+## Implementation Status Summary
+
+### Apache Iceberg Core
+- **Status**: ✅ **Mostly Complete**
+- **Implemented**: All core V3 features including new data types (except geometry/geography data processing), row lineage, deletion vectors, default values, and table encryption
+- **Missing**: Actual data processing implementation for geometry and geography types (type definitions exist but no functional implementation)
+
+### Apache Spark
+- **Status**: ⚠️ **Partial Support** (v4.0+)
+- **Implemented**: Row lineage, deletion vectors, default values, unknown type, and basic V3 features
+- **Missing**: Variant type, geometry/geography types, table encryption, nanosecond timestamps
+
+### Apache Flink
+- **Status**: ⚠️ **Basic Support**
+- **Implemented**: Unknown type, nanosecond timestamps, default values, and basic V3 features
+- **Missing**: Row lineage, deletion vectors, variant type, geometry/geography types, table encryption
Review Comment:
There is an engine version dimension to these, should this be a table with engine version so it's a bit more obvious?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "talatuyarer (via GitHub)" <gi...@apache.org>.
talatuyarer commented on PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#issuecomment-3648708971
@kevinjqliu Did you have a chance to review ?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "talatuyarer (via GitHub)" <gi...@apache.org>.
talatuyarer commented on PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#issuecomment-3367468215
> I'm all for adding context for V3 implementation status, but I feel like we should include this with the rest of the [implementation status](https://github.com/apache/iceberg/blob/main/site/docs/status.md), not as a standalone.
Sounds good to me. let me move to implementation status page
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "talatuyarer (via GitHub)" <gi...@apache.org>.
talatuyarer commented on code in PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#discussion_r2392722503
##########
docs/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,155 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
+
+This document tracks the implementation status of Apache Iceberg V3 Table Format features across different engines and components.
+
+## Overview
+
+Apache Iceberg V3 Table Format introduces several new features including new data types, row lineage, deletion vectors, default values, and table encryption. This document provides a comprehensive comparison of V3 feature implementation status across Apache Iceberg Core, Apache Spark, and Apache Flink.
+
+## V3 Features Implementation Status
+
+| **V3 Feature** | **Core** | **Spark** | **Flink** | **Notes** |
+|---|---|---|---|---|
+| **New Data Types** | | | | |
+| `unknown` type | ✅ **Implemented** | ⚠️ **Partially Implemented** | ✅ **Implemented** | Core: Full support. Spark: v4.0+ ✅, v3.4/v3.5 ❌. Flink: Full support. |
+| `timestamp_ns` (nanosecond timestamps) | ✅ **Implemented** | ❌ **Not Implemented** | ✅ **Implemented** | Core: Full support including timestamptz_ns. Spark: Not supported in any version. Flink: Full support including timestamptz_ns. |
+| `variant` type | ⚠️ **Partially Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Core: Avro ✅, Parquet ✅, ORC ❌. Spark/Flink: No support. |
+| `geometry` type | ❌ **Not Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Type definitions exist in API but no data processing implementation in any engine. |
+| `geography` type | ❌ **Not Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Type definitions exist in API but no data processing implementation in any engine. |
+| **Deletion Vectors** | | | | |
+| Binary Deletion vector support | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
+| **Default Values** | | | | |
+| Field default values | ✅ **Implemented** | ✅ **Implemented** | ✅ **Implemented** | Core: Full support for both initial-default and write-default. Spark: Full support across all versions. Flink: Full support across all versions. |
+| **Table Encryption** | | | | |
+| AES-GCM encryption | ✅ **Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Core: Full support. Spark/Flink: No support. |
+| **Multi-Argument Transforms** | | | | |
+| Z-order partitioning/sorting | ✅ **Implemented** | ✅ **Implemented** | ❌ **Not Implemented** | Core: Full support. Spark: Full support across all versions. Flink: No support. |
+| **Row Lineage** | | | | |
+| `_row_id` column | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
+| `_last_updated_sequence_number` | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
+
+## Implementation Status Summary
+
+### Apache Iceberg Core
+- **Status**: ✅ **Mostly Complete**
+- **Implemented**: All core V3 features including new data types (except geometry/geography data processing), row lineage, deletion vectors, default values, and table encryption
+- **Missing**: Actual data processing implementation for geometry and geography types (type definitions exist but no functional implementation)
+
+### Apache Spark
+- **Status**: ⚠️ **Partial Support** (v4.0+)
+- **Implemented**: Row lineage, deletion vectors, default values, unknown type, and basic V3 features
+- **Missing**: Variant type, geometry/geography types, table encryption, nanosecond timestamps
+
+### Apache Flink
+- **Status**: ⚠️ **Basic Support**
+- **Implemented**: Unknown type, nanosecond timestamps, default values, and basic V3 features
+- **Missing**: Row lineage, deletion vectors, variant type, geometry/geography types, table encryption
+
+## File Format Support Details
+
+### Variant Type File Format Support in Core
+
+| **File Format** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Avro** | ✅ **Full Support** | Complete with `VariantConversion` and `VariantLogicalType` | Full read/write support |
+| **Parquet** | ✅ **Full Support** | Complete with `VariantWriterBuilder` and `VariantReaderBuilder` | Supports both serialized and shredded variants |
+| **ORC** | ❌ **Not Implemented** | Schema conversion exists but throws `UnsupportedOperationException` | No actual read/write implementation |
+
+### Geometry/Geography Type File Format Support
+
+| **File Format** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Avro** | ❌ **Not Implemented** | Type definitions exist but no data processing | No conversion or logical type support |
+| **Parquet** | ❌ **Not Implemented** | Type definitions exist but no data processing | No read/write implementation |
+| **ORC** | ❌ **Not Implemented** | Type definitions exist but no data processing | No read/write implementation |
+
+### Timestamp Nanoseconds Support
+
+| **Engine** | **timestamp_ns** (nanos) | **timestamptz_ns** (nanos) | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | ✅ **Full Support** | Complete support for all timestamp types and precisions |
+| **Spark** | ❌ **Not Implemented** | ❌ **Not Implemented** | Only supports microsecond precision timestamps |
+| **Flink** | ✅ **Full Support** | ✅ **Full Support** | Complete support for all timestamp types and precisions |
+
+### Unknown Type Support
+
+| **Engine** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | Complete type system and schema evolution support | Supports optional unknown fields, proper validation |
+| **Spark v4.0+** | ✅ **Full Support** | Complete type mapping to `NullType` | Full support with comprehensive tests |
+| **Spark v3.4/v3.5** | ❌ **Not Implemented** | Missing from type conversion | Throws "Cannot convert unknown type to Spark" error |
+| **Flink** | ✅ **Full Support** | Complete type mapping to `NullType` | Full support across all versions (v1.20, v2.0, v2.1) |
+
+### Multi-Argument Transforms Support
+
+| **Engine** | **Z-Order Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | Complete `Zorder` class implementation | Full support for multi-column transforms in partitioning and sorting |
+| **Spark** | ✅ **Full Support** | Complete `SparkZOrderFileRewriteRunner` implementation | Full support across all versions (v3.4, v3.5, v4.0) with file rewriting |
+| **Flink** | ❌ **Not Implemented** | No multi-argument transform support | Only single-argument transforms supported |
+
+### Default Values Support
+
+| **Engine** | **initial-default** | **write-default** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | ✅ **Full Support** | Complete support for both types with schema evolution |
+| **Spark** | ✅ **Full Support** | ✅ **Full Support** | Full support across all versions (v3.4, v3.5, v4.0) |
+| **Flink** | ✅ **Full Support** | ✅ **Full Support** | Full support across all versions (v1.20, v2.0, v2.1) |
+
+## Critical Missing Features
+
+### 1. Geometry and Geography Types
+- **Status**: ❌ **Not Implemented** across all engines
+- **Issue**: While type definitions exist in the API module, no engine has actual data processing implementation
+- **Impact**: Spatial data operations are not supported
+
+### 2. Table Encryption
+- **Status**: ❌ **Only Core supports it**
+- **Issue**: Spark and Flink don't support AES-GCM table encryption
+- **Impact**: Security features are limited to Core usage
+
+### 3. Variant Type
+- **Status**: ⚠️ **Partially Implemented in Core**
+- **Issue**: Core supports Avro and Parquet but not ORC; Spark and Flink have no support
+- **Impact**: Semi-structured data handling is limited to specific file formats
+
+### 4. Nanosecond Timestamps
+- **Status**: ❌ **Spark doesn't support them**
+- **Issue**: Spark connector doesn't support nanosecond precision timestamps
+- **Impact**: High-precision timestamp operations are not available in Spark
+
+## Recommendations for Users
Review Comment:
With this section I wanted to answer Should I migrate to V3 question ? Which I started receiving on multiple occasion
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "talatuyarer (via GitHub)" <gi...@apache.org>.
talatuyarer commented on code in PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#discussion_r2395227958
##########
docs/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,155 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
+
+This document tracks the implementation status of Apache Iceberg V3 Table Format features across different engines and components.
+
+## Overview
+
+Apache Iceberg V3 Table Format introduces several new features including new data types, row lineage, deletion vectors, default values, and table encryption. This document provides a comprehensive comparison of V3 feature implementation status across Apache Iceberg Core, Apache Spark, and Apache Flink.
+
+## V3 Features Implementation Status
+
+| **V3 Feature** | **Core** | **Spark** | **Flink** | **Notes** |
+|---|---|---|---|---|
+| **New Data Types** | | | | |
+| `unknown` type | ✅ **Implemented** | ⚠️ **Partially Implemented** | ✅ **Implemented** | Core: Full support. Spark: v4.0+ ✅, v3.4/v3.5 ❌. Flink: Full support. |
+| `timestamp_ns` (nanosecond timestamps) | ✅ **Implemented** | ❌ **Not Implemented** | ✅ **Implemented** | Core: Full support including timestamptz_ns. Spark: Not supported in any version. Flink: Full support including timestamptz_ns. |
+| `variant` type | ⚠️ **Partially Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Core: Avro ✅, Parquet ✅, ORC ❌. Spark/Flink: No support. |
Review Comment:
Thank you for the information 🙏
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "amogh-jahagirdar (via GitHub)" <gi...@apache.org>.
amogh-jahagirdar commented on code in PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#discussion_r2399113179
##########
site/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,173 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
+
+This document tracks the implementation status of Apache Iceberg V3 Table Format features across different engines and components.
+
+## Overview
+
+Apache Iceberg V3 Table Format introduces several new features including new data types, row lineage, deletion vectors, default values, and table encryption. This document provides a comprehensive comparison of V3 feature implementation status across Apache Iceberg Core, Apache Spark, and Apache Flink.
+
+## V3 Features Implementation Status
+
+| **V3 Feature** | **Core** | **Spark v3.4** | **Spark v3.5** | **Spark v4.0** | **Flink v1.20** | **Flink v2.0** | **Flink v2.1** |
+|---|---|---|---|---|---|---|---|
+| **New Data Types** | | | | | | | |
+| `unknown` type | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
+| `timestamp_ns` (nanosecond timestamps) | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
+| `variant` type | ⚠️ Avro supported, Parquet supported, ORC not supported | ⚠️ Read supported, Write shredded not supported | ⚠️ Read supported, Write shredded not supported | ⚠️ Read supported, Write shredded not supported | ❌ | ❌ | ❌ |
+| `geometry` type | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| `geography` type | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| **Deletion Vectors** | | | | | | | |
+| Binary Deletion vector support | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
+| **Default Values** | | | | | | | |
+| Field default values | ✅ | ⚠️ Read/Write supported, DDL not supported | ⚠️ Read/Write supported, DDL not supported | ⚠️ Read/Write supported, DDL not supported | ✅ | ✅ | ✅ |
+| **Table Encryption** | | | | | | | |
+| AES-GCM encryption | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| **Multi-Argument Transforms** | | | | | | | |
+| Z-order partitioning/sorting | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+| **Row Lineage** | | | | | | | |
+| `_row_id` column | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+| `_last_updated_sequence_number` | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+
+### Legend
+- ✅ **Fully Implemented**
+- ⚠️ **Partially Implemented**
+- ❌ **Not Implemented**
+
+### Implementation Notes
+
+**Core:**
+- `variant` type: Avro ✅, Parquet ✅, ORC ❌
+- `geometry`/`geography` types: Type definitions exist but no data processing implementation
+
+**Spark (all versions):**
+- `variant` type: Can read shredded and unshredded variant, missing writing shredded variant
+- Field default values: Reader/writer support ✅, DDL integration (CREATE TABLE, ALTER TABLE) ❌
+
+**Flink (all versions):**
+- Full support includes both `timestamp_ns` and `timestamptz_ns`
+
+## Implementation Status Summary
+
+### Apache Iceberg Core
+- **Status**: ✅ **Mostly Complete**
+- **Implemented**: All core V3 features including new data types (except geometry/geography data processing), row lineage, deletion vectors, default values, and table encryption
+- **Missing**: Actual data processing implementation for geometry and geography types (type definitions exist but no functional implementation)
+
+### Apache Spark
+- **Status**: ⚠️ **Partial Support** (v4.0+)
+- **Implemented**: Row lineage, deletion vectors, default values, unknown type, and basic V3 features
+- **Missing**: Variant type, geometry/geography types, table encryption, nanosecond timestamps
+
+### Apache Flink
+- **Status**: ⚠️ **Basic Support**
+- **Implemented**: Unknown type, nanosecond timestamps, default values, and basic V3 features
+- **Missing**: Row lineage, deletion vectors, variant type, geometry/geography types, table encryption
+
+## File Format Support Details
+
+### Variant Type File Format Support in Core
+
+| **File Format** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Avro** | ✅ **Full Support** | Complete with `VariantConversion` and `VariantLogicalType` | Full read/write support |
+| **Parquet** | ✅ **Full Support** | Complete with `VariantWriterBuilder` and `VariantReaderBuilder` | Supports both serialized and shredded variants |
+| **ORC** | ❌ **Not Implemented** | Schema conversion exists but throws `UnsupportedOperationException` | No actual read/write implementation |
+
+### Geometry/Geography Type File Format Support
+
+| **File Format** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Avro** | ❌ **Not Implemented** | Type definitions exist but no data processing | No conversion or logical type support |
+| **Parquet** | ❌ **Not Implemented** | Type definitions exist but no data processing | No read/write implementation |
+| **ORC** | ❌ **Not Implemented** | Type definitions exist but no data processing | No read/write implementation |
+
+### Timestamp Nanoseconds Support
+
+| **Engine** | **timestamp_ns** (nanos) | **timestamptz_ns** (nanos) | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | ✅ **Full Support** | Complete support for all timestamp types and precisions |
+| **Spark** | ❌ **Not Implemented** | ❌ **Not Implemented** | Only supports microsecond precision timestamps |
+| **Flink** | ✅ **Full Support** | ✅ **Full Support** | Complete support for all timestamp types and precisions |
+
+### Unknown Type Support
+
+| **Engine** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | Complete type system and schema evolution support | Supports optional unknown fields, proper validation |
+| **Spark v4.0+** | ✅ **Full Support** | Complete type mapping to `NullType` | Full support with comprehensive tests |
+| **Spark v3.4/v3.5** | ❌ **Not Implemented** | Missing from type conversion | Throws "Cannot convert unknown type to Spark" error |
+| **Flink** | ✅ **Full Support** | Complete type mapping to `NullType` | Full support across all versions (v1.20, v2.0, v2.1) |
+
+### Multi-Argument Transforms Support
+
+| **Engine** | **Z-Order Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | Complete `Zorder` class implementation | Full support for multi-column transforms in partitioning and sorting |
+| **Spark** | ✅ **Full Support** | Complete `SparkZOrderFileRewriteRunner` implementation | Full support across all versions (v3.4, v3.5, v4.0) with file rewriting |
+| **Flink** | ❌ **Not Implemented** | No multi-argument transform support | Only single-argument transforms supported |
+
+### Default Values Support
+
+| **Engine** | **initial-default** | **write-default** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | ✅ **Full Support** | Complete support for both types with schema evolution |
+| **Spark** | ✅ **Full Support** | ✅ **Full Support** | Full support across all versions (v3.4, v3.5, v4.0) |
+| **Flink** | ✅ **Full Support** | ✅ **Full Support** | Full support across all versions (v1.20, v2.0, v2.1) |
+
+## Critical Missing Features
+
+### 1. Geometry and Geography Types
+- **Status**: ❌ **Not Implemented** across all engines
+- **Issue**: While type definitions exist in the API module, no engine has actual data processing implementation
+- **Impact**: Spatial data operations are not supported
+
+### 2. Table Encryption
+- **Status**: ❌ **Only Core supports it**
+- **Issue**: Spark and Flink don't support AES-GCM table encryption
+- **Impact**: Security features are limited to Core usage
+
+### 3. Variant Type
+- **Status**: ⚠️ **Partially Implemented in Core**
+- **Issue**: Core supports Avro and Parquet but not ORC; Spark and Flink have no support
+- **Impact**: Semi-structured data handling is limited to specific file formats
+
+### 4. Nanosecond Timestamps
+- **Status**: ❌ **Spark doesn't support them**
+- **Issue**: Spark connector doesn't support nanosecond precision timestamps
+- **Impact**: High-precision timestamp operations are not available in Spark
+
+## Recommendations for Users
Review Comment:
I still feel like we should let users just look at the "V3 feature implementation status" table above instead of the project giving recommendations like this. It's also another part of the doc that we'll need to update as support gets added (e.g. there's an open PR out for Flink DV write support right now), so there's going to be a fair amount of churn in this section.
We can avoid that by just having that single table above.
##########
site/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,173 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
+
+This document tracks the implementation status of Apache Iceberg V3 Table Format features across different engines and components.
+
+## Overview
+
+Apache Iceberg V3 Table Format introduces several new features including new data types, row lineage, deletion vectors, default values, and table encryption. This document provides a comprehensive comparison of V3 feature implementation status across Apache Iceberg Core, Apache Spark, and Apache Flink.
+
+## V3 Features Implementation Status
+
+| **V3 Feature** | **Core** | **Spark v3.4** | **Spark v3.5** | **Spark v4.0** | **Flink v1.20** | **Flink v2.0** | **Flink v2.1** |
+|---|---|---|---|---|---|---|---|
+| **New Data Types** | | | | | | | |
+| `unknown` type | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
+| `timestamp_ns` (nanosecond timestamps) | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
+| `variant` type | ⚠️ Avro supported, Parquet supported, ORC not supported | ⚠️ Read supported, Write shredded not supported | ⚠️ Read supported, Write shredded not supported | ⚠️ Read supported, Write shredded not supported | ❌ | ❌ | ❌ |
+| `geometry` type | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| `geography` type | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| **Deletion Vectors** | | | | | | | |
+| Binary Deletion vector support | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
+| **Default Values** | | | | | | | |
+| Field default values | ✅ | ⚠️ Read/Write supported, DDL not supported | ⚠️ Read/Write supported, DDL not supported | ⚠️ Read/Write supported, DDL not supported | ✅ | ✅ | ✅ |
+| **Table Encryption** | | | | | | | |
+| AES-GCM encryption | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| **Multi-Argument Transforms** | | | | | | | |
+| Z-order partitioning/sorting | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+| **Row Lineage** | | | | | | | |
+| `_row_id` column | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+| `_last_updated_sequence_number` | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
Review Comment:
I feel like row lineage should just be a single row. Separating row_id/seq number columns doesn't make too much sense since handling both is required to even support row lineage in general.
##########
site/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,173 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
+
+This document tracks the implementation status of Apache Iceberg V3 Table Format features across different engines and components.
+
+## Overview
+
+Apache Iceberg V3 Table Format introduces several new features including new data types, row lineage, deletion vectors, default values, and table encryption. This document provides a comprehensive comparison of V3 feature implementation status across Apache Iceberg Core, Apache Spark, and Apache Flink.
+
+## V3 Features Implementation Status
+
+| **V3 Feature** | **Core** | **Spark v3.4** | **Spark v3.5** | **Spark v4.0** | **Flink v1.20** | **Flink v2.0** | **Flink v2.1** |
+|---|---|---|---|---|---|---|---|
+| **New Data Types** | | | | | | | |
+| `unknown` type | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
+| `timestamp_ns` (nanosecond timestamps) | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
+| `variant` type | ⚠️ Avro supported, Parquet supported, ORC not supported | ⚠️ Read supported, Write shredded not supported | ⚠️ Read supported, Write shredded not supported | ⚠️ Read supported, Write shredded not supported | ❌ | ❌ | ❌ |
+| `geometry` type | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| `geography` type | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| **Deletion Vectors** | | | | | | | |
+| Binary Deletion vector support | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
+| **Default Values** | | | | | | | |
+| Field default values | ✅ | ⚠️ Read/Write supported, DDL not supported | ⚠️ Read/Write supported, DDL not supported | ⚠️ Read/Write supported, DDL not supported | ✅ | ✅ | ✅ |
+| **Table Encryption** | | | | | | | |
+| AES-GCM encryption | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| **Multi-Argument Transforms** | | | | | | | |
+| Z-order partitioning/sorting | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+| **Row Lineage** | | | | | | | |
+| `_row_id` column | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+| `_last_updated_sequence_number` | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+
+### Legend
+- ✅ **Fully Implemented**
+- ⚠️ **Partially Implemented**
+- ❌ **Not Implemented**
+
+### Implementation Notes
+
+**Core:**
+- `variant` type: Avro ✅, Parquet ✅, ORC ❌
+- `geometry`/`geography` types: Type definitions exist but no data processing implementation
+
+**Spark (all versions):**
+- `variant` type: Can read shredded and unshredded variant, missing writing shredded variant
+- Field default values: Reader/writer support ✅, DDL integration (CREATE TABLE, ALTER TABLE) ❌
+
+**Flink (all versions):**
+- Full support includes both `timestamp_ns` and `timestamptz_ns`
+
+## Implementation Status Summary
+
+### Apache Iceberg Core
+- **Status**: ✅ **Mostly Complete**
+- **Implemented**: All core V3 features including new data types (except geometry/geography data processing), row lineage, deletion vectors, default values, and table encryption
+- **Missing**: Actual data processing implementation for geometry and geography types (type definitions exist but no functional implementation)
+
+### Apache Spark
+- **Status**: ⚠️ **Partial Support** (v4.0+)
+- **Implemented**: Row lineage, deletion vectors, default values, unknown type, and basic V3 features
+- **Missing**: Variant type, geometry/geography types, table encryption, nanosecond timestamps
+
+### Apache Flink
+- **Status**: ⚠️ **Basic Support**
+- **Implemented**: Unknown type, nanosecond timestamps, default values, and basic V3 features
+- **Missing**: Row lineage, deletion vectors, variant type, geometry/geography types, table encryption
+
+## File Format Support Details
+
+### Variant Type File Format Support in Core
+
+| **File Format** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Avro** | ✅ **Full Support** | Complete with `VariantConversion` and `VariantLogicalType` | Full read/write support |
+| **Parquet** | ✅ **Full Support** | Complete with `VariantWriterBuilder` and `VariantReaderBuilder` | Supports both serialized and shredded variants |
+| **ORC** | ❌ **Not Implemented** | Schema conversion exists but throws `UnsupportedOperationException` | No actual read/write implementation |
+
+### Geometry/Geography Type File Format Support
+
+| **File Format** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Avro** | ❌ **Not Implemented** | Type definitions exist but no data processing | No conversion or logical type support |
+| **Parquet** | ❌ **Not Implemented** | Type definitions exist but no data processing | No read/write implementation |
+| **ORC** | ❌ **Not Implemented** | Type definitions exist but no data processing | No read/write implementation |
+
+### Timestamp Nanoseconds Support
+
+| **Engine** | **timestamp_ns** (nanos) | **timestamptz_ns** (nanos) | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | ✅ **Full Support** | Complete support for all timestamp types and precisions |
+| **Spark** | ❌ **Not Implemented** | ❌ **Not Implemented** | Only supports microsecond precision timestamps |
+| **Flink** | ✅ **Full Support** | ✅ **Full Support** | Complete support for all timestamp types and precisions |
+
+### Unknown Type Support
+
+| **Engine** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | Complete type system and schema evolution support | Supports optional unknown fields, proper validation |
+| **Spark v4.0+** | ✅ **Full Support** | Complete type mapping to `NullType` | Full support with comprehensive tests |
+| **Spark v3.4/v3.5** | ❌ **Not Implemented** | Missing from type conversion | Throws "Cannot convert unknown type to Spark" error |
+| **Flink** | ✅ **Full Support** | Complete type mapping to `NullType` | Full support across all versions (v1.20, v2.0, v2.1) |
+
+### Multi-Argument Transforms Support
+
+| **Engine** | **Z-Order Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | Complete `Zorder` class implementation | Full support for multi-column transforms in partitioning and sorting |
+| **Spark** | ✅ **Full Support** | Complete `SparkZOrderFileRewriteRunner` implementation | Full support across all versions (v3.4, v3.5, v4.0) with file rewriting |
+| **Flink** | ❌ **Not Implemented** | No multi-argument transform support | Only single-argument transforms supported |
+
+### Default Values Support
+
+| **Engine** | **initial-default** | **write-default** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | ✅ **Full Support** | Complete support for both types with schema evolution |
+| **Spark** | ✅ **Full Support** | ✅ **Full Support** | Full support across all versions (v3.4, v3.5, v4.0) |
Review Comment:
"Full read/write support ..." but no DDL support at the moment.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "talatuyarer (via GitHub)" <gi...@apache.org>.
talatuyarer commented on code in PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#discussion_r2392726989
##########
docs/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,155 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
+
+This document tracks the implementation status of Apache Iceberg V3 Table Format features across different engines and components.
+
+## Overview
+
+Apache Iceberg V3 Table Format introduces several new features including new data types, row lineage, deletion vectors, default values, and table encryption. This document provides a comprehensive comparison of V3 feature implementation status across Apache Iceberg Core, Apache Spark, and Apache Flink.
+
+## V3 Features Implementation Status
+
+| **V3 Feature** | **Core** | **Spark** | **Flink** | **Notes** |
+|---|---|---|---|---|
+| **New Data Types** | | | | |
+| `unknown` type | ✅ **Implemented** | ⚠️ **Partially Implemented** | ✅ **Implemented** | Core: Full support. Spark: v4.0+ ✅, v3.4/v3.5 ❌. Flink: Full support. |
+| `timestamp_ns` (nanosecond timestamps) | ✅ **Implemented** | ❌ **Not Implemented** | ✅ **Implemented** | Core: Full support including timestamptz_ns. Spark: Not supported in any version. Flink: Full support including timestamptz_ns. |
+| `variant` type | ⚠️ **Partially Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Core: Avro ✅, Parquet ✅, ORC ❌. Spark/Flink: No support. |
+| `geometry` type | ❌ **Not Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Type definitions exist in API but no data processing implementation in any engine. |
+| `geography` type | ❌ **Not Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Type definitions exist in API but no data processing implementation in any engine. |
+| **Deletion Vectors** | | | | |
+| Binary Deletion vector support | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
+| **Default Values** | | | | |
+| Field default values | ✅ **Implemented** | ✅ **Implemented** | ✅ **Implemented** | Core: Full support for both initial-default and write-default. Spark: Full support across all versions. Flink: Full support across all versions. |
+| **Table Encryption** | | | | |
+| AES-GCM encryption | ✅ **Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Core: Full support. Spark/Flink: No support. |
+| **Multi-Argument Transforms** | | | | |
+| Z-order partitioning/sorting | ✅ **Implemented** | ✅ **Implemented** | ❌ **Not Implemented** | Core: Full support. Spark: Full support across all versions. Flink: No support. |
+| **Row Lineage** | | | | |
+| `_row_id` column | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
+| `_last_updated_sequence_number` | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
Review Comment:
Thank you I will update this
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "talatuyarer (via GitHub)" <gi...@apache.org>.
talatuyarer commented on PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#issuecomment-3413569451
@stevenzwu @danielcweeks @amogh-jahagirdar If you guys are ok about current doc. Can we merge this ?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] closed pull request #14218: [DOC] Add V3 Table Format Adoption Progress Documentation
URL: https://github.com/apache/iceberg/pull/14218
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#issuecomment-3775551506
This pull request has been closed due to lack of activity. This is not a judgement on the merit of the PR in any way. It is just a way of keeping the PR queue manageable. If you think that is incorrect, or the pull request requires review, you can revive the PR at any time.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "talatuyarer (via GitHub)" <gi...@apache.org>.
talatuyarer commented on code in PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#discussion_r2409031365
##########
site/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,173 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
+
+This document tracks the implementation status of Apache Iceberg V3 Table Format features across different engines and components.
+
+## Overview
+
+Apache Iceberg V3 Table Format introduces several new features including new data types, row lineage, deletion vectors, default values, and table encryption. This document provides a comprehensive comparison of V3 feature implementation status across Apache Iceberg Core, Apache Spark, and Apache Flink.
+
+## V3 Features Implementation Status
+
+| **V3 Feature** | **Core** | **Spark v3.4** | **Spark v3.5** | **Spark v4.0** | **Flink v1.20** | **Flink v2.0** | **Flink v2.1** |
+|---|---|---|---|---|---|---|---|
+| **New Data Types** | | | | | | | |
+| `unknown` type | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
+| `timestamp_ns` (nanosecond timestamps) | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
+| `variant` type | ⚠️ Avro supported, Parquet supported, ORC not supported | ⚠️ Read supported, Write shredded not supported | ⚠️ Read supported, Write shredded not supported | ⚠️ Read supported, Write shredded not supported | ❌ | ❌ | ❌ |
+| `geometry` type | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| `geography` type | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| **Deletion Vectors** | | | | | | | |
+| Binary Deletion vector support | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
+| **Default Values** | | | | | | | |
+| Field default values | ✅ | ⚠️ Read/Write supported, DDL not supported | ⚠️ Read/Write supported, DDL not supported | ⚠️ Read/Write supported, DDL not supported | ✅ | ✅ | ✅ |
+| **Table Encryption** | | | | | | | |
+| AES-GCM encryption | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| **Multi-Argument Transforms** | | | | | | | |
+| Z-order partitioning/sorting | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+| **Row Lineage** | | | | | | | |
+| `_row_id` column | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+| `_last_updated_sequence_number` | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+
+### Legend
+- ✅ **Fully Implemented**
+- ⚠️ **Partially Implemented**
+- ❌ **Not Implemented**
+
+### Implementation Notes
+
+**Core:**
+- `variant` type: Avro ✅, Parquet ✅, ORC ❌
+- `geometry`/`geography` types: Type definitions exist but no data processing implementation
+
+**Spark (all versions):**
+- `variant` type: Can read shredded and unshredded variant, missing writing shredded variant
+- Field default values: Reader/writer support ✅, DDL integration (CREATE TABLE, ALTER TABLE) ❌
+
+**Flink (all versions):**
+- Full support includes both `timestamp_ns` and `timestamptz_ns`
+
+## Implementation Status Summary
+
+### Apache Iceberg Core
+- **Status**: ✅ **Mostly Complete**
+- **Implemented**: All core V3 features including new data types (except geometry/geography data processing), row lineage, deletion vectors, default values, and table encryption
+- **Missing**: Actual data processing implementation for geometry and geography types (type definitions exist but no functional implementation)
+
+### Apache Spark
+- **Status**: ⚠️ **Partial Support** (v4.0+)
+- **Implemented**: Row lineage, deletion vectors, default values, unknown type, and basic V3 features
+- **Missing**: Variant type, geometry/geography types, table encryption, nanosecond timestamps
+
+### Apache Flink
+- **Status**: ⚠️ **Basic Support**
+- **Implemented**: Unknown type, nanosecond timestamps, default values, and basic V3 features
+- **Missing**: Row lineage, deletion vectors, variant type, geometry/geography types, table encryption
+
+## File Format Support Details
+
+### Variant Type File Format Support in Core
+
+| **File Format** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Avro** | ✅ **Full Support** | Complete with `VariantConversion` and `VariantLogicalType` | Full read/write support |
+| **Parquet** | ✅ **Full Support** | Complete with `VariantWriterBuilder` and `VariantReaderBuilder` | Supports both serialized and shredded variants |
+| **ORC** | ❌ **Not Implemented** | Schema conversion exists but throws `UnsupportedOperationException` | No actual read/write implementation |
+
+### Geometry/Geography Type File Format Support
+
+| **File Format** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Avro** | ❌ **Not Implemented** | Type definitions exist but no data processing | No conversion or logical type support |
+| **Parquet** | ❌ **Not Implemented** | Type definitions exist but no data processing | No read/write implementation |
+| **ORC** | ❌ **Not Implemented** | Type definitions exist but no data processing | No read/write implementation |
+
+### Timestamp Nanoseconds Support
+
+| **Engine** | **timestamp_ns** (nanos) | **timestamptz_ns** (nanos) | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | ✅ **Full Support** | Complete support for all timestamp types and precisions |
+| **Spark** | ❌ **Not Implemented** | ❌ **Not Implemented** | Only supports microsecond precision timestamps |
+| **Flink** | ✅ **Full Support** | ✅ **Full Support** | Complete support for all timestamp types and precisions |
+
+### Unknown Type Support
+
+| **Engine** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | Complete type system and schema evolution support | Supports optional unknown fields, proper validation |
+| **Spark v4.0+** | ✅ **Full Support** | Complete type mapping to `NullType` | Full support with comprehensive tests |
+| **Spark v3.4/v3.5** | ❌ **Not Implemented** | Missing from type conversion | Throws "Cannot convert unknown type to Spark" error |
+| **Flink** | ✅ **Full Support** | Complete type mapping to `NullType` | Full support across all versions (v1.20, v2.0, v2.1) |
+
+### Multi-Argument Transforms Support
+
+| **Engine** | **Z-Order Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | Complete `Zorder` class implementation | Full support for multi-column transforms in partitioning and sorting |
+| **Spark** | ✅ **Full Support** | Complete `SparkZOrderFileRewriteRunner` implementation | Full support across all versions (v3.4, v3.5, v4.0) with file rewriting |
+| **Flink** | ❌ **Not Implemented** | No multi-argument transform support | Only single-argument transforms supported |
+
+### Default Values Support
+
+| **Engine** | **initial-default** | **write-default** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | ✅ **Full Support** | Complete support for both types with schema evolution |
+| **Spark** | ✅ **Full Support** | ✅ **Full Support** | Full support across all versions (v3.4, v3.5, v4.0) |
+| **Flink** | ✅ **Full Support** | ✅ **Full Support** | Full support across all versions (v1.20, v2.0, v2.1) |
+
+## Critical Missing Features
+
+### 1. Geometry and Geography Types
+- **Status**: ❌ **Not Implemented** across all engines
+- **Issue**: While type definitions exist in the API module, no engine has actual data processing implementation
+- **Impact**: Spatial data operations are not supported
+
+### 2. Table Encryption
+- **Status**: ❌ **Only Core supports it**
+- **Issue**: Spark and Flink don't support AES-GCM table encryption
+- **Impact**: Security features are limited to Core usage
+
+### 3. Variant Type
+- **Status**: ⚠️ **Partially Implemented in Core**
+- **Issue**: Core supports Avro and Parquet but not ORC; Spark and Flink have no support
+- **Impact**: Semi-structured data handling is limited to specific file formats
+
+### 4. Nanosecond Timestamps
+- **Status**: ❌ **Spark doesn't support them**
+- **Issue**: Spark connector doesn't support nanosecond precision timestamps
+- **Impact**: High-precision timestamp operations are not available in Spark
+
+## Recommendations for Users
Review Comment:
Sounds good!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "talatuyarer (via GitHub)" <gi...@apache.org>.
talatuyarer commented on code in PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#discussion_r2392715327
##########
docs/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,155 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
Review Comment:
Once we set initial ground it can be easy to update. I plan to track closely if contributors do not update
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "aihuaxu (via GitHub)" <gi...@apache.org>.
aihuaxu commented on code in PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#discussion_r2393491291
##########
docs/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,155 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
+
+This document tracks the implementation status of Apache Iceberg V3 Table Format features across different engines and components.
+
+## Overview
+
+Apache Iceberg V3 Table Format introduces several new features including new data types, row lineage, deletion vectors, default values, and table encryption. This document provides a comprehensive comparison of V3 feature implementation status across Apache Iceberg Core, Apache Spark, and Apache Flink.
+
+## V3 Features Implementation Status
+
+| **V3 Feature** | **Core** | **Spark** | **Flink** | **Notes** |
+|---|---|---|---|---|
+| **New Data Types** | | | | |
+| `unknown` type | ✅ **Implemented** | ⚠️ **Partially Implemented** | ✅ **Implemented** | Core: Full support. Spark: v4.0+ ✅, v3.4/v3.5 ❌. Flink: Full support. |
+| `timestamp_ns` (nanosecond timestamps) | ✅ **Implemented** | ❌ **Not Implemented** | ✅ **Implemented** | Core: Full support including timestamptz_ns. Spark: Not supported in any version. Flink: Full support including timestamptz_ns. |
+| `variant` type | ⚠️ **Partially Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Core: Avro ✅, Parquet ✅, ORC ❌. Spark/Flink: No support. |
Review Comment:
For variant type, Spark is Partially Implemented - we are missing writing shredded variant but we can read both shredded and unshredded variant in Spark.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "talatuyarer (via GitHub)" <gi...@apache.org>.
talatuyarer commented on code in PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#discussion_r2409030986
##########
site/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,173 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
+
+This document tracks the implementation status of Apache Iceberg V3 Table Format features across different engines and components.
+
+## Overview
+
+Apache Iceberg V3 Table Format introduces several new features including new data types, row lineage, deletion vectors, default values, and table encryption. This document provides a comprehensive comparison of V3 feature implementation status across Apache Iceberg Core, Apache Spark, and Apache Flink.
+
+## V3 Features Implementation Status
+
+| **V3 Feature** | **Core** | **Spark v3.4** | **Spark v3.5** | **Spark v4.0** | **Flink v1.20** | **Flink v2.0** | **Flink v2.1** |
+|---|---|---|---|---|---|---|---|
+| **New Data Types** | | | | | | | |
+| `unknown` type | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
+| `timestamp_ns` (nanosecond timestamps) | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
+| `variant` type | ⚠️ Avro supported, Parquet supported, ORC not supported | ⚠️ Read supported, Write shredded not supported | ⚠️ Read supported, Write shredded not supported | ⚠️ Read supported, Write shredded not supported | ❌ | ❌ | ❌ |
+| `geometry` type | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| `geography` type | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| **Deletion Vectors** | | | | | | | |
+| Binary Deletion vector support | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
+| **Default Values** | | | | | | | |
+| Field default values | ✅ | ⚠️ Read/Write supported, DDL not supported | ⚠️ Read/Write supported, DDL not supported | ⚠️ Read/Write supported, DDL not supported | ✅ | ✅ | ✅ |
+| **Table Encryption** | | | | | | | |
+| AES-GCM encryption | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| **Multi-Argument Transforms** | | | | | | | |
+| Z-order partitioning/sorting | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+| **Row Lineage** | | | | | | | |
+| `_row_id` column | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+| `_last_updated_sequence_number` | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
Review Comment:
Done
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "talatuyarer (via GitHub)" <gi...@apache.org>.
talatuyarer commented on PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#issuecomment-3350380235
@aihuaxu Could you help me to reflect correct Variant support ?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "stevenzwu (via GitHub)" <gi...@apache.org>.
stevenzwu commented on PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#issuecomment-3369207826
We also need to clarify what this is for: users or contributors. the[ implementation status](https://github.com/apache/iceberg/blob/main/site/docs/status.md) page was meant for users with coarse grained information. If we want to move this content to there, this PR probably contains too much details.
I am also a little concerned about future updates of the V3 impl status as we continue to make progress. It is a bit overhead to update the status with PRs. wondering if google doc is a better form for the detailed status information?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#issuecomment-3747121072
This pull request has been marked as stale due to 30 days of inactivity. It will be closed in 1 week if no further activity occurs. If you think that’s incorrect or this pull request requires a review, please simply write any comment. If closed, you can revive the PR at any time and @mention a reviewer or discuss it on the dev@iceberg.apache.org list. Thank you for your contributions.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "talatuyarer (via GitHub)" <gi...@apache.org>.
talatuyarer commented on code in PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#discussion_r2392728800
##########
docs/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,155 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
+
+This document tracks the implementation status of Apache Iceberg V3 Table Format features across different engines and components.
+
+## Overview
+
+Apache Iceberg V3 Table Format introduces several new features including new data types, row lineage, deletion vectors, default values, and table encryption. This document provides a comprehensive comparison of V3 feature implementation status across Apache Iceberg Core, Apache Spark, and Apache Flink.
+
+## V3 Features Implementation Status
+
+| **V3 Feature** | **Core** | **Spark** | **Flink** | **Notes** |
+|---|---|---|---|---|
+| **New Data Types** | | | | |
+| `unknown` type | ✅ **Implemented** | ⚠️ **Partially Implemented** | ✅ **Implemented** | Core: Full support. Spark: v4.0+ ✅, v3.4/v3.5 ❌. Flink: Full support. |
+| `timestamp_ns` (nanosecond timestamps) | ✅ **Implemented** | ❌ **Not Implemented** | ✅ **Implemented** | Core: Full support including timestamptz_ns. Spark: Not supported in any version. Flink: Full support including timestamptz_ns. |
+| `variant` type | ⚠️ **Partially Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Core: Avro ✅, Parquet ✅, ORC ❌. Spark/Flink: No support. |
+| `geometry` type | ❌ **Not Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Type definitions exist in API but no data processing implementation in any engine. |
+| `geography` type | ❌ **Not Implemented** | ❌ **Not Implemented** | ❌ **Not Implemented** | Type definitions exist in API but no data processing implementation in any engine. |
+| **Deletion Vectors** | | | | |
+| Binary Deletion vector support | ✅ **Implemented** | ✅ **Implemented** (v4.0) | ❌ **Not Implemented** | Core: Full support. Spark: Added in v4.0. Flink: No support. |
+| **Default Values** | | | | |
+| Field default values | ✅ **Implemented** | ✅ **Implemented** | ✅ **Implemented** | Core: Full support for both initial-default and write-default. Spark: Full support across all versions. Flink: Full support across all versions. |
Review Comment:
Thank you this is information that I am looking for. Update will come soon
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#issuecomment-3639473832
This pull request has been marked as stale due to 30 days of inactivity. It will be closed in 1 week if no further activity occurs. If you think that’s incorrect or this pull request requires a review, please simply write any comment. If closed, you can revive the PR at any time and @mention a reviewer or discuss it on the dev@iceberg.apache.org list. Thank you for your contributions.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "danielcweeks (via GitHub)" <gi...@apache.org>.
danielcweeks commented on PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#issuecomment-3366455049
I'm all for adding context for V3 implementation status, but I feel like we should include this with the rest of the [implementation status](https://github.com/apache/iceberg/blob/main/site/docs/status.md), not as a standalone.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] [DOC] Add V3 Table Format Adoption Progress Documentation [iceberg]
Posted by "talatuyarer (via GitHub)" <gi...@apache.org>.
talatuyarer commented on code in PR #14218:
URL: https://github.com/apache/iceberg/pull/14218#discussion_r2409031620
##########
site/docs/v3-adoption-progress.md:
##########
@@ -0,0 +1,173 @@
+---
+title: "Apache Iceberg V3 Table Format Adoption Progress"
+---
+<!--
+ - 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.
+ -->
+
+# Apache Iceberg V3 Table Format Adoption Progress
+
+This document tracks the implementation status of Apache Iceberg V3 Table Format features across different engines and components.
+
+## Overview
+
+Apache Iceberg V3 Table Format introduces several new features including new data types, row lineage, deletion vectors, default values, and table encryption. This document provides a comprehensive comparison of V3 feature implementation status across Apache Iceberg Core, Apache Spark, and Apache Flink.
+
+## V3 Features Implementation Status
+
+| **V3 Feature** | **Core** | **Spark v3.4** | **Spark v3.5** | **Spark v4.0** | **Flink v1.20** | **Flink v2.0** | **Flink v2.1** |
+|---|---|---|---|---|---|---|---|
+| **New Data Types** | | | | | | | |
+| `unknown` type | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
+| `timestamp_ns` (nanosecond timestamps) | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
+| `variant` type | ⚠️ Avro supported, Parquet supported, ORC not supported | ⚠️ Read supported, Write shredded not supported | ⚠️ Read supported, Write shredded not supported | ⚠️ Read supported, Write shredded not supported | ❌ | ❌ | ❌ |
+| `geometry` type | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| `geography` type | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| **Deletion Vectors** | | | | | | | |
+| Binary Deletion vector support | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
+| **Default Values** | | | | | | | |
+| Field default values | ✅ | ⚠️ Read/Write supported, DDL not supported | ⚠️ Read/Write supported, DDL not supported | ⚠️ Read/Write supported, DDL not supported | ✅ | ✅ | ✅ |
+| **Table Encryption** | | | | | | | |
+| AES-GCM encryption | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
+| **Multi-Argument Transforms** | | | | | | | |
+| Z-order partitioning/sorting | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+| **Row Lineage** | | | | | | | |
+| `_row_id` column | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+| `_last_updated_sequence_number` | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+
+### Legend
+- ✅ **Fully Implemented**
+- ⚠️ **Partially Implemented**
+- ❌ **Not Implemented**
+
+### Implementation Notes
+
+**Core:**
+- `variant` type: Avro ✅, Parquet ✅, ORC ❌
+- `geometry`/`geography` types: Type definitions exist but no data processing implementation
+
+**Spark (all versions):**
+- `variant` type: Can read shredded and unshredded variant, missing writing shredded variant
+- Field default values: Reader/writer support ✅, DDL integration (CREATE TABLE, ALTER TABLE) ❌
+
+**Flink (all versions):**
+- Full support includes both `timestamp_ns` and `timestamptz_ns`
+
+## Implementation Status Summary
+
+### Apache Iceberg Core
+- **Status**: ✅ **Mostly Complete**
+- **Implemented**: All core V3 features including new data types (except geometry/geography data processing), row lineage, deletion vectors, default values, and table encryption
+- **Missing**: Actual data processing implementation for geometry and geography types (type definitions exist but no functional implementation)
+
+### Apache Spark
+- **Status**: ⚠️ **Partial Support** (v4.0+)
+- **Implemented**: Row lineage, deletion vectors, default values, unknown type, and basic V3 features
+- **Missing**: Variant type, geometry/geography types, table encryption, nanosecond timestamps
+
+### Apache Flink
+- **Status**: ⚠️ **Basic Support**
+- **Implemented**: Unknown type, nanosecond timestamps, default values, and basic V3 features
+- **Missing**: Row lineage, deletion vectors, variant type, geometry/geography types, table encryption
+
+## File Format Support Details
+
+### Variant Type File Format Support in Core
+
+| **File Format** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Avro** | ✅ **Full Support** | Complete with `VariantConversion` and `VariantLogicalType` | Full read/write support |
+| **Parquet** | ✅ **Full Support** | Complete with `VariantWriterBuilder` and `VariantReaderBuilder` | Supports both serialized and shredded variants |
+| **ORC** | ❌ **Not Implemented** | Schema conversion exists but throws `UnsupportedOperationException` | No actual read/write implementation |
+
+### Geometry/Geography Type File Format Support
+
+| **File Format** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Avro** | ❌ **Not Implemented** | Type definitions exist but no data processing | No conversion or logical type support |
+| **Parquet** | ❌ **Not Implemented** | Type definitions exist but no data processing | No read/write implementation |
+| **ORC** | ❌ **Not Implemented** | Type definitions exist but no data processing | No read/write implementation |
+
+### Timestamp Nanoseconds Support
+
+| **Engine** | **timestamp_ns** (nanos) | **timestamptz_ns** (nanos) | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | ✅ **Full Support** | Complete support for all timestamp types and precisions |
+| **Spark** | ❌ **Not Implemented** | ❌ **Not Implemented** | Only supports microsecond precision timestamps |
+| **Flink** | ✅ **Full Support** | ✅ **Full Support** | Complete support for all timestamp types and precisions |
+
+### Unknown Type Support
+
+| **Engine** | **Core Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | Complete type system and schema evolution support | Supports optional unknown fields, proper validation |
+| **Spark v4.0+** | ✅ **Full Support** | Complete type mapping to `NullType` | Full support with comprehensive tests |
+| **Spark v3.4/v3.5** | ❌ **Not Implemented** | Missing from type conversion | Throws "Cannot convert unknown type to Spark" error |
+| **Flink** | ✅ **Full Support** | Complete type mapping to `NullType` | Full support across all versions (v1.20, v2.0, v2.1) |
+
+### Multi-Argument Transforms Support
+
+| **Engine** | **Z-Order Support** | **Implementation Status** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | Complete `Zorder` class implementation | Full support for multi-column transforms in partitioning and sorting |
+| **Spark** | ✅ **Full Support** | Complete `SparkZOrderFileRewriteRunner` implementation | Full support across all versions (v3.4, v3.5, v4.0) with file rewriting |
+| **Flink** | ❌ **Not Implemented** | No multi-argument transform support | Only single-argument transforms supported |
+
+### Default Values Support
+
+| **Engine** | **initial-default** | **write-default** | **Notes** |
+|---|---|---|---|
+| **Core** | ✅ **Full Support** | ✅ **Full Support** | Complete support for both types with schema evolution |
+| **Spark** | ✅ **Full Support** | ✅ **Full Support** | Full support across all versions (v3.4, v3.5, v4.0) |
Review Comment:
Thank you. Updated the table
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org