summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorGeorgi Kodinov <joro@sun.com>2009-01-29 14:40:48 +0200
committerGeorgi Kodinov <joro@sun.com>2009-01-29 14:40:48 +0200
commit37e88536e36bfd1145ef62e71a246d895dbafae3 (patch)
tree0607e0722f6c3da5241d6bd0e25b62365d41a547 /sql
parentecfdc3560c1e20c673337420761fa11c084ed2d8 (diff)
downloadmariadb-git-37e88536e36bfd1145ef62e71a246d895dbafae3.tar.gz
Bug #35396: Abnormal query times in slow query log
If the system time is adjusted back during a query execution (resulting in the end time being earlier than the start time) the code that prints to the slow query log gets confused and prints unsigned negative numbers. Fixed by not logging the statements that would have negative execution time due to time shifts. No test case since this would involve changing the system time. sql/sql_parse.cc: Bug #35396: don't log queries with negative execution times (due to shifts in system time).
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_parse.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 91c5cacc4d0..1d3632fd468 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -2333,8 +2333,9 @@ void log_slow_statement(THD *thd)
{
thd->proc_info="logging slow query";
- if ((ulong) (thd->start_time - thd->time_after_lock) >
- thd->variables.long_query_time ||
+ if ((thd->start_time > thd->time_after_lock &&
+ (ulong) (thd->start_time - thd->time_after_lock) >
+ thd->variables.long_query_time) ||
(thd->server_status &
(SERVER_QUERY_NO_INDEX_USED | SERVER_QUERY_NO_GOOD_INDEX_USED)) &&
opt_log_queries_not_using_indexes &&