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>