Arnab Karmakar has uploaded this change for review. (
http://gerrit.cloudera.org:8080/24386
Change subject: IMPALA-14589: [Part 4] Add Iceberg V3 DDL support for column
defaults
......................................................................
IMPALA-14589: [Part 4] Add Iceberg V3 DDL support for column defaults
This patch wires Iceberg V3 initial-default and write-default literals
into DDL so Impala can define defaults at table creation and via
schema evolution.
DDL semantics:
- CREATE TABLE ... DEFAULT: sets both initial-default and write-default
on new columns. If format-version is omitted but any column has
DEFAULT, Impala auto-sets format-version to 3.
- ALTER TABLE ADD COLUMN ... DEFAULT: sets both initial-default and
write-default (backfills existing rows on read, applies on future writes).
- ALTER TABLE ALTER COLUMN ... SET DEFAULT: sets write-default only;
rows written before the change are not actively filled.
- ALTER TABLE ALTER COLUMN ... DROP DEFAULT: drops write-default only;
rows written before the change continue to project the previous default.
Type support:
Supported: BOOLEAN, INT, BIGINT, FLOAT, DOUBLE, DECIMAL, STRING, DATE
Unsupported: BINARY, TIMESTAMP, complex types
Testing:
- Positive tests:
- CREATE TABLE with all supported scalar DEFAULTs
- ADD COLUMN ... DEFAULT on existing data
- ALTER COLUMN SET DEFAULT on all scalar types
- ALTER COLUMN DROP DEFAULT: clears write-default;
initial-default remains unchanged.
- Negative tests:
- format-version < 3 rejects CREATE/ADD/ALTER COLUMN default DDL
- BINARY and TIMESTAMP default rejection on CREATE and ADD COLUMN
- Non-constant complex defaults (array/map) rejected at analysis
Change-Id: Ibec771f324a0a9534e767e4b1fc66b25b41483ae
---
M fe/src/main/java/org/apache/impala/analysis/AlterTableAddColsStmt.java
M fe/src/main/java/org/apache/impala/analysis/AlterTableAlterColStmt.java
M fe/src/main/java/org/apache/impala/analysis/ColumnDef.java
M fe/src/main/java/org/apache/impala/analysis/CreateTableStmt.java
M fe/src/main/java/org/apache/impala/service/IcebergCatalogOpExecutor.java
M fe/src/main/java/org/apache/impala/util/IcebergSchemaConverter.java
M
testdata/workloads/functional-query/queries/QueryTest/iceberg-v3-default-values.test
M testdata/workloads/functional-query/queries/QueryTest/iceberg-v3-negative.test
8 files changed, 497 insertions(+), 21 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/86/24386/1
--
To view, visit http://gerrit.cloudera.org:8080/24386
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibec771f324a0a9534e767e4b1fc66b25b41483ae
Gerrit-Change-Number: 24386
Gerrit-PatchSet: 1
Gerrit-Owner: Arnab Karmakar <[email protected]>