This is an automated email from the ASF dual-hosted git repository.

singhpk234 pushed a commit to branch 1.10.x
in repository https://gitbox.apache.org/repos/asf/iceberg.git


The following commit(s) were added to refs/heads/1.10.x by this push:
     new 21eb27edd5 REST: Make plan status consistent with the SPEC
21eb27edd5 is described below

commit 21eb27edd524ca9be35f4191caae1b57a02d808a
Author: Prashant Singh <[email protected]>
AuthorDate: Thu Nov 20 03:56:44 2025 -0800

    REST: Make plan status consistent with the SPEC
---
 .../FetchPlanningResultResponseParser.java         |  6 +++---
 .../responses/PlanTableScanResponseParser.java     |  6 +++---
 .../TestFetchPlanningResultResponseParser.java     | 11 +++++-----
 .../responses/TestPlanTableScanResponseParser.java | 24 +++++++++++-----------
 4 files changed, 23 insertions(+), 24 deletions(-)

diff --git 
a/core/src/main/java/org/apache/iceberg/rest/responses/FetchPlanningResultResponseParser.java
 
b/core/src/main/java/org/apache/iceberg/rest/responses/FetchPlanningResultResponseParser.java
index 5dcfe2d59a..abc3706990 100644
--- 
a/core/src/main/java/org/apache/iceberg/rest/responses/FetchPlanningResultResponseParser.java
+++ 
b/core/src/main/java/org/apache/iceberg/rest/responses/FetchPlanningResultResponseParser.java
@@ -33,7 +33,7 @@ import org.apache.iceberg.rest.TableScanResponseParser;
 import org.apache.iceberg.util.JsonUtil;
 
 public class FetchPlanningResultResponseParser {
-  private static final String PLAN_STATUS = "plan-status";
+  private static final String STATUS = "status";
   private static final String PLAN_TASKS = "plan-tasks";
 
   private FetchPlanningResultResponseParser() {}
@@ -54,7 +54,7 @@ public class FetchPlanningResultResponseParser {
             || (response.fileScanTasks() == null || 
response.fileScanTasks().isEmpty()),
         "Cannot serialize fileScanTasks in fetchingPlanningResultResponse 
without specsById");
     gen.writeStartObject();
-    gen.writeStringField(PLAN_STATUS, response.planStatus().status());
+    gen.writeStringField(STATUS, response.planStatus().status());
     if (response.planTasks() != null) {
       JsonUtil.writeStringArray(PLAN_TASKS, response.planTasks(), gen);
     }
@@ -81,7 +81,7 @@ public class FetchPlanningResultResponseParser {
     Preconditions.checkArgument(
         json != null && !json.isEmpty(), "Invalid fetchPlanningResult 
response: null or empty");
 
-    PlanStatus planStatus = 
PlanStatus.fromName(JsonUtil.getString(PLAN_STATUS, json));
+    PlanStatus planStatus = PlanStatus.fromName(JsonUtil.getString(STATUS, 
json));
     List<String> planTasks = JsonUtil.getStringListOrNull(PLAN_TASKS, json);
     List<DeleteFile> deleteFiles = 
TableScanResponseParser.parseDeleteFiles(json, specsById);
     List<FileScanTask> fileScanTasks =
diff --git 
a/core/src/main/java/org/apache/iceberg/rest/responses/PlanTableScanResponseParser.java
 
b/core/src/main/java/org/apache/iceberg/rest/responses/PlanTableScanResponseParser.java
index 523770e6cc..08b3eac99b 100644
--- 
a/core/src/main/java/org/apache/iceberg/rest/responses/PlanTableScanResponseParser.java
+++ 
b/core/src/main/java/org/apache/iceberg/rest/responses/PlanTableScanResponseParser.java
@@ -33,7 +33,7 @@ import org.apache.iceberg.rest.TableScanResponseParser;
 import org.apache.iceberg.util.JsonUtil;
 
 public class PlanTableScanResponseParser {
-  private static final String PLAN_STATUS = "plan-status";
+  private static final String STATUS = "status";
   private static final String PLAN_ID = "plan-id";
   private static final String PLAN_TASKS = "plan-tasks";
 
@@ -55,7 +55,7 @@ public class PlanTableScanResponseParser {
         response.specsById() != null, "Cannot serialize planTableScanResponse 
without specsById");
 
     gen.writeStartObject();
-    gen.writeStringField(PLAN_STATUS, response.planStatus().status());
+    gen.writeStringField(STATUS, response.planStatus().status());
 
     if (response.planId() != null) {
       gen.writeStringField(PLAN_ID, response.planId());
@@ -88,7 +88,7 @@ public class PlanTableScanResponseParser {
         json != null && !json.isEmpty(),
         "Cannot parse planTableScan response from empty or null object");
 
-    PlanStatus planStatus = 
PlanStatus.fromName(JsonUtil.getString(PLAN_STATUS, json));
+    PlanStatus planStatus = PlanStatus.fromName(JsonUtil.getString(STATUS, 
json));
     String planId = JsonUtil.getStringOrNull(PLAN_ID, json);
     List<String> planTasks = JsonUtil.getStringListOrNull(PLAN_TASKS, json);
     List<DeleteFile> deleteFiles = 
TableScanResponseParser.parseDeleteFiles(json, specsById);
diff --git 
a/core/src/test/java/org/apache/iceberg/rest/responses/TestFetchPlanningResultResponseParser.java
 
b/core/src/test/java/org/apache/iceberg/rest/responses/TestFetchPlanningResultResponseParser.java
index bac182b77e..9db9e29530 100644
--- 
a/core/src/test/java/org/apache/iceberg/rest/responses/TestFetchPlanningResultResponseParser.java
+++ 
b/core/src/test/java/org/apache/iceberg/rest/responses/TestFetchPlanningResultResponseParser.java
@@ -92,7 +92,7 @@ public class TestFetchPlanningResultResponseParser {
 
   @Test
   public void roundTripSerdeWithInvalidPlanStatus() {
-    String invalidStatusJson = "{\"plan-status\": \"someStatus\"}";
+    String invalidStatusJson = "{\"status\": \"someStatus\"}";
     assertThatThrownBy(
             () ->
                 FetchPlanningResultResponseParser.fromJson(
@@ -107,7 +107,7 @@ public class TestFetchPlanningResultResponseParser {
     FetchPlanningResultResponse response =
         
FetchPlanningResultResponse.builder().withPlanStatus(planStatus).build();
 
-    String expectedJson = "{\"plan-status\":\"submitted\"}";
+    String expectedJson = "{\"status\":\"submitted\"}";
     String json = FetchPlanningResultResponseParser.toJson(response);
     assertThat(json).isEqualTo(expectedJson);
 
@@ -128,8 +128,7 @@ public class TestFetchPlanningResultResponseParser {
         .isInstanceOf(IllegalArgumentException.class)
         .hasMessage("Invalid response: tasks can only be returned in a 
'completed' status");
 
-    String invalidJson =
-        "{\"plan-status\":\"submitted\"," + 
"\"plan-tasks\":[\"task1\",\"task2\"]}";
+    String invalidJson = "{\"status\":\"submitted\"," + 
"\"plan-tasks\":[\"task1\",\"task2\"]}";
 
     assertThatThrownBy(
             () ->
@@ -155,7 +154,7 @@ public class TestFetchPlanningResultResponseParser {
             "Invalid response: deleteFiles should only be returned with 
fileScanTasks that reference them");
 
     String invalidJson =
-        "{\"plan-status\":\"submitted\","
+        "{\"status\":\"submitted\","
             + 
"\"delete-files\":[{\"spec-id\":0,\"content\":\"POSITION_DELETES\","
             + 
"\"file-path\":\"/path/to/data-a-deletes.parquet\",\"file-format\":\"PARQUET\","
             + 
"\"partition\":{\"1000\":0},\"file-size-in-bytes\":10,\"record-count\":1}]"
@@ -193,7 +192,7 @@ public class TestFetchPlanningResultResponseParser {
             .build();
 
     String expectedToJson =
-        "{\"plan-status\":\"completed\","
+        "{\"status\":\"completed\","
             + 
"\"delete-files\":[{\"spec-id\":0,\"content\":\"POSITION_DELETES\","
             + 
"\"file-path\":\"/path/to/data-a-deletes.parquet\",\"file-format\":\"PARQUET\","
             + 
"\"partition\":{\"1000\":0},\"file-size-in-bytes\":10,\"record-count\":1}],"
diff --git 
a/core/src/test/java/org/apache/iceberg/rest/responses/TestPlanTableScanResponseParser.java
 
b/core/src/test/java/org/apache/iceberg/rest/responses/TestPlanTableScanResponseParser.java
index 3a8563ce58..48f8a5dcb6 100644
--- 
a/core/src/test/java/org/apache/iceberg/rest/responses/TestPlanTableScanResponseParser.java
+++ 
b/core/src/test/java/org/apache/iceberg/rest/responses/TestPlanTableScanResponseParser.java
@@ -78,7 +78,7 @@ public class TestPlanTableScanResponseParser {
     assertThat(response.planStatus()).isEqualTo(PlanStatus.COMPLETED);
     assertThat(response.planId()).isNull();
     assertThat(PlanTableScanResponseParser.toJson(response))
-        .isEqualTo("{\"plan-status\":\"completed\"}");
+        .isEqualTo("{\"status\":\"completed\"}");
 
     response =
         PlanTableScanResponse.builder()
@@ -90,7 +90,7 @@ public class TestPlanTableScanResponseParser {
     assertThat(response.planId()).isEqualTo("somePlanId");
 
     assertThat(PlanTableScanResponseParser.toJson(response))
-        
.isEqualTo("{\"plan-status\":\"completed\",\"plan-id\":\"somePlanId\"}");
+        .isEqualTo("{\"status\":\"completed\",\"plan-id\":\"somePlanId\"}");
   }
 
   @Test
@@ -104,12 +104,12 @@ public class TestPlanTableScanResponseParser {
     assertThat(response.planStatus()).isEqualTo(PlanStatus.SUBMITTED);
     assertThat(response.planId()).isEqualTo("somePlanId");
     assertThat(PlanTableScanResponseParser.toJson(response))
-        
.isEqualTo("{\"plan-status\":\"submitted\",\"plan-id\":\"somePlanId\"}");
+        .isEqualTo("{\"status\":\"submitted\",\"plan-id\":\"somePlanId\"}");
   }
 
   @Test
   public void roundTripSerdeWithInvalidPlanStatus() {
-    String invalidStatusJson = "{\"plan-status\": \"someStatus\"}";
+    String invalidStatusJson = "{\"status\": \"someStatus\"}";
     assertThatThrownBy(
             () ->
                 PlanTableScanResponseParser.fromJson(
@@ -125,7 +125,7 @@ public class TestPlanTableScanResponseParser {
         .isInstanceOf(IllegalArgumentException.class)
         .hasMessage("Invalid response: plan id should be defined when status 
is 'submitted'");
 
-    String invalidJson = "{\"plan-status\":\"submitted\"}";
+    String invalidJson = "{\"status\":\"submitted\"}";
     assertThatThrownBy(
             () -> PlanTableScanResponseParser.fromJson(invalidJson, 
PARTITION_SPECS_BY_ID, false))
         .isInstanceOf(IllegalArgumentException.class)
@@ -139,7 +139,7 @@ public class TestPlanTableScanResponseParser {
         .isInstanceOf(IllegalArgumentException.class)
         .hasMessage("Invalid response: 'cancelled' is not a valid status for 
planTableScan");
 
-    String invalidJson = "{\"plan-status\":\"cancelled\"}";
+    String invalidJson = "{\"status\":\"cancelled\"}";
     assertThatThrownBy(
             () -> PlanTableScanResponseParser.fromJson(invalidJson, 
PARTITION_SPECS_BY_ID, false))
         .isInstanceOf(IllegalArgumentException.class)
@@ -159,7 +159,7 @@ public class TestPlanTableScanResponseParser {
         .hasMessage("Invalid response: tasks can only be defined when status 
is 'completed'");
 
     String invalidJson =
-        "{\"plan-status\":\"submitted\","
+        "{\"status\":\"submitted\","
             + "\"plan-id\":\"somePlanId\","
             + "\"plan-tasks\":[\"task1\",\"task2\"]}";
 
@@ -181,7 +181,7 @@ public class TestPlanTableScanResponseParser {
         .hasMessage(
             "Invalid response: plan id can only be defined when status is 
'submitted' or 'completed'");
 
-    String invalidJson = "{\"plan-status\":\"failed\"," + 
"\"plan-id\":\"somePlanId\"}";
+    String invalidJson = "{\"status\":\"failed\"," + 
"\"plan-id\":\"somePlanId\"}";
 
     assertThatThrownBy(
             () -> PlanTableScanResponseParser.fromJson(invalidJson, 
PARTITION_SPECS_BY_ID, false))
@@ -204,7 +204,7 @@ public class TestPlanTableScanResponseParser {
             "Invalid response: deleteFiles should only be returned with 
fileScanTasks that reference them");
 
     String invalidJson =
-        "{\"plan-status\":\"submitted\","
+        "{\"status\":\"submitted\","
             + "\"plan-id\":\"somePlanId\","
             + 
"\"delete-files\":[{\"spec-id\":0,\"content\":\"POSITION_DELETES\","
             + 
"\"file-path\":\"/path/to/data-a-deletes.parquet\",\"file-format\":\"PARQUET\","
@@ -239,7 +239,7 @@ public class TestPlanTableScanResponseParser {
             .build();
 
     String expectedToJson =
-        "{\"plan-status\":\"completed\","
+        "{\"status\":\"completed\","
             + 
"\"delete-files\":[{\"spec-id\":0,\"content\":\"POSITION_DELETES\","
             + 
"\"file-path\":\"/path/to/data-a-deletes.parquet\",\"file-format\":\"PARQUET\","
             + 
"\"partition\":{\"1000\":0},\"file-size-in-bytes\":10,\"record-count\":1}],"
@@ -309,7 +309,7 @@ public class TestPlanTableScanResponseParser {
 
     String expectedJson =
         "{\n"
-            + "  \"plan-status\" : \"completed\",\n"
+            + "  \"status\" : \"completed\",\n"
             + "  \"delete-files\" : [ {\n"
             + "    \"spec-id\" : 0,\n"
             + "    \"content\" : \"POSITION_DELETES\",\n"
@@ -415,7 +415,7 @@ public class TestPlanTableScanResponseParser {
             .build();
 
     String expectedJson =
-        "{\"plan-status\":\"completed\","
+        "{\"status\":\"completed\","
             + "\"file-scan-tasks\":["
             + 
"{\"data-file\":{\"spec-id\":0,\"content\":\"DATA\",\"file-path\":\"/path/to/data-a.parquet\","
             + "\"file-format\":\"PARQUET\",\"partition\":{\"1000\":0},"

Reply via email to