Merge branch 'column_store'

Co-authored-by: wangt1xiuyi <13547954130@163.com>
Co-authored-by: yangqise7en <877793735@qq.com>
Co-authored-by: Zach41 <zach_41@163.com>
This commit is contained in:
chaser-ch
2023-10-31 15:39:20 +00:00
committed by ob-robot
parent 4057fbc4ae
commit 566e920620
1375 changed files with 239147 additions and 56014 deletions

View File

@ -416,6 +416,7 @@ int ObValuesTableCompression::resolve_params_for_values_clause(ObPlanCacheCtx &p
int64_t array_param_idx = 0; // idx in pc_ctx.fp_result_.array_params_
int64_t not_param_cnt = 0;
bool is_param = false;
bool enable_decimal_int = false;
if (OB_UNLIKELY(!pc_ctx.exec_ctx_.has_dynamic_values_table()) || OB_ISNULL(session) ||
OB_ISNULL(phy_ctx) || OB_UNLIKELY(param_charset_type.count() != raw_param_cnt) ||
OB_ISNULL(ab_params)) {
@ -424,6 +425,8 @@ int ObValuesTableCompression::resolve_params_for_values_clause(ObPlanCacheCtx &p
K(param_charset_type.count()), KP(ab_params));
} else if (OB_FAIL(ab_params->reserve(raw_param_cnt))) {
LOG_WARN("failed to reserve param num", K(ret));
} else if (OB_FAIL(ObSQLUtils::check_enable_decimalint(session, enable_decimal_int))) {
LOG_WARN("fail to check enable decimal int", K(ret));
} else {
ParamStore &phy_param_store = phy_ctx->get_param_store_for_update();
ObIArray<ObArrayParamGroup> &array_param_groups = phy_ctx->get_array_param_groups();
@ -440,7 +443,7 @@ int ObValuesTableCompression::resolve_params_for_values_clause(ObPlanCacheCtx &p
if (OB_FAIL(ObResolverUtils::resolver_param(pc_ctx, *session, phy_param_store, stmt_type,
param_charset_type.at(raw_idx), neg_param_index, not_param_index,
must_be_positive_idx, pc_ctx.fp_result_.raw_params_.at(raw_idx), raw_idx,
obj_param, is_param))) {
obj_param, is_param, enable_decimal_int))) {
LOG_WARN("failed to resolver param", K(ret), K(raw_idx));
} else if (!is_param) {
not_param_cnt++; // in value clause, which wonn't happen actually
@ -464,7 +467,7 @@ int ObValuesTableCompression::resolve_params_for_values_clause(ObPlanCacheCtx &p
if (OB_FAIL(ObResolverUtils::resolver_param(pc_ctx, *session, phy_param_store, stmt_type,
param_charset_type.at(raw_idx), neg_param_index, not_param_index,
must_be_positive_idx, raw_array_param->at(k), raw_idx,
array_param_ptr->data_[k], is_param))) {
array_param_ptr->data_[k], is_param, enable_decimal_int))) {
LOG_WARN("failed to resolver param", K(ret), K(k), K(raw_idx), K(j));
} else {
const ObObjParam &param = array_param_ptr->data_[k];
@ -534,7 +537,7 @@ int ObValuesTableCompression::resolve_params_for_values_clause(ObPlanCacheCtx &p
if (OB_FAIL(ObResolverUtils::resolver_param(pc_ctx, *session, phy_param_store, stmt_type,
param_charset_type.at(raw_idx), neg_param_index, not_param_index,
must_be_positive_idx, pc_ctx.fp_result_.raw_params_.at(raw_idx), raw_idx,
obj_param, is_param))) {
obj_param, is_param, enable_decimal_int))) {
LOG_WARN("failed to resolver param", K(ret), K(raw_idx));
} else if (!is_param) {
not_param_cnt++;
@ -559,12 +562,15 @@ int ObValuesTableCompression::resolve_params_for_values_clause(ObPlanCacheCtx &p
int64_t raw_idx = 0; // idx in pc_ctx.fp_result_.raw_params_
int64_t array_param_idx = 0; // idx in pc_ctx.fp_result_.array_params_
bool is_param = false;
bool enable_decimal_int = false;
const ObIArray<ObCharsetType> &param_charset_type = pc_ctx.param_charset_type_;
if (OB_UNLIKELY(!pc_ctx.exec_ctx_.has_dynamic_values_table()) || OB_ISNULL(session) ||
OB_ISNULL(phy_ctx) || OB_UNLIKELY(param_charset_type.count() != raw_param_cnt)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("sql should be mutil stmt", K(ret), KP(session), KP(phy_ctx), K(raw_param_cnt),
K(param_charset_type.count()));
} else if (OB_FAIL(ObSQLUtils::check_enable_decimalint(session, enable_decimal_int))) {
LOG_WARN("fail to check enable decimal int", K(ret));
} else {
ParamStore &phy_param_store = phy_ctx->get_param_store_for_update();
ObIArray<ObArrayParamGroup> &array_param_groups = phy_ctx->get_array_param_groups();
@ -591,7 +597,7 @@ int ObValuesTableCompression::resolve_params_for_values_clause(ObPlanCacheCtx &p
if (OB_FAIL(ObResolverUtils::resolver_param(pc_ctx, *session, phy_param_store, stmt::T_SELECT,
param_charset_type.at(raw_idx), bit_set_dummy, bit_set_dummy,
bit_set_dummy, raw_array_param->at(k), raw_idx,
array_param_ptr->data_[k], is_param))) {
array_param_ptr->data_[k], is_param, enable_decimal_int))) {
LOG_WARN("failed to resolver param", K(ret), K(k), K(raw_idx), K(j));
} else {
const ObObjParam &param = array_param_ptr->data_[k];