fix bug of autocommit on full direct load path
This commit is contained in:
parent
cb9b57eaf2
commit
f7a71abf77
@ -317,7 +317,8 @@ int ObDirectLoadOptimizer::check_support_direct_load(
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("fail to get schema guard", K(ret), KP(sql_ctx));
|
||||
} else {
|
||||
if (direct_load_optimizer_ctx_.is_insert_overwrite() || direct_load_optimizer_ctx_.is_full_direct_load()) {
|
||||
// insert overwrite和insert into select全量不支持autocommit=false和session在事务内
|
||||
if (direct_load_optimizer_ctx_.is_insert_overwrite() || (direct_load_optimizer_ctx_.is_insert_into() && direct_load_optimizer_ctx_.is_full_direct_load())) {
|
||||
bool auto_commit = false;
|
||||
ObSQLSessionInfo *session_info = nullptr;
|
||||
if (OB_ISNULL(session_info = exec_ctx->get_my_session())) {
|
||||
|
@ -45,6 +45,7 @@ public:
|
||||
bool is_inc_direct_load() const { return load_method_ == ObDirectLoadMethod::INCREMENTAL && insert_mode_ == ObDirectLoadInsertMode::NORMAL; }
|
||||
bool is_inc_replace_direct_load() const { return load_method_ == ObDirectLoadMethod::INCREMENTAL && insert_mode_ == ObDirectLoadInsertMode::INC_REPLACE; }
|
||||
bool is_insert_overwrite() const { return ObDirectLoadMode::is_insert_overwrite(load_mode_); }
|
||||
bool is_insert_into() const { return load_mode_ == ObDirectLoadMode::INSERT_INTO; }
|
||||
void reset();
|
||||
TO_STRING_KV(K_(table_id), K_(load_method), K_(insert_mode), K_(load_mode), K_(dup_action),
|
||||
K_(max_error_row_count), K_(need_sort), K_(can_use_direct_load), K_(use_direct_load), K_(is_optimized));
|
||||
|
Loading…
x
Reference in New Issue
Block a user