diff options
Diffstat (limited to 'sql/sql_class.h')
-rw-r--r-- | sql/sql_class.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/sql/sql_class.h b/sql/sql_class.h index 844db884c05..4b39cad82bc 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -687,6 +687,10 @@ typedef struct system_variables my_bool sequence_read_skip_cache; ulong threadpool_priority; + + uint idle_transaction_timeout; + uint idle_readonly_transaction_timeout; + uint idle_readwrite_transaction_timeout; } SV; /** @@ -4393,6 +4397,29 @@ public: mysql_mutex_unlock(&LOCK_thread_count); } + + uint get_net_wait_timeout() + { + if (in_active_multi_stmt_transaction()) + { + if (transaction.all.is_trx_read_write()) + { + if (variables.idle_readwrite_transaction_timeout > 0) + return variables.idle_readwrite_transaction_timeout; + } + else + { + if (variables.idle_readonly_transaction_timeout > 0) + return variables.idle_readonly_transaction_timeout; + } + + if (variables.idle_transaction_timeout > 0) + return variables.idle_transaction_timeout; + } + + return variables.net_wait_timeout; + } + /** Switch to a sublex, to parse a substatement or an expression. */ |