[CP]fix: decide snapshot-type incorrect when change tx-isolation during txn executing

This commit is contained in:
chinaxing
2022-05-16 10:43:20 +08:00
committed by wangzelin.wzl
parent 9d750fb89c
commit 6e4638eae9

View File

@ -607,7 +607,8 @@ int ObSqlTransControl::decide_trans_read_interface_specs(const char* module, con
const bool is_build_index_stmt = (stmt::T_BUILD_INDEX_SSTABLE == stmt_type); const bool is_build_index_stmt = (stmt::T_BUILD_INDEX_SSTABLE == stmt_type);
uint64_t tenant_id = session.get_effective_tenant_id(); uint64_t tenant_id = session.get_effective_tenant_id();
const bool stmt_spec_snapshot_version_is_valid = session.has_valid_read_snapshot_version(); const bool stmt_spec_snapshot_version_is_valid = session.has_valid_read_snapshot_version();
int32_t isolation = session.get_tx_isolation(); int32_t isolation = session.is_in_transaction() ? session.get_trans_desc().get_trans_param().get_isolation()
: session.get_tx_isolation();
const bool is_serializable_trans = const bool is_serializable_trans =
(ObTransIsolation::SERIALIZABLE == isolation || ObTransIsolation::REPEATABLE_READ == isolation); (ObTransIsolation::SERIALIZABLE == isolation || ObTransIsolation::REPEATABLE_READ == isolation);