From 6e6eedc0b8178eeedea8005d65c2a15b637a1221 Mon Sep 17 00:00:00 2001 From: obdev Date: Mon, 13 Nov 2023 07:13:15 +0000 Subject: [PATCH] [CP] disable var assign use das default --- src/share/parameter/ob_parameter_seed.ipp | 2 +- src/sql/optimizer/ob_join_order.cpp | 6 ++++-- src/sql/plan_cache/ob_plan_cache_util.h | 2 +- src/sql/resolver/dml/ob_dml_resolver.cpp | 2 +- src/sql/session/ob_sql_session_info.cpp | 2 +- tools/deploy/init_for_ce.sql | 4 ++++ 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/share/parameter/ob_parameter_seed.ipp b/src/share/parameter/ob_parameter_seed.ipp index 24ed0e649..0747335ba 100755 --- a/src/share/parameter/ob_parameter_seed.ipp +++ b/src/share/parameter/ob_parameter_seed.ipp @@ -1400,7 +1400,7 @@ DEF_BOOL(_enable_new_sql_nio, OB_CLUSTER_PARAMETER, "true", ObParameterAttr(Section::OBSERVER, Source::DEFAULT, EditLevel::STATIC_EFFECTIVE)); // Add a config to enable use das if the sql statement has variable assignment -DEF_BOOL(_enable_var_assign_use_das, OB_TENANT_PARAMETER, "True", +DEF_BOOL(_enable_var_assign_use_das, OB_TENANT_PARAMETER, "False", "enable use das if the sql statement has variable assignment", ObParameterAttr(Section::OBSERVER, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE)); // query response time diff --git a/src/sql/optimizer/ob_join_order.cpp b/src/sql/optimizer/ob_join_order.cpp index d918a71f2..9e3aa99d2 100644 --- a/src/sql/optimizer/ob_join_order.cpp +++ b/src/sql/optimizer/ob_join_order.cpp @@ -1486,7 +1486,7 @@ int ObJoinOrder::will_use_das(const uint64_t table_id, is_sample_stmt = true; } } - bool enable_var_assign_use_das = true; + bool enable_var_assign_use_das = false; if (OB_SUCC(ret)) { ObSQLSessionInfo *session_info = NULL; if (OB_NOT_NULL(session_info = get_plan()->get_optimizer_context().get_session_info())) { @@ -1500,12 +1500,14 @@ int ObJoinOrder::will_use_das(const uint64_t table_id, bool hint_force_das = false; bool hint_force_no_das = false; int64_t explicit_dop = ObGlobalHint::UNSET_PARALLEL; + // TODO: access virtual table by remote das task is not supported, it will report 4016 error in execute server + // Ensure that the following scenarios will not combined with virtual table force_das_tsc = get_plan()->get_optimizer_context().in_nested_sql() || get_plan()->get_optimizer_context().has_pl_udf() || get_plan()->get_optimizer_context().has_dblink() || get_plan()->get_optimizer_context().has_subquery_in_function_table() || get_plan()->get_optimizer_context().has_cursor_expression() || - (get_plan()->get_optimizer_context().has_var_assign() && enable_var_assign_use_das) || + (get_plan()->get_optimizer_context().has_var_assign() && enable_var_assign_use_das && !is_virtual_table(ref_id)) || is_batch_update_table; if (EXTERNAL_TABLE == table_item->table_type_) { create_das_path = false; diff --git a/src/sql/plan_cache/ob_plan_cache_util.h b/src/sql/plan_cache/ob_plan_cache_util.h index b14f4e0c2..b4f86bd38 100644 --- a/src/sql/plan_cache/ob_plan_cache_util.h +++ b/src/sql/plan_cache/ob_plan_cache_util.h @@ -1004,7 +1004,7 @@ public: px_join_skew_minfreq_(30), min_cluster_version_(0), is_enable_px_fast_reclaim_(false), - enable_var_assign_use_das_(true), + enable_var_assign_use_das_(false), cluster_config_version_(-1), tenant_config_version_(-1), tenant_id_(0) diff --git a/src/sql/resolver/dml/ob_dml_resolver.cpp b/src/sql/resolver/dml/ob_dml_resolver.cpp index 2bc027979..9cbfc536e 100755 --- a/src/sql/resolver/dml/ob_dml_resolver.cpp +++ b/src/sql/resolver/dml/ob_dml_resolver.cpp @@ -4478,7 +4478,7 @@ int ObDMLResolver::do_resolve_generate_table(const ParseNode &table_node, LOG_WARN("get unexpected error", K(alias_node->type_), K(ret)); } - bool enable_var_assign_use_das = true; + bool enable_var_assign_use_das = false; if (OB_SUCC(ret)) { if (OB_NOT_NULL(session_info_)) { enable_var_assign_use_das = session_info_->is_var_assign_use_das_enabled(); diff --git a/src/sql/session/ob_sql_session_info.cpp b/src/sql/session/ob_sql_session_info.cpp index 4163a96ca..0656c18ff 100644 --- a/src/sql/session/ob_sql_session_info.cpp +++ b/src/sql/session/ob_sql_session_info.cpp @@ -526,7 +526,7 @@ int ObSQLSessionInfo::is_enable_range_extraction_for_not_in(bool &enabled) const bool ObSQLSessionInfo::is_var_assign_use_das_enabled() const { - bool bret = true; + bool bret = false; int64_t tenant_id = get_effective_tenant_id(); omt::ObTenantConfigGuard tenant_config(TENANT_CONF(tenant_id)); if (tenant_config.is_valid()) { diff --git a/tools/deploy/init_for_ce.sql b/tools/deploy/init_for_ce.sql index bfb24454e..5f9ad5beb 100644 --- a/tools/deploy/init_for_ce.sql +++ b/tools/deploy/init_for_ce.sql @@ -44,3 +44,7 @@ alter system set_tp tp_no = 1200, error_code = 4001, frequency = 1; alter system set_tp tp_no = 509, error_code = 4016, frequency = 1; alter system set_tp tp_no = 368, error_code = 4016, frequency = 1; alter system set_tp tp_no = 551, error_code = 5434, frequency = 1; + +alter system set _enable_var_assign_use_das = true tenant = sys; +alter system set _enable_var_assign_use_das = true tenant = all_user; +alter system set _enable_var_assign_use_das = true tenant = all_meta; \ No newline at end of file