Skip to content

Commit 006c7f3

Browse files
committed
[yugabyte#27495] YSQL: add ysql_yb_enable_cbo tserver flag
Summary: Add tserver GFlag counter part of yb_enable_cbo, a GUC parameter introduced by yugabyte#26868. Jira: DB-17048 Test Plan: Manual test with both valid and invalid values, jenkins Reviewers: hsunder, mihnea Reviewed By: hsunder Subscribers: yql Differential Revision: https://phorge.dev.yugabyte.com/D44518
1 parent 790195b commit 006c7f3

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/yb/yql/pgwrapper/pg_wrapper.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,10 @@ DEFINE_RUNTIME_PG_PREVIEW_FLAG(bool, yb_enable_optimizer_statistics, false,
262262
DEFINE_RUNTIME_PG_PREVIEW_FLAG(bool, yb_enable_base_scans_cost_model, false,
263263
"Enable cost model enhancements");
264264

265+
DEFINE_RUNTIME_PG_FLAG(string, yb_enable_cbo, "legacy_mode",
266+
"YSQL cost-based optimizer mode. Allowed values are 'legacy_mode', 'legacy_stats_mode', "
267+
"'off', and 'on'");
268+
265269
DEFINE_RUNTIME_PG_FLAG(uint64, yb_fetch_row_limit, 1024,
266270
"Maximum number of rows to fetch per scan.");
267271

@@ -528,6 +532,10 @@ static bool ValidateDocumentDB(const char* flag_name, bool value) {
528532

529533
DEFINE_validator(ysql_enable_documentdb, &ValidateDocumentDB);
530534

535+
// Keep the value list in sync with `yb_cost_model_options` in `guc.c`.
536+
DEFINE_validator(ysql_yb_enable_cbo,
537+
FLAG_IN_SET_VALIDATOR("off", "on", "legacy_mode", "legacy_stats_mode"));
538+
531539
namespace {
532540
// Append any Pg gFlag with non default value, or non-promoted AutoFlag
533541
void AppendPgGFlags(vector<string>* lines) {

0 commit comments

Comments
 (0)