summaryrefslogtreecommitdiff
path: root/sql/sql_class.h
diff options
context:
space:
mode:
authormonty@nosik.monty.fi <>2007-08-02 07:55:33 +0300
committermonty@nosik.monty.fi <>2007-08-02 07:55:33 +0300
commit93f0771fca8b2b6eb4ebfec81702fcee69ddaa3d (patch)
tree5c544cc45c47bbd06c8b4d216aab02fe9307f8de /sql/sql_class.h
parent2459558060cbc959ffa4b487a1db323bf4f384cd (diff)
parent4f33d95fa3be042234a2cc8e351bdf52cea3376d (diff)
downloadmariadb-git-93f0771fca8b2b6eb4ebfec81702fcee69ddaa3d.tar.gz
Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into mysql.com:/home/my/mysql-5.1
Diffstat (limited to 'sql/sql_class.h')
-rw-r--r--sql/sql_class.h63
1 files changed, 33 insertions, 30 deletions
diff --git a/sql/sql_class.h b/sql/sql_class.h
index ff4f3022c2b..368d9758b29 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -249,18 +249,19 @@ struct system_variables
ulonglong myisam_max_sort_file_size;
ulonglong max_heap_table_size;
ulonglong tmp_table_size;
+ ulonglong long_query_time;
ha_rows select_limit;
ha_rows max_join_size;
ulong auto_increment_increment, auto_increment_offset;
ulong bulk_insert_buff_size;
ulong join_buff_size;
- ulong long_query_time;
ulong max_allowed_packet;
ulong max_error_count;
ulong max_length_for_sort_data;
ulong max_sort_length;
ulong max_tmp_tables;
ulong max_insert_delayed_threads;
+ ulong min_examined_row_limit;
ulong multi_range_count;
ulong myisam_repair_threads;
ulong myisam_sort_buff_size;
@@ -1037,8 +1038,6 @@ public:
Security_context main_security_ctx;
Security_context *security_ctx;
- /* remote (peer) port */
- uint16 peer_port;
/*
Points to info-string that we show in SHOW PROCESSLIST
You are supposed to update thd->proc_info only if you have coded
@@ -1046,6 +1045,14 @@ public:
*/
const char *proc_info;
+ /*
+ Used in error messages to tell user in what part of MySQL we found an
+ error. E. g. when where= "having clause", if fix_fields() fails, user
+ will know that the error was in having clause.
+ */
+ const char *where;
+
+ double tmp_double_value; /* Used in set_var.cc */
ulong client_capabilities; /* What the client supports */
ulong max_client_packet_length;
@@ -1067,14 +1074,12 @@ public:
enum enum_server_command command;
uint32 server_id;
uint32 file_id; // for LOAD DATA INFILE
- /*
- Used in error messages to tell user in what part of MySQL we found an
- error. E. g. when where= "having clause", if fix_fields() fails, user
- will know that the error was in having clause.
- */
- const char *where;
- time_t start_time,time_after_lock,user_time;
- time_t connect_time,thr_create_time; // track down slow pthread_create
+ /* remote (peer) port */
+ uint16 peer_port;
+ time_t start_time, user_time;
+ ulonglong connect_utime, thr_create_utime; // track down slow pthread_create
+ ulonglong start_utime, utime_after_lock;
+
thr_lock_type update_lock_default;
Delayed_insert *di;
@@ -1582,27 +1587,25 @@ public:
proc_info = old_msg;
pthread_mutex_unlock(&mysys_var->mutex);
}
-
- static inline void safe_time(time_t *t)
+ inline time_t query_start() { query_start_used=1; return start_time; }
+ inline void set_time()
{
- /**
- Wrapper around time() which retries on error (-1)
-
- @details
- This is needed because, despite the documentation, time() may fail
- in some circumstances. Here we retry time() until it succeeds, and
- log the failure so that performance problems related to this can be
- identified.
- */
- while(unlikely(time(t) == ((time_t) -1)))
- sql_print_information("time() failed with %d", errno);
+ if (user_time)
+ {
+ start_time= user_time;
+ start_utime= utime_after_lock= my_micro_time();
+ }
+ else
+ start_utime= utime_after_lock= my_micro_time_and_time(&start_time);
}
-
- inline time_t query_start() { query_start_used=1; return start_time; }
- inline void set_time() { if (user_time) start_time=time_after_lock=user_time; else { safe_time(&start_time); time_after_lock= start_time; }}
- inline void end_time() { safe_time(&start_time); }
- inline void set_time(time_t t) { time_after_lock=start_time=user_time=t; }
- inline void lock_time() { safe_time(&time_after_lock); }
+ inline void set_current_time() { start_time= my_time(MY_WME); }
+ inline void set_time(time_t t)
+ {
+ start_time= user_time= t;
+ start_utime= utime_after_lock= my_micro_time();
+ }
+ void set_time_after_lock() { utime_after_lock= my_micro_time(); }
+ ulonglong current_utime() { return my_micro_time(); }
inline ulonglong found_rows(void)
{
return limit_found_rows;