github-actions[bot] commented on code in PR #69706:
URL: https://github.com/apache/doris/pull/69706#discussion_r4391408494


##########
regression-test/suites/external_table_p2/maxcompute/test_max_compute_timestamp.groovy:
##########
@@ -216,56 +186,6 @@ suite("test_max_compute_timestamp", 
"p2,external,maxcompute,external_remote,exte
         sql """ use ${mc_db}"""
 
 
-        sql """ set time_zone = "Asia/Shanghai" """
-        qt_7_1 """ select * from datetime_tb1;"""
-        qt_7_2 """ select * from datetime_tb1 where col1 > "2023-02-02 
00:00:00.000";"""
-        qt_7_3 """ select * from datetime_tb1 where col1 >= "2023-02-02 
00:00:00.000";"""
-        qt_7_4 """ select * from datetime_tb1 where col1 = "2023-02-02 
00:00:00.000";"""
-        qt_7_5 """ select * from datetime_tb1 where col1 <= "2023-02-02 
00:00:00.000";"""
-        qt_7_6 """ select * from datetime_tb1 where col1 < "2023-02-02 
00:00:00.000";"""
-        qt_7_7 """ select * from datetime_tb1 where col1 != "2023-02-02 
00:00:00.000";"""
-
-
-        qt_8_1 """ select * from timestamp_tb2;"""
-        qt_8_2 """ select * from timestamp_tb2 where col1 > "2023-02-02 
00:00:00.123456";"""
-        qt_8_3 """ select * from timestamp_tb2 where col1 >= "2023-02-02 
00:00:00.123456";"""
-        qt_8_4 """ select * from timestamp_tb2 where col1 = "2023-02-02 
00:00:00.123456";"""

Review Comment:
   [P2] Retain TIMESTAMP predicates on the pushdown-enabled catalog
   
   This removes the last queries after switching to `${mc_catalog_name}_2` 
(`mc.datetime_predicate_push_down=true`); the suite now creates that catalog 
and finishes without reading from it. Every surviving timestamp predicate uses 
the first catalog with the property `false`, so 
`MaxComputeScanNode.convertLiteralToOdpsValues` cannot build its TIMESTAMP 
remote filter and `convertPredicate` omits it. The deleted `qt_8_*`/`qt_10_*` 
cases exercised UTC/session-timezone conversion of `timestamp_tb2.col1`; the 
all-type suite covers `TIMESTAMP_NTZ`, which follows a different conversion 
branch. Keep a representative TIMESTAMP equality/boundary check in both 
`Asia/Shanghai` and `UTC`, with matching outputs, while trimming the redundant 
permutations.



##########
regression-test/suites/external_table_p2/maxcompute/test_max_compute_partition_prune.groovy:
##########
@@ -105,191 +101,153 @@ suite("test_max_compute_partition_prune", 
"p2,external,maxcompute,external_remot
         String mc_catalog_name = "test_max_compute_partition_prune"
 
 
-        for (String  enable_profile : ["true","false"] ) {
-            sql """set enable_profile = ${enable_profile} """;
-            sql """set fetch_splits_max_wait_time_ms = 10000 """;
-
-            for (String num_partitions : ["1","10","100"] ) {
-                sql "set num_partitions_in_batch_mode =  ${num_partitions} "
-
-                for (String cross_partition : ["true","false"] ) {
-
-                    sql """drop catalog if exists ${mc_catalog_name};"""
-                    sql """
-                        create catalog if not exists ${mc_catalog_name} 
properties (
-                            "type" = "max_compute",
-                            "mc.default.project" = "${mc_db}",
-                            "mc.access_key" = "${ak}",
-                            "mc.secret_key" = "${sk}",
-                            "mc.endpoint" = 
"http://service.cn-beijing-vpc.maxcompute.aliyun-inc.com/api";,
-                            "mc.split_cross_partition" = "${cross_partition}"
-                        );
-                    """
-                    sql """ switch ${mc_catalog_name} """
-                    sql """ use ${mc_db}"""
-
-                    qt_one_partition_1_1 one_partition_1_1
-                    explain {
-                        sql("${one_partition_1_1}")
-                        contains "partition=1/2"
-                    }
-
-                    qt_one_partition_2_1 one_partition_2_1
-                    explain {
-                        sql("${one_partition_2_1}")
-                        contains "partition=1/2"
-                    }
-
-                    qt_one_partition_3_all one_partition_3_all
-                    explain {
-                        sql("${one_partition_3_all}")
-                        contains "partition=2/2"
-                    }
-
-                    qt_one_partition_4_all one_partition_4_all
-                    explain {
-                        sql("${one_partition_4_all}")
-                        contains "partition=2/2"
-                    }
-
-                    qt_one_partition_5_1 one_partition_5_1
-                    explain {
-                        sql("${one_partition_5_1}")
-                        contains "partition=1/2"
-                    }
-
-
-                    qt_two_partition_1_1 two_partition_1_1
-                    explain {
-                        sql("${two_partition_1_1}")
-                        contains "partition=1/4"
-                    }
-
-                    qt_two_partition_2_1 two_partition_2_1
-                    explain {
-                        sql("${two_partition_2_1}")
-                        contains "partition=1/4"
-                    }
-
-                    qt_two_partition_3_2 two_partition_3_2
-                    explain {
-                        sql("${two_partition_3_2}")
-                        contains "partition=2/4"
-                    }
-
-                    qt_two_partition_4_all two_partition_4_all
-                    explain {
-                        sql("${two_partition_4_all}")
-                        contains "partition=4/4"
-                    }
-
-                    qt_two_partition_5_1 two_partition_5_1
-                    explain {
-                        sql("${two_partition_5_1}")
-                        contains "partition=1/4"
-                    }
-
-                    qt_two_partition_6_1 two_partition_6_1
-                    explain {
-                        sql("${two_partition_6_1}")
-                        contains "partition=1/4"
-                    }
-
-
-
-                    qt_three_partition_1_1 three_partition_1_1
-                    explain {
-                        sql("${three_partition_1_1}")
-                        contains "partition=1/10"
-                    }
-
-                    qt_three_partition_2_1 three_partition_2_1
-                    explain {
-                        sql("${three_partition_2_1}")
-                        contains "partition=1/10"
-                    }
-
-                    qt_three_partition_3_3 three_partition_3_3
-                    explain {
-                        sql("${three_partition_3_3}")
-                        contains "partition=3/10"
-                    }
-
-                    qt_three_partition_4_2 three_partition_4_2
-                    explain {
-                        sql("${three_partition_4_2}")
-                        contains "partition=2/10"
-                    }
-
-                    qt_three_partition_5_all three_partition_5_all
-                    explain {
-                        sql("${three_partition_5_all}")
-                        contains "partition=10/10"
-                    }
-
-                    qt_three_partition_6_1 three_partition_6_1
-                    explain {
-                        sql("${three_partition_6_1}")
-                        contains "partition=1/10"
-                    }
-
-                    qt_three_partition_7_7 three_partition_7_7
-                    explain {
-                        sql("${three_partition_7_7}")
-                        contains "partition=7/10"
-                    }
-
-                    qt_three_partition_8_2 three_partition_8_2
-                    explain {
-                        sql("${three_partition_8_2}")
-                        contains "partition=2/10"
-                    }
-
-
-                    // 0 partitions
-                    def one_partition_6_0 = """SELECT * FROM one_partition_tb 
WHERE part1 = 2023 ORDER BY id;"""
-                    qt_one_partition_6_0 one_partition_6_0
-                    explain {
-                        sql("${one_partition_6_0}")
-                        contains "partition=0/2"
-                    }
-
-                    def two_partition_7_0 = """SELECT * FROM two_partition_tb 
WHERE part1 = 'CN' AND part2 = 1 ORDER BY id;"""
-                    qt_two_partition_7_0 two_partition_7_0
-                    explain {
-                        sql("${two_partition_7_0}")
-                        contains "partition=0/4"
-                    }
-
-                    def two_partition_8_0 = """SELECT * FROM two_partition_tb 
WHERE part1 = 'US' AND part2 = 3 ORDER BY id;"""
-                    qt_two_partition_8_0 two_partition_8_0
-                    explain {
-                        sql("${two_partition_8_0}")
-                        contains "partition=0/4"
-                    }
-
-                    def three_partition_9_0 = """SELECT * FROM 
three_partition_tb WHERE part1 = 'US' AND part2 = 2023 AND part3 = 'Q1' ORDER 
BY id;"""
-                    qt_three_partition_9_0 three_partition_9_0
-                    explain {
-                        sql("${three_partition_9_0}")
-                        contains "partition=0/10"
-                    }
-
-                    def three_partition_10_0 = """SELECT * FROM 
three_partition_tb WHERE part1 = 'EU' AND part2 = 2024 AND part3 = 'Q4' ORDER 
BY id;"""
-                    qt_three_partition_10_0 three_partition_10_0
-                    explain {
-                        sql("${three_partition_10_0}")
-                        contains "partition=0/10"
-                    }
-
-                    def three_partition_11_0 = """SELECT * FROM 
three_partition_tb WHERE part1 = 'AS' AND part2 = 2025 AND part3 = 'Q4' ORDER 
BY id;"""
-                    qt_three_partition_11_0 three_partition_11_0
-                    explain {
-                        sql("${three_partition_11_0}")
-                        contains "partition=0/10"
-                    }
-                }
-            }
+        sql """drop catalog if exists ${mc_catalog_name};"""
+        sql """
+            create catalog if not exists ${mc_catalog_name} properties (
+                "type" = "max_compute",
+                "mc.default.project" = "${mc_db}",
+                "mc.access_key" = "${ak}",
+                "mc.secret_key" = "${sk}",
+                "mc.endpoint" = 
"http://service.cn-beijing-vpc.maxcompute.aliyun-inc.com/api";
+            );
+        """
+        sql """ switch ${mc_catalog_name} """
+        sql """ use ${mc_db}"""
+
+        qt_one_partition_1_1 one_partition_1_1
+        explain {
+            sql("${one_partition_1_1}")
+            contains "partition=1/2"
+            // VPluginDrivenScanNode surfaces the backing connector/catalog 
type
+            contains "CONNECTOR: max_compute"

Review Comment:
   [P1] Use an EXPLAIN field emitted by this release branch
   
   With `enableMaxComputeTest=true`, the first successful partition query is 
immediately followed by an EXPLAIN that cannot satisfy this check. This 
branch's `PhysicalPlanTranslator` constructs `MaxComputeScanNode`, which 
inherits `FileScanNode.getNodeExplainString`; that printer emits 
`partition=...` but no `CONNECTOR:` field, and this branch has no 
`PluginDrivenScanNode`. `ExplainAction.run()` throws when a required substring 
is absent, so the suite fails here and never reaches the remaining partition or 
new nonpartitioned assertions. Remove the plugin-only assertion from this 
backport or check the existing MaxCompute scan-node label.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to