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

jshao 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 4e8c764642 [Cherry-pick to branch-1.2] [MINOR] optimizer: relax 
statistics input validation for non-local calculators (#10355) (#10361)
4e8c764642 is described below

commit 4e8c764642ccd2de4906505ae7aaf63d8a28398a
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Mar 11 13:53:07 2026 +0800

    [Cherry-pick to branch-1.2] [MINOR] optimizer: relax statistics input 
validation for non-local calculators (#10355) (#10361)
    
    **Cherry-pick Information:**
    - Original commit: 4734ba6359bbcb070baf86973c2794aec39d5dc0
    - Target branch: `branch-1.2`
    - Status: ✅ Clean cherry-pick (no conflicts)
    
    Co-authored-by: FANNG <[email protected]>
---
 .../gravitino/maintenance/optimizer/OptimizerCmd.java     | 10 ++--------
 .../gravitino/maintenance/optimizer/TestOptimizerCmd.java | 15 ++++++++-------
 2 files changed, 10 insertions(+), 15 deletions(-)

diff --git 
a/maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/OptimizerCmd.java
 
b/maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/OptimizerCmd.java
index a7defa0fd2..31fc7c8aad 100644
--- 
a/maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/OptimizerCmd.java
+++ 
b/maintenance/optimizer/src/main/java/org/apache/gravitino/maintenance/optimizer/OptimizerCmd.java
@@ -326,12 +326,6 @@ public class OptimizerCmd {
             "Command '%s' with --calculator-name %s requires one of 
--statistics-payload "
                 + "or --file-path.",
             LOCAL_STATS_CALCULATOR_NAME)
-        .addForbidWhenOption(
-            CliOption.CALCULATOR_NAME.longOpt(),
-            value -> !LOCAL_STATS_CALCULATOR_NAME.equals(value),
-            List.of(CliOption.STATISTICS_PAYLOAD.longOpt(), 
CliOption.FILE_PATH.longOpt()),
-            "--statistics-payload and --file-path are only supported when 
--calculator-name is %s.",
-            LOCAL_STATS_CALCULATOR_NAME)
         .build();
   }
 
@@ -502,12 +496,12 @@ public class OptimizerCmd {
         "statistics-payload",
         CliOptionArgType.SINGLE,
         null,
-        "Inline statistics payload for local-stats-calculator"),
+        "Inline statistics payload for the selected calculator"),
     FILE_PATH(
         "file-path",
         CliOptionArgType.SINGLE,
         null,
-        "Path to statistics input file for local-stats-calculator"),
+        "Path to statistics input file for the selected calculator"),
     ACTION_TIME("action-time", CliOptionArgType.SINGLE, null, "Action time in 
epoch seconds"),
     RANGE_SECONDS(
         "range-seconds", CliOptionArgType.SINGLE, null, "Range seconds for 
monitor evaluation"),
diff --git 
a/maintenance/optimizer/src/test/java/org/apache/gravitino/maintenance/optimizer/TestOptimizerCmd.java
 
b/maintenance/optimizer/src/test/java/org/apache/gravitino/maintenance/optimizer/TestOptimizerCmd.java
index 5321b75b9e..ce3d33b433 100644
--- 
a/maintenance/optimizer/src/test/java/org/apache/gravitino/maintenance/optimizer/TestOptimizerCmd.java
+++ 
b/maintenance/optimizer/src/test/java/org/apache/gravitino/maintenance/optimizer/TestOptimizerCmd.java
@@ -59,19 +59,20 @@ class TestOptimizerCmd {
   }
 
   @Test
-  void testRejectStatisticsInputWhenCalculatorIsNotLocal() {
+  void testAllowStatisticsInputWhenCalculatorIsNotLocal() throws Exception {
+    Path confPath = createOptimizerConfForUpdater();
     String[] output =
         runCommand(
             "--type",
             "update-statistics",
             "--calculator-name",
-            "mock-calculator",
+            StatisticsCalculatorForTest.NAME,
             "--statistics-payload",
-            "{\"identifier\":\"c.db.t\"}");
-    Assertions.assertTrue(
-        output[1].contains(
-            "--statistics-payload and --file-path are only supported when 
--calculator-name "
-                + "is local-stats-calculator."));
+            
"{\"identifier\":\"test.db.table\",\"stats-type\":\"table\",\"row_count\":100}",
+            "--conf-path",
+            confPath.toString());
+    Assertions.assertTrue(output[1].isEmpty(), "stderr=" + output[1] + ", 
stdout=" + output[0]);
+    Assertions.assertTrue(output[0].contains("SUMMARY: statistics"));
   }
 
   @Test

Reply via email to