You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@impala.apache.org by "Arnab Karmakar (Code Review)" <ge...@cloudera.org> on 2026/04/26 10:57:00 UTC
[Impala-ASF-CR] IMPALA-14589: [Part 3] Add support for Iceberg V3 write-default values
Hello Zoltan Borok-Nagy, Impala Public Jenkins,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/24232
to look at the new patch set (#2).
Change subject: IMPALA-14589: [Part 3] Add support for Iceberg V3 write-default values
......................................................................
IMPALA-14589: [Part 3] Add support for Iceberg V3 write-default values
This patch adds write-default support for Iceberg V3 tables.
**write-default**: Applied when WRITING new rows that don't specify a
value for a column during INSERT operations. This ensures consistent
defaults across all engines writing to the table, regardless of whether
they're inserting via Spark, Flink, or Impala.
How write-default Works:
- When INSERT omits a column, InsertStmt checks for write-default in the
column's Iceberg schema metadata
- If present, the write-default value is parsed and used as the column's
value in the INSERT
- If no write-default is defined, NULL is used (existing behavior)
- Write-default values are also used for partition columns when they are
not explicitly specified in column permutation
Type Support:
**Supported Types** (with write-default):
- Numeric: BOOLEAN, TINYINT, SMALLINT, INT, BIGINT, FLOAT, DOUBLE, DECIMAL
- Text: STRING, VARCHAR, CHAR
- Temporal: DATE
**Unsupported Types** (rejected with AnalysisException):
- TIMESTAMP
- BINARY/FIXED
Testing:
- Positive tests: Extended iceberg-v3-default-values.test with
write-default coverage:
* Write-default for all supported primitive types (BOOLEAN through DATE)
* INSERT omitting columns with write-default values
* INSERT with explicit values overrides write-default
* INSERT with explicit NULL overrides write-default
- Negative tests:
* Removed negative test that blocked write-default (no longer needed)
* Test TIMESTAMP and BINARY write-default rejection
Change-Id: I3bbccaad07f8c2f1fef59950de850f43d4044c08
---
M fe/src/main/java/org/apache/impala/analysis/InsertStmt.java
M testdata/data/iceberg_test/iceberg_v3/iceberg_v3_all_types/metadata/v4.metadata.json
M testdata/data/iceberg_test/iceberg_v3/test_default_part/metadata/v6.metadata.json
M testdata/workloads/functional-query/queries/QueryTest/iceberg-v3-default-values.test
M testdata/workloads/functional-query/queries/QueryTest/iceberg-v3-negative.test
5 files changed, 228 insertions(+), 30 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/32/24232/2
--
To view, visit http://gerrit.cloudera.org:8080/24232
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I3bbccaad07f8c2f1fef59950de850f43d4044c08
Gerrit-Change-Number: 24232
Gerrit-PatchSet: 2
Gerrit-Owner: Arnab Karmakar <ar...@gmail.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Reviewer: Zoltan Borok-Nagy <bo...@cloudera.com>