Skip to content

Commit 3cbc950

Browse files
chore: ndv upper cutoff (#19133)
* ndv max * x * update test * update test * fix * fix --------- Co-authored-by: Winter Zhang <[email protected]>
1 parent 9b40063 commit 3cbc950

File tree

29 files changed

+1063
-1149
lines changed

29 files changed

+1063
-1149
lines changed

Cargo.toml

Lines changed: 0 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -11,80 +11,8 @@ members = [
1111
"src/bendpy",
1212
"src/bendsave",
1313
"src/binaries",
14-
"src/common/auth",
15-
"src/common/base",
16-
"src/common/building",
17-
"src/common/cache",
18-
"src/common/cloud_control",
19-
"src/common/column",
20-
"src/common/compress",
21-
"src/common/exception",
22-
"src/common/frozen_api",
23-
"src/common/grpc",
24-
"src/common/hashtable",
25-
"src/common/http",
26-
"src/common/io",
27-
"src/common/license",
28-
"src/common/metrics",
29-
"src/common/native",
30-
"src/common/storage",
31-
"src/common/telemetry",
32-
"src/common/timezone",
33-
"src/common/tracing",
34-
"src/common/vector",
35-
"src/common/version",
3614
"src/meta/*",
37-
"src/query/ast",
38-
"src/query/catalog",
3915
"src/query/codegen",
40-
"src/query/config",
41-
"src/query/datavalues",
42-
"src/query/ee_features/attach_table",
43-
"src/query/ee_features/data_mask",
44-
"src/query/ee_features/resources_management",
45-
"src/query/ee_features/storage_encryption",
46-
"src/query/ee_features/stream_handler",
47-
"src/query/ee_features/vacuum_handler",
48-
"src/query/ee_features/virtual_column",
49-
"src/query/ee",
50-
"src/query/expression",
51-
"src/query/formats",
52-
"src/query/functions",
53-
"src/query/functions",
54-
"src/query/functions/src/scalars/arithmetic",
55-
"src/query/functions/src/scalars/geographic",
56-
"src/query/functions/src/scalars/integer_arithmetic",
57-
"src/query/functions/src/scalars/mathematics",
58-
"src/query/functions/src/scalars/numeric_basic_arithmetic",
59-
"src/query/functions/src/scalars/timestamp",
60-
"src/query/management",
61-
"src/query/pipeline",
62-
"src/query/pipeline/transforms",
63-
"src/query/script",
64-
"src/query/service",
65-
"src/query/settings",
66-
"src/query/sql",
67-
"src/query/storages/basic",
68-
"src/query/storages/common/blocks",
69-
"src/query/storages/common/cache",
70-
"src/query/storages/common/index",
71-
"src/query/storages/common/io",
72-
"src/query/storages/common/pruner",
73-
"src/query/storages/common/session",
74-
"src/query/storages/common/stage",
75-
"src/query/storages/common/table_meta",
76-
"src/query/storages/delta",
77-
"src/query/storages/factory",
78-
"src/query/storages/fuse",
79-
"src/query/storages/hive/hive",
80-
"src/query/storages/iceberg",
81-
"src/query/storages/information_schema",
82-
"src/query/storages/orc",
83-
"src/query/storages/parquet",
84-
"src/query/storages/stage",
85-
"src/query/storages/stream",
86-
"src/query/storages/system",
87-
"src/query/users",
8816
"src/tests/sqlsmith",
8917
"tests/sqllogictests",
9018
]

src/query/ast/src/parser/script.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ pub fn script_stmts(i: Input) -> IResult<Vec<ScriptStatement>> {
158158
semicolon_terminated_list1(script_stmt).parse(i)
159159
}
160160

161+
#[recursive::recursive]
161162
pub fn script_stmt(i: Input) -> IResult<ScriptStatement> {
162163
if let Some(token) = i.tokens.first() {
163164
let kind = token.kind;

src/query/service/tests/it/sql/planner/optimizer/data/results/basic/01_cross_join_aggregation_optimized.txt

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ Aggregate(Final)
99
├── build keys: []
1010
├── probe keys: []
1111
├── other filters: []
12-
├── Scan
13-
── table: default.integers (#0)
14-
│ ├── filters: []
15-
│ ├── order by: []
16-
── limit: NONE
17-
└── Exchange(Broadcast)
18-
└── Scan
19-
├── table: default.integers (#1)
20-
├── filters: []
21-
├── order by: []
22-
└── limit: NONE
12+
├── Exchange(Broadcast)
13+
── Scan
14+
├── table: default.integers (#1)
15+
├── filters: []
16+
── order by: []
17+
└── limit: NONE
18+
└── Scan
19+
├── table: default.integers (#0)
20+
├── filters: []
21+
├── order by: []
22+
└── limit: NONE
2323

src/query/service/tests/it/sql/planner/optimizer/data/results/basic/01_cross_join_aggregation_raw.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ EvalScalar
1010
├── probe keys: []
1111
├── other filters: []
1212
├── Scan
13-
│ ├── table: default.integers (#0)
13+
│ ├── table: default.integers (#1)
1414
│ ├── filters: []
1515
│ ├── order by: []
1616
│ └── limit: NONE
1717
└── Scan
18-
├── table: default.integers (#1)
18+
├── table: default.integers (#0)
1919
├── filters: []
2020
├── order by: []
2121
└── limit: NONE

src/query/service/tests/it/sql/planner/optimizer/data/results/obfuscated/01_multi_join_avg_case_expression_optimized.txt

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -17,37 +17,37 @@ Exchange(Merge)
1717
├── build keys: [a1z.a0k (#48), a1z.a0n (#50)]
1818
├── probe keys: [a0c.a0k (#7), a0c.a0n (#10)]
1919
├── other filters: [lte(a1z.a2c (#52), a0c.a0d (#0)), gt(a1z.a2k (#61), a0c.a0d (#0))]
20-
├── Join(Inner)
21-
── build keys: [a0m (#149)]
22-
│ ├── probe keys: [a0c.a0m (#9)]
23-
│ ├── other filters: []
24-
│ ├── Join(Inner)
25-
── build keys: [a5r.a5t (#151)]
26-
│ │ ├── probe keys: [a0c.a0l (#8)]
27-
├── other filters: []
28-
├── Scan
29-
│ │ ├── table: default.a0c (#0)
30-
│ │ ├── filters: [gte(a0c.a0d (#0), '20240526'), lte(a0c.a0d (#0), '20250525')]
31-
── order by: []
32-
── limit: NONE
33-
│ └── Exchange(Broadcast)
34-
── Scan
35-
│ ├── table: default.a5r (#3)
36-
│ ├── filters: [eq(substring(a5r.a5w (#156), 1, 1), '1')]
37-
── order by: []
38-
└── limit: NONE
39-
── Exchange(Broadcast)
40-
── EvalScalar
41-
├── scalars: [CAST(a2x.a0m (#74) AS String NULL) AS (#149)]
42-
── Scan
43-
── table: default.a2x (#2)
44-
├── filters: [eq(substring(a2x.a4m (#118), 20, 1), '1')]
45-
├── order by: []
46-
── limit: NONE
47-
└── Exchange(Broadcast)
48-
└── Scan
49-
├── table: default.a1z (#1)
50-
├── filters: [eq(a1z.a2t (#70), '624100')]
51-
├── order by: []
52-
└── limit: NONE
20+
├── Exchange(Broadcast)
21+
── Scan
22+
├── table: default.a1z (#1)
23+
├── filters: [eq(a1z.a2t (#70), '624100')]
24+
├── order by: []
25+
── limit: NONE
26+
── Join(Inner)
27+
├── build keys: [a0m (#149)]
28+
├── probe keys: [a0c.a0m (#9)]
29+
├── other filters: []
30+
├── Exchange(Broadcast)
31+
── EvalScalar
32+
── scalars: [CAST(a2x.a0m (#74) AS String NULL) AS (#149)]
33+
└── Scan
34+
── table: default.a2x (#2)
35+
│ ├── filters: [eq(substring(a2x.a4m (#118), 20, 1), '1')]
36+
│ ├── order by: []
37+
── limit: NONE
38+
└── Join(Inner)
39+
── build keys: [a5r.a5t (#151)]
40+
── probe keys: [a0c.a0l (#8)]
41+
├── other filters: []
42+
── Exchange(Broadcast)
43+
── Scan
44+
├── table: default.a5r (#3)
45+
├── filters: [eq(substring(a5r.a5w (#156), 1, 1), '1')]
46+
── order by: []
47+
└── limit: NONE
48+
└── Scan
49+
├── table: default.a0c (#0)
50+
├── filters: [gte(a0c.a0d (#0), '20240526'), lte(a0c.a0d (#0), '20250525')]
51+
├── order by: []
52+
└── limit: NONE
5353

src/query/service/tests/it/sql/planner/optimizer/data/results/obfuscated/01_multi_join_avg_case_expression_raw.txt

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -13,34 +13,34 @@ EvalScalar
1313
├── build keys: [a5r.a5t (#151)]
1414
├── probe keys: [a0c.a0l (#8)]
1515
├── other filters: []
16-
├── Join(Left)
17-
│ ├── build keys: [a0m (#149)]
18-
│ ├── probe keys: [a0c.a0m (#9)]
19-
│ ├── other filters: []
20-
── Join(Left)
21-
│ │ ├── build keys: [a1z.a0k (#48), a1z.a0n (#50)]
22-
├── probe keys: [a0c.a0k (#7), a0c.a0n (#10)]
23-
├── other filters: [lte(a1z.a2c (#52), a0c.a0d (#0)), gt(a1z.a2k (#61), a0c.a0d (#0))]
24-
├── Scan
25-
│ │ ├── table: default.a0c (#0)
26-
│ ├── filters: []
27-
── order by: []
28-
── limit: NONE
29-
── Scan
30-
│ ├── table: default.a1z (#1)
31-
── filters: []
32-
│ ├── order by: []
33-
── limit: NONE
34-
── EvalScalar
35-
├── scalars: [CAST(a2x.a0m (#74) AS String NULL) AS (#149)]
36-
── Scan
37-
├── table: default.a2x (#2)
38-
├── filters: []
39-
├── order by: []
40-
└── limit: NONE
41-
└── Scan
42-
├── table: default.a5r (#3)
43-
├── filters: []
44-
├── order by: []
45-
└── limit: NONE
16+
├── Scan
17+
│ ├── table: default.a5r (#3)
18+
│ ├── filters: []
19+
│ ├── order by: []
20+
── limit: NONE
21+
── Join(Left)
22+
├── build keys: [a0m (#149)]
23+
├── probe keys: [a0c.a0m (#9)]
24+
├── other filters: []
25+
├── EvalScalar
26+
│ ├── scalars: [CAST(a2x.a0m (#74) AS String NULL) AS (#149)]
27+
── Scan
28+
── table: default.a2x (#2)
29+
── filters: []
30+
│ ├── order by: []
31+
── limit: NONE
32+
── Join(Left)
33+
── build keys: [a1z.a0k (#48), a1z.a0n (#50)]
34+
── probe keys: [a0c.a0k (#7), a0c.a0n (#10)]
35+
├── other filters: [lte(a1z.a2c (#52), a0c.a0d (#0)), gt(a1z.a2k (#61), a0c.a0d (#0))]
36+
── Scan
37+
├── table: default.a1z (#1)
38+
├── filters: []
39+
├── order by: []
40+
└── limit: NONE
41+
└── Scan
42+
├── table: default.a0c (#0)
43+
├── filters: []
44+
├── order by: []
45+
└── limit: NONE
4646

src/query/service/tests/it/sql/planner/optimizer/data/results/obfuscated/01_multi_join_sum_case_expression_optimized.txt

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -15,37 +15,37 @@ Exchange(Merge)
1515
├── build keys: [a1z.a0k (#48), a1z.a0n (#50)]
1616
├── probe keys: [a0c.a0k (#7), a0c.a0n (#10)]
1717
├── other filters: [lte(a1z.a2c (#52), a0c.a0d (#0)), gt(a1z.a2k (#61), a0c.a0d (#0))]
18-
├── Join(Inner)
19-
── build keys: [a0m (#149)]
20-
│ ├── probe keys: [a0c.a0m (#9)]
21-
│ ├── other filters: []
22-
│ ├── Join(Inner)
23-
── build keys: [a5r.a5t (#151)]
24-
│ │ ├── probe keys: [a0c.a0l (#8)]
25-
├── other filters: []
26-
├── Scan
27-
│ │ ├── table: default.a0c (#0)
28-
│ │ ├── filters: [gte(a0c.a0d (#0), '20240526'), lte(a0c.a0d (#0), '20250525')]
29-
── order by: []
30-
── limit: NONE
31-
│ └── Exchange(Broadcast)
32-
── Scan
33-
│ ├── table: default.a5r (#3)
34-
│ ├── filters: [eq(substring(a5r.a5w (#156), 1, 1), '1')]
35-
── order by: []
36-
└── limit: NONE
37-
── Exchange(Broadcast)
38-
── EvalScalar
39-
├── scalars: [CAST(a2x.a0m (#74) AS String NULL) AS (#149)]
40-
── Scan
41-
── table: default.a2x (#2)
42-
├── filters: [eq(substring(a2x.a4m (#118), 20, 1), '1')]
43-
├── order by: []
44-
── limit: NONE
45-
└── Exchange(Broadcast)
46-
└── Scan
47-
├── table: default.a1z (#1)
48-
├── filters: [eq(a1z.a2t (#70), '624100')]
49-
├── order by: []
50-
└── limit: NONE
18+
├── Exchange(Broadcast)
19+
── Scan
20+
├── table: default.a1z (#1)
21+
├── filters: [eq(a1z.a2t (#70), '624100')]
22+
├── order by: []
23+
── limit: NONE
24+
── Join(Inner)
25+
├── build keys: [a0m (#149)]
26+
├── probe keys: [a0c.a0m (#9)]
27+
├── other filters: []
28+
├── Exchange(Broadcast)
29+
── EvalScalar
30+
── scalars: [CAST(a2x.a0m (#74) AS String NULL) AS (#149)]
31+
└── Scan
32+
── table: default.a2x (#2)
33+
│ ├── filters: [eq(substring(a2x.a4m (#118), 20, 1), '1')]
34+
│ ├── order by: []
35+
── limit: NONE
36+
└── Join(Inner)
37+
── build keys: [a5r.a5t (#151)]
38+
── probe keys: [a0c.a0l (#8)]
39+
├── other filters: []
40+
── Exchange(Broadcast)
41+
── Scan
42+
├── table: default.a5r (#3)
43+
├── filters: [eq(substring(a5r.a5w (#156), 1, 1), '1')]
44+
── order by: []
45+
└── limit: NONE
46+
└── Scan
47+
├── table: default.a0c (#0)
48+
├── filters: [gte(a0c.a0d (#0), '20240526'), lte(a0c.a0d (#0), '20250525')]
49+
├── order by: []
50+
└── limit: NONE
5151

0 commit comments

Comments
 (0)