summaryrefslogtreecommitdiff
path: root/sql/sql_class.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_class.h')
-rw-r--r--sql/sql_class.h27
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.
*/