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]