summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <kroki/tomash@moonlight.home>2007-03-16 20:50:37 +0300
committerunknown <kroki/tomash@moonlight.home>2007-03-16 20:50:37 +0300
commit998260ae5abba5dd07c170548b0aa0b7a2713809 (patch)
tree9a537944e57f84b7149549ae8bf95fc6c7fe8d23 /sql
parent354e15f0680b0d4a79a38014841fa0675930962f (diff)
downloadmariadb-git-998260ae5abba5dd07c170548b0aa0b7a2713809.tar.gz
Fix compilation on Windows broken with the push of bug#16420.
Fix three compilation warnings. sql/event_data_objects.cc: Fix compilation warnings. sql/event_queue.cc: Fix compilation warning: reimplement event_queue_element_compare_q() properly. Use set_timespec() to initialize struct timespec.
Diffstat (limited to 'sql')
-rw-r--r--sql/event_data_objects.cc4
-rw-r--r--sql/event_queue.cc14
2 files changed, 7 insertions, 11 deletions
diff --git a/sql/event_data_objects.cc b/sql/event_data_objects.cc
index 36f20c34200..4a78c1affb0 100644
--- a/sql/event_data_objects.cc
+++ b/sql/event_data_objects.cc
@@ -1293,7 +1293,7 @@ bool get_next_time(const Time_zone *time_zone, my_time_t *next,
time, and this will greatly reduce the effect of the
optimization. So instead we keep the code simple and clean.
*/
- interval.month= diff_months - diff_months % months;
+ interval.month= (ulong) (diff_months - diff_months % months);
next_time= add_interval(&local_start, time_zone,
INTERVAL_MONTH, interval);
if (next_time == 0)
@@ -1301,7 +1301,7 @@ bool get_next_time(const Time_zone *time_zone, my_time_t *next,
if (next_time <= time_now)
{
- interval.month= months;
+ interval.month= (ulong) months;
next_time= add_interval(&local_start, time_zone,
INTERVAL_MONTH, interval);
if (next_time == 0)
diff --git a/sql/event_queue.cc b/sql/event_queue.cc
index bcfe0a222f1..0efd9bb85d1 100644
--- a/sql/event_queue.cc
+++ b/sql/event_queue.cc
@@ -65,13 +65,10 @@ struct event_queue_param
static int
event_queue_element_compare_q(void *vptr, byte* a, byte *b)
{
- /*
- Note that no overflow is possible here because both values are
- non-negative, and subtraction is done in the signed my_time_t
- type.
- */
- return (((Event_queue_element *)a)->execute_at
- - ((Event_queue_element *)b)->execute_at);
+ my_time_t lhs = ((Event_queue_element *)a)->execute_at;
+ my_time_t rhs = ((Event_queue_element *)b)->execute_at;
+
+ return (lhs < rhs ? -1 : (lhs > rhs ? 1 : 0));
}
@@ -580,8 +577,7 @@ Event_queue::get_top_for_execution_if_time(THD *thd,
time or until signaled. Release LOCK_queue while waiting.
*/
struct timespec top_time;
- top_time.tv_sec= next_activation_at;
- top_time.tv_nsec= 0;
+ set_timespec(top_time, next_activation_at - thd->query_start());
cond_wait(thd, &top_time, queue_wait_msg, SCHED_FUNC, __LINE__);
continue;