File tree Expand file tree Collapse file tree 5 files changed +45
-2
lines changed
tests/sqllogictests/suites/mode/cluster Expand file tree Collapse file tree 5 files changed +45
-2
lines changed Original file line number Diff line number Diff line change @@ -492,6 +492,13 @@ impl DefaultSettings {
492
492
scope : SettingScope :: Both ,
493
493
range : Some ( SettingRange :: Numeric ( 0 ..=1 ) ) ,
494
494
} ) ,
495
+ ( "enforce_local" , DefaultSettingValue {
496
+ value : UserSettingValue :: UInt64 ( 0 ) ,
497
+ desc : "Enforce local plan." ,
498
+ mode : SettingMode :: Both ,
499
+ scope : SettingScope :: Both ,
500
+ range : Some ( SettingRange :: Numeric ( 0 ..=1 ) ) ,
501
+ } ) ,
495
502
( "enforce_broadcast_join" , DefaultSettingValue {
496
503
value : UserSettingValue :: UInt64 ( 0 ) ,
497
504
desc : "Enforce broadcast join." ,
Original file line number Diff line number Diff line change @@ -1013,4 +1013,8 @@ impl Settings {
1013
1013
pub fn get_enable_parallel_union_all ( & self ) -> Result < bool > {
1014
1014
Ok ( self . try_get_u64 ( "enable_parallel_union_all" ) ? == 1 )
1015
1015
}
1016
+
1017
+ pub fn get_enforce_local ( & self ) -> Result < bool > {
1018
+ Ok ( self . try_get_u64 ( "enforce_local" ) ? == 1 )
1019
+ }
1016
1020
}
Original file line number Diff line number Diff line change @@ -272,7 +272,9 @@ impl Planner {
272
272
273
273
// Step 4: Optimize the SExpr with optimizers, and generate optimized physical SExpr
274
274
let opt_ctx = OptimizerContext :: new ( self . ctx . clone ( ) , metadata. clone ( ) )
275
- . set_enable_distributed_optimization ( !self . ctx . get_cluster ( ) . is_empty ( ) )
275
+ . set_enable_distributed_optimization (
276
+ !self . ctx . get_cluster ( ) . is_empty ( ) && !settings. get_enforce_local ( ) ?,
277
+ )
276
278
. set_enable_join_reorder ( unsafe { !settings. get_disable_join_reorder ( ) ? } )
277
279
. set_enable_dphyp ( settings. get_enable_dphyp ( ) ?)
278
280
. set_max_push_down_limit ( settings. get_max_push_down_limit ( ) ?)
Original file line number Diff line number Diff line change @@ -86,7 +86,9 @@ pub async fn plan_hilbert_sql(
86
86
let plan = binder. bind ( & stmt) . await ?;
87
87
88
88
let opt_ctx = OptimizerContext :: new ( ctx. clone ( ) , metadata)
89
- . set_enable_distributed_optimization ( !ctx. get_cluster ( ) . is_empty ( ) )
89
+ . set_enable_distributed_optimization (
90
+ !ctx. get_cluster ( ) . is_empty ( ) && !settings. get_enforce_local ( ) ?,
91
+ )
90
92
. set_enable_join_reorder ( unsafe { !settings. get_disable_join_reorder ( ) ? } )
91
93
. set_enable_dphyp ( settings. get_enable_dphyp ( ) ?)
92
94
. set_max_push_down_limit ( settings. get_max_push_down_limit ( ) ?)
Original file line number Diff line number Diff line change
1
+ statement ok
2
+ set enforce_local = 1;
3
+
4
+ query T
5
+ EXPLAIN SELECT number FROM numbers_mt(100000) GROUP BY number;
6
+ ----
7
+ AggregateFinal
8
+ โโโ output columns: [numbers_mt.number (#0)]
9
+ โโโ group by: [number]
10
+ โโโ aggregate functions: []
11
+ โโโ estimated rows: 100000.00
12
+ โโโ AggregatePartial
13
+ โโโ group by: [number]
14
+ โโโ aggregate functions: []
15
+ โโโ estimated rows: 100000.00
16
+ โโโ TableScan
17
+ โโโ table: default.system.numbers_mt
18
+ โโโ output columns: [number (#0)]
19
+ โโโ read rows: 100000
20
+ โโโ read size: 781.25 KiB
21
+ โโโ partitions total: 2
22
+ โโโ partitions scanned: 2
23
+ โโโ push downs: [filters: [], limit: NONE]
24
+ โโโ estimated rows: 100000.00
25
+
26
+
27
+ statement ok
28
+ set enforce_local = 0;
You canโt perform that action at this time.
0 commit comments