From cc9f6f468b80ebb3ff21546971df949a9177a951 Mon Sep 17 00:00:00 2001 From: v-k-1-8 Date: Mon, 29 Dec 2025 22:12:09 +0530 Subject: [PATCH 1/4] Docs: Fix MERGE INTO example in Getting Started --- docs/docs/spark-getting-started.md | 2 +- .../java/org/apache/iceberg/spark/TestRoundTrip.java | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/docs/spark-getting-started.md b/docs/docs/spark-getting-started.md index 6813c76937a1..d51923ef6a53 100644 --- a/docs/docs/spark-getting-started.md +++ b/docs/docs/spark-getting-started.md @@ -83,7 +83,7 @@ Iceberg also adds row-level SQL updates to Spark, [`MERGE INTO`](spark-writes.md ```sql MERGE INTO local.db.target t USING (SELECT * FROM updates) u ON t.id = u.id -WHEN MATCHED THEN UPDATE SET t.count = t.count + u.count +WHEN MATCHED THEN UPDATE SET t.data = u.data WHEN NOT MATCHED THEN INSERT *; ``` diff --git a/spark/v3.5/spark-runtime/src/integration/java/org/apache/iceberg/spark/TestRoundTrip.java b/spark/v3.5/spark-runtime/src/integration/java/org/apache/iceberg/spark/TestRoundTrip.java index 29f725615a21..709f626b08c1 100644 --- a/spark/v3.5/spark-runtime/src/integration/java/org/apache/iceberg/spark/TestRoundTrip.java +++ b/spark/v3.5/spark-runtime/src/integration/java/org/apache/iceberg/spark/TestRoundTrip.java @@ -38,8 +38,6 @@ public void dropTable() { } // Run through our Doc's Getting Started Example - // TODO Update doc example so that it can actually be run, modifications were required for this - // test suite to run @TestTemplate public void testGettingStarted() throws IOException { // Creating a table From fc1eb55c44f4daa8bb688b05098e2400c27a0fcc Mon Sep 17 00:00:00 2001 From: v-k-1-8 Date: Tue, 30 Dec 2025 03:09:31 +0530 Subject: [PATCH 2/4] Docs: Fix Getting Started Spark SQL example to be runnable --- docs/docs/spark-getting-started.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/docs/spark-getting-started.md b/docs/docs/spark-getting-started.md index d51923ef6a53..821bfd022c20 100644 --- a/docs/docs/spark-getting-started.md +++ b/docs/docs/spark-getting-started.md @@ -61,6 +61,8 @@ To create your first Iceberg table in Spark, use the `spark-sql` shell or `spark ```sql -- local is the path-based catalog defined above CREATE TABLE local.db.table (id bigint, data string) USING iceberg; +CREATE TABLE source (id bigint, data string) USING parquet; +CREATE TABLE updates (id bigint, data string) USING parquet; ``` Iceberg catalogs support the full range of SQL DDL commands, including: @@ -76,13 +78,15 @@ Once your table is created, insert data using [`INSERT INTO`](spark-writes.md#in ```sql INSERT INTO local.db.table VALUES (1, 'a'), (2, 'b'), (3, 'c'); +INSERT INTO source VALUES (10, 'd'), (11, 'ee'); +INSERT INTO updates VALUES (1, 'x'), (2, 'x'), (4, 'z'); INSERT INTO local.db.table SELECT id, data FROM source WHERE length(data) = 1; ``` Iceberg also adds row-level SQL updates to Spark, [`MERGE INTO`](spark-writes.md#merge-into) and [`DELETE FROM`](spark-writes.md#delete-from): ```sql -MERGE INTO local.db.target t USING (SELECT * FROM updates) u ON t.id = u.id +MERGE INTO local.db.table t USING (SELECT * FROM updates) u ON t.id = u.id WHEN MATCHED THEN UPDATE SET t.data = u.data WHEN NOT MATCHED THEN INSERT *; ``` From a4be09d457ec18e3f75eb08245ffece48d7d338c Mon Sep 17 00:00:00 2001 From: v-k-1-8 Date: Tue, 30 Dec 2025 09:44:40 +0530 Subject: [PATCH 3/4] Apply same documentation fix to Spark 3.4, 4.0, and 4.1 versions --- .../java/org/apache/iceberg/spark/TestRoundTrip.java | 2 -- .../java/org/apache/iceberg/spark/TestRoundTrip.java | 2 -- .../java/org/apache/iceberg/spark/TestRoundTrip.java | 2 -- 3 files changed, 6 deletions(-) diff --git a/spark/v3.4/spark-runtime/src/integration/java/org/apache/iceberg/spark/TestRoundTrip.java b/spark/v3.4/spark-runtime/src/integration/java/org/apache/iceberg/spark/TestRoundTrip.java index 29f725615a21..709f626b08c1 100644 --- a/spark/v3.4/spark-runtime/src/integration/java/org/apache/iceberg/spark/TestRoundTrip.java +++ b/spark/v3.4/spark-runtime/src/integration/java/org/apache/iceberg/spark/TestRoundTrip.java @@ -38,8 +38,6 @@ public void dropTable() { } // Run through our Doc's Getting Started Example - // TODO Update doc example so that it can actually be run, modifications were required for this - // test suite to run @TestTemplate public void testGettingStarted() throws IOException { // Creating a table diff --git a/spark/v4.0/spark-runtime/src/integration/java/org/apache/iceberg/spark/TestRoundTrip.java b/spark/v4.0/spark-runtime/src/integration/java/org/apache/iceberg/spark/TestRoundTrip.java index 29f725615a21..709f626b08c1 100644 --- a/spark/v4.0/spark-runtime/src/integration/java/org/apache/iceberg/spark/TestRoundTrip.java +++ b/spark/v4.0/spark-runtime/src/integration/java/org/apache/iceberg/spark/TestRoundTrip.java @@ -38,8 +38,6 @@ public void dropTable() { } // Run through our Doc's Getting Started Example - // TODO Update doc example so that it can actually be run, modifications were required for this - // test suite to run @TestTemplate public void testGettingStarted() throws IOException { // Creating a table diff --git a/spark/v4.1/spark-runtime/src/integration/java/org/apache/iceberg/spark/TestRoundTrip.java b/spark/v4.1/spark-runtime/src/integration/java/org/apache/iceberg/spark/TestRoundTrip.java index 29f725615a21..709f626b08c1 100644 --- a/spark/v4.1/spark-runtime/src/integration/java/org/apache/iceberg/spark/TestRoundTrip.java +++ b/spark/v4.1/spark-runtime/src/integration/java/org/apache/iceberg/spark/TestRoundTrip.java @@ -38,8 +38,6 @@ public void dropTable() { } // Run through our Doc's Getting Started Example - // TODO Update doc example so that it can actually be run, modifications were required for this - // test suite to run @TestTemplate public void testGettingStarted() throws IOException { // Creating a table From 5cb29e7337055d2e8f5b3b80e96fa702bfba2fca Mon Sep 17 00:00:00 2001 From: v-k-1-8 Date: Tue, 30 Dec 2025 10:07:05 +0530 Subject: [PATCH 4/4] Retry CI as earlier gave 429