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 {
492492 scope : SettingScope :: Both ,
493493 range : Some ( SettingRange :: Numeric ( 0 ..=1 ) ) ,
494494 } ) ,
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+ } ) ,
495502 ( "enforce_broadcast_join" , DefaultSettingValue {
496503 value : UserSettingValue :: UInt64 ( 0 ) ,
497504 desc : "Enforce broadcast join." ,
Original file line number Diff line number Diff line change @@ -1013,4 +1013,8 @@ impl Settings {
10131013 pub fn get_enable_parallel_union_all ( & self ) -> Result < bool > {
10141014 Ok ( self . try_get_u64 ( "enable_parallel_union_all" ) ? == 1 )
10151015 }
1016+
1017+ pub fn get_enforce_local ( & self ) -> Result < bool > {
1018+ Ok ( self . try_get_u64 ( "enforce_local" ) ? == 1 )
1019+ }
10161020}
Original file line number Diff line number Diff line change @@ -272,7 +272,9 @@ impl Planner {
272272
273273 // Step 4: Optimize the SExpr with optimizers, and generate optimized physical SExpr
274274 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+ )
276278 . set_enable_join_reorder ( unsafe { !settings. get_disable_join_reorder ( ) ? } )
277279 . set_enable_dphyp ( settings. get_enable_dphyp ( ) ?)
278280 . 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(
8686 let plan = binder. bind ( & stmt) . await ?;
8787
8888 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+ )
9092 . set_enable_join_reorder ( unsafe { !settings. get_disable_join_reorder ( ) ? } )
9193 . set_enable_dphyp ( settings. get_enable_dphyp ( ) ?)
9294 . 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