From f31027c550063369475bce0075fd2acc2a706fdf Mon Sep 17 00:00:00 2001 From: hui lai Date: Fri, 11 Jul 2025 11:44:26 +0800 Subject: [PATCH] [fix](job) fix show routine load job result incorrect after alter job property (#53038) Pause job and alter property: ``` alter routine load for test_load PROPERTIES("max_filter_ratio" = "0.5"); ``` show routine load result incorrect: ``` JobProperties: {"max_batch_rows":"20000000","timezone":"Asia/Shanghai","send_batch_parallelism":"1","load_to_single_tablet":"false","current_concurrent_number":"0","delete":"*","partial_columns":"false","merge_type":"APPEND","exec_mem_limit":"2147483648","strict_mode":"false","jsonpaths":"","max_batch_interval":"60","max_batch_size":"1073741824","fuzzy_parse":"false","partitions":"*","columnToColumnExpr":"k1,tmp_k2,v1,v2,v3,v4,k2=substring(tmp_k2, 2, 2)","whereExpr":"*","desired_concurrent_number":"256","precedingFilter":"*","format":"json","max_error_number":"0","max_filter_ratio":"1.0","json_root":"","strip_outer_array":"false","num_as_string":"false"} ``` after fix: ``` JobProperties: {"max_batch_rows":"20000000","timezone":"Asia/Shanghai","send_batch_parallelism":"1","load_to_single_tablet":"false","current_concurrent_number":"0","delete":"*","partial_columns":"false","merge_type":"APPEND","exec_mem_limit":"2147483648","strict_mode":"false","jsonpaths":"","max_batch_interval":"60","max_batch_size":"1073741824","fuzzy_parse":"false","partitions":"*","columnToColumnExpr":"k1,tmp_k2,v1,v2,v3,v4,k2=substring(tmp_k2, 2, 2)","whereExpr":"*","desired_concurrent_number":"256","precedingFilter":"*","format":"json","max_error_number":"0","max_filter_ratio":"0.5","json_root":"","strip_outer_array":"false","num_as_string":"false"} ``` ### Release note --- .../org/apache/doris/load/routineload/RoutineLoadJob.java | 1 + .../suites/load_p0/routine_load/test_routine_load.groovy | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java b/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java index d7e3c6fc49450f..5ea984ebfac23f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java +++ b/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java @@ -2060,6 +2060,7 @@ protected void modifyCommonJobProperties(Map jobProperties) { if (jobProperties.containsKey(CreateRoutineLoadStmt.MAX_FILTER_RATIO_PROPERTY)) { this.maxFilterRatio = Double.parseDouble( jobProperties.remove(CreateRoutineLoadStmt.MAX_FILTER_RATIO_PROPERTY)); + this.jobProperties.put(CreateRoutineLoadStmt.MAX_FILTER_RATIO_PROPERTY, String.valueOf(maxFilterRatio)); } if (jobProperties.containsKey(CreateRoutineLoadStmt.MAX_BATCH_INTERVAL_SEC_PROPERTY)) { diff --git a/regression-test/suites/load_p0/routine_load/test_routine_load.groovy b/regression-test/suites/load_p0/routine_load/test_routine_load.groovy index 75b8ddce80d3b8..e5a24c2a44c16a 100644 --- a/regression-test/suites/load_p0/routine_load/test_routine_load.groovy +++ b/regression-test/suites/load_p0/routine_load/test_routine_load.groovy @@ -1834,6 +1834,7 @@ suite("test_routine_load","p0") { sql "ALTER ROUTINE LOAD FOR ${jobs[i]} PROPERTIES(\"num_as_string\" = \"true\");" sql "ALTER ROUTINE LOAD FOR ${jobs[i]} PROPERTIES(\"fuzzy_parse\" = \"true\");" sql "ALTER ROUTINE LOAD FOR ${jobs[i]} PROPERTIES(\"workload_group\" = \"alter_routine_load_group\");" + sql "ALTER ROUTINE LOAD FOR ${jobs[i]} PROPERTIES(\"max_filter_ratio\" = \"0.5\");" res = sql "show routine load for ${jobs[i]}" log.info("routine load job properties: ${res[0][11].toString()}".toString()) @@ -1844,8 +1845,7 @@ suite("test_routine_load","p0") { assertEquals("300001", json.max_batch_rows.toString()) assertEquals("209715201", json.max_batch_size.toString()) assertEquals("6", json.max_batch_interval.toString()) - //TODO(bug): Can not update - //assertEquals("0.5", json.max_filter_ratio.toString()) + assertEquals("0.5", json.max_filter_ratio.toString()) assertEquals("jsonpaths", json.jsonpaths.toString()) assertEquals("json_root", json.json_root.toString()) assertEquals("true", json.strict_mode.toString())