[to #33186370] fix cursor for loop & tcl retry logic
This commit is contained in:
@ -1467,6 +1467,7 @@ int ObSPIService::spi_inner_execute(ObPLExecCtx *ctx,
|
||||
//自动提交,禁掉PL整体重试
|
||||
if (OB_SUCC(ret)
|
||||
&& (ObStmt::is_ddl_stmt(stmt_type, true)
|
||||
|| ObStmt::is_tcl_stmt(stmt_type)
|
||||
|| (lib::is_mysql_mode() && session->get_local_autocommit()))) {
|
||||
OX (session->set_pl_can_retry(false));
|
||||
}
|
||||
@ -1687,6 +1688,7 @@ int ObSPIService::dbms_cursor_execute(ObPLExecCtx *ctx,
|
||||
//自动提交,禁掉PL整体重试
|
||||
if (OB_SUCC(ret)
|
||||
&& (ObStmt::is_ddl_stmt(stmt_type, true)
|
||||
|| ObStmt::is_tcl_stmt(stmt_type)
|
||||
|| (lib::is_mysql_mode() && session->get_local_autocommit()))) {
|
||||
OX (session->set_pl_can_retry(false));
|
||||
}
|
||||
@ -2598,6 +2600,7 @@ int ObSPIService::spi_execute_immediate(ObPLExecCtx *ctx,
|
||||
//自动提交,禁掉PL整体重试
|
||||
if (OB_SUCC(ret)
|
||||
&& (ObStmt::is_ddl_stmt(stmt_type, true)
|
||||
|| ObStmt::is_tcl_stmt(stmt_type)
|
||||
|| (lib::is_mysql_mode() && session->get_local_autocommit()))) {
|
||||
OX (session->set_pl_can_retry(false));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user