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

yuqi4733 pushed a commit to branch branch-1.2
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/branch-1.2 by this push:
     new 13d9728139 [Cherry-pick to branch-1.2] [#10380] fix(common): default 
ifExists when deleting table index (#10382) (#10419)
13d9728139 is described below

commit 13d9728139e89a463a4da326dd88f429593ef2ee
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Fri Mar 13 09:23:21 2026 +0800

    [Cherry-pick to branch-1.2] [#10380] fix(common): default ifExists when 
deleting table index (#10382) (#10419)
    
    **Cherry-pick Information:**
    - Original commit: 4c20f481e90edf0c23430fb293ebae107900b1e7
    - Target branch: `branch-1.2`
    - Status: ✅ Clean cherry-pick (no conflicts)
    
    Co-authored-by: Qi Yu <[email protected]>
    Co-authored-by: Copilot <[email protected]>
---
 .../org/apache/gravitino/dto/requests/TableUpdateRequest.java | 11 +++++++----
 .../gravitino/dto/requests/TestTableUpdatesRequest.java       | 10 ++++++++++
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git 
a/common/src/main/java/org/apache/gravitino/dto/requests/TableUpdateRequest.java
 
b/common/src/main/java/org/apache/gravitino/dto/requests/TableUpdateRequest.java
index c6e58bbd98..eb02c4cfe8 100644
--- 
a/common/src/main/java/org/apache/gravitino/dto/requests/TableUpdateRequest.java
+++ 
b/common/src/main/java/org/apache/gravitino/dto/requests/TableUpdateRequest.java
@@ -844,7 +844,10 @@ public interface TableUpdateRequest extends RESTRequest {
     }
   }
 
-  /** Represents a request to delete an index from a table. */
+  /**
+   * Represents a request to delete an index from a table. If `ifExists` is 
null, it will be treated
+   * as false, which means the request will fail if the index does not exist.
+   */
   @EqualsAndHashCode
   @ToString
   class DeleteTableIndexRequest implements TableUpdateRequest {
@@ -852,8 +855,8 @@ public interface TableUpdateRequest extends RESTRequest {
     @JsonProperty("name")
     private String name;
 
-    @JsonProperty("ifExists")
-    private Boolean ifExists;
+    @JsonProperty(value = "ifExists", defaultValue = "false")
+    private boolean ifExists;
 
     /** Default constructor for Jackson deserialization. */
     public DeleteTableIndexRequest() {}
@@ -866,7 +869,7 @@ public interface TableUpdateRequest extends RESTRequest {
      */
     public DeleteTableIndexRequest(String name, Boolean ifExists) {
       this.name = name;
-      this.ifExists = ifExists;
+      this.ifExists = ifExists != null && ifExists;
     }
 
     /**
diff --git 
a/common/src/test/java/org/apache/gravitino/dto/requests/TestTableUpdatesRequest.java
 
b/common/src/test/java/org/apache/gravitino/dto/requests/TestTableUpdatesRequest.java
index cb4dcfd819..dde4bab474 100644
--- 
a/common/src/test/java/org/apache/gravitino/dto/requests/TestTableUpdatesRequest.java
+++ 
b/common/src/test/java/org/apache/gravitino/dto/requests/TestTableUpdatesRequest.java
@@ -26,6 +26,7 @@ import java.util.List;
 import org.apache.gravitino.dto.rel.expressions.LiteralDTO;
 import org.apache.gravitino.json.JsonUtils;
 import org.apache.gravitino.rel.TableChange;
+import org.apache.gravitino.rel.TableChange.DeleteIndex;
 import org.apache.gravitino.rel.indexes.Index;
 import org.apache.gravitino.rel.indexes.Indexes;
 import org.apache.gravitino.rel.types.Types;
@@ -308,6 +309,15 @@ public class TestTableUpdatesRequest {
     expected = 
"{\"@type\":\"deleteTableIndex\",\"name\":\"uk_2\",\"ifExists\":true}";
     Assertions.assertEquals(
         JsonUtils.objectMapper().readTree(expected), 
JsonUtils.objectMapper().readTree(jsonString));
+
+    deleteTableIndexRequest =
+        JsonUtils.objectMapper()
+            .readValue(
+                "{\"@type\":\"deleteTableIndex\",\"name\":\"uk_3\"}",
+                TableUpdateRequest.DeleteTableIndexRequest.class);
+    DeleteIndex deleteIndex = (DeleteIndex) 
deleteTableIndexRequest.tableChange();
+    Assertions.assertEquals("uk_3", deleteIndex.getName());
+    Assertions.assertFalse(deleteIndex.isIfExists());
   }
 
   @Test

Reply via email to