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