Skip to content
This repository was archived by the owner on Feb 20, 2023. It is now read-only.

Commit ef282f2

Browse files
authored
Merge branch 'master' into groupby
2 parents f9ae317 + 39d598b commit ef282f2

File tree

4 files changed

+23
-3
lines changed

4 files changed

+23
-3
lines changed

src/include/settings/settings_callbacks.h

+4
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,10 @@ class Callbacks {
9696
static void MetricsQueryTraceOutput(void *old_value, void *new_value, DBMain *db_main,
9797
common::ManagedPointer<common::ActionContext> action_context);
9898

99+
/** Update the query execution mode in TrafficCop */
100+
static void CompiledQueryExecution(void *old_value, void *new_value, DBMain *db_main,
101+
common::ManagedPointer<common::ActionContext> action_context);
102+
99103
/** Set the forecast sample limit. */
100104
static void ForecastSampleLimit(void *old_value, void *new_value, DBMain *db_main,
101105
common::ManagedPointer<common::ActionContext> action_context);

src/include/settings/settings_defs.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -409,8 +409,8 @@ SETTING_bool(
409409
compiled_query_execution,
410410
"Compile queries to native machine code using LLVM, rather than relying on TPL interpretation (default: false).",
411411
false,
412-
false,
413-
noisepage::settings::Callbacks::NoOp
412+
true,
413+
noisepage::settings::Callbacks::CompiledQueryExecution
414414
)
415415

416416
SETTING_string(

src/include/traffic_cop/traffic_cop.h

+9-1
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,14 @@ class TrafficCop {
260260
*/
261261
void SetOptimizerTimeout(const uint64_t optimizer_timeout) { optimizer_timeout_ = optimizer_timeout; }
262262

263+
/**
264+
* Adjust the TrafficCop's execution mode value (for use by SettingsManager)
265+
* @param is_compiled set execution_mode_ to Compiled if true; Interpret if false
266+
*/
267+
void SetExecutionMode(bool is_compiled) {
268+
execution_mode_ = is_compiled ? execution::vm::ExecutionMode::Compiled : execution::vm::ExecutionMode::Interpret;
269+
}
270+
263271
/**
264272
* @return true if query caching enabled, false otherwise
265273
*/
@@ -274,7 +282,7 @@ class TrafficCop {
274282
common::ManagedPointer<optimizer::StatsStorage> stats_storage_;
275283
uint64_t optimizer_timeout_;
276284
const bool use_query_cache_;
277-
const execution::vm::ExecutionMode execution_mode_;
285+
execution::vm::ExecutionMode execution_mode_;
278286
};
279287

280288
} // namespace noisepage::trafficcop

src/settings/settings_callbacks.cpp

+8
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,14 @@ void Callbacks::MetricsQueryTraceOutput(void *const old_value, void *const new_v
186186
action_context->SetState(common::ActionState::SUCCESS);
187187
}
188188

189+
void Callbacks::CompiledQueryExecution(void *const old_value, void *const new_value, DBMain *const db_main,
190+
common::ManagedPointer<common::ActionContext> action_context) {
191+
action_context->SetState(common::ActionState::IN_PROGRESS);
192+
bool is_compiled = *static_cast<bool *>(new_value);
193+
db_main->GetTrafficCop()->SetExecutionMode(is_compiled);
194+
action_context->SetState(common::ActionState::SUCCESS);
195+
}
196+
189197
void Callbacks::ForecastSampleLimit(void *old_value, void *new_value, DBMain *db_main,
190198
common::ManagedPointer<common::ActionContext> action_context) {
191199
action_context->SetState(common::ActionState::IN_PROGRESS);

0 commit comments

Comments
 (0)