summaryrefslogtreecommitdiff
path: root/sql/time.cc
diff options
context:
space:
mode:
authorunknown <andrey@lmy004.>2006-06-08 23:07:11 +0200
committerunknown <andrey@lmy004.>2006-06-08 23:07:11 +0200
commit99438424ac4654e6ecd357e04263aaabc6391022 (patch)
tree2e3f4a442820fb0bbe2874da5d578c0d8764ca06 /sql/time.cc
parent27e10733054ca854b24668a2a2aab2f8d183ec40 (diff)
downloadmariadb-git-99438424ac4654e6ecd357e04263aaabc6391022.tar.gz
Reorganize, physically the events code
Unify method naming -> create/update/drop_event Move class Event_timed to event_timed.h class Events is in events.h (renamed from event.h) The implementation is in events.cc (renamed from event.h) BitKeeper/deleted/.del-event_executor.cc~f4a4645b973838ab: Delete: sql/event_executor.cc include/my_time.h: add a boundary libmysqld/CMakeLists.txt: event.cc -> events.cc libmysqld/Makefile.am: event.cc -> event.cc sql/CMakeLists.txt: event.cc -> events.cc sql/Makefile.am: event.cc -> events.cc event_priv.h -> events_priv.h sql/event_scheduler.cc: event.h -> events.h add_event -> create_event replace_event -> update_event() event_timed_compare_q is only used in event_scheduler.cc , so moving it from event.cc and making it static sql/event_scheduler.h: add_event -> create_event replace_event -> update_event sql/event_timed.cc: moved extern interval_type_to_name to mysql_priv.h sql/mysql_priv.h: moved my_time_compare to time.cc sql/mysqld.cc: event.h -> events.h sql/sql_db.cc: event.h -> events.h sql/sql_parse.cc: event.h -> events.h class Event_timed moved to event_timed.h sql/sql_show.cc: event.h -> events.h class Event_timed moved to event_timed.h sql/sql_yacc.yy: event.h -> events.h class Event_timed moved to event_timed.h sql/events.cc: add_event -> create_event replace_event -> update_event event_timed_compare_q moved to event_scheduler.cc sql/events.h: class Event_timed moved to event_timed.h sql/events_priv.h: my_time_compare moved to mysql_priv.h event_timed_compare_q is static in event_scheduler.cc sql/time.cc: moved interval_type_to_name from event.cc to here. BitKeeper/etc/ignore: Added libmysqld/events.cc to the ignore list
Diffstat (limited to 'sql/time.cc')
-rw-r--r--sql/time.cc56
1 files changed, 56 insertions, 0 deletions
diff --git a/sql/time.cc b/sql/time.cc
index 3c654de23bb..5b12aacf84a 100644
--- a/sql/time.cc
+++ b/sql/time.cc
@@ -24,6 +24,30 @@
/* Some functions to calculate dates */
#ifndef TESTTIME
+
+LEX_STRING interval_type_to_name[INTERVAL_LAST] = {
+ {(char *) STRING_WITH_LEN("YEAR")},
+ {(char *) STRING_WITH_LEN("QUARTER")},
+ {(char *) STRING_WITH_LEN("MONTH")},
+ {(char *) STRING_WITH_LEN("DAY")},
+ {(char *) STRING_WITH_LEN("HOUR")},
+ {(char *) STRING_WITH_LEN("MINUTE")},
+ {(char *) STRING_WITH_LEN("WEEK")},
+ {(char *) STRING_WITH_LEN("SECOND")},
+ {(char *) STRING_WITH_LEN("MICROSECOND")},
+ {(char *) STRING_WITH_LEN("YEAR_MONTH")},
+ {(char *) STRING_WITH_LEN("DAY_HOUR")},
+ {(char *) STRING_WITH_LEN("DAY_MINUTE")},
+ {(char *) STRING_WITH_LEN("DAY_SECOND")},
+ {(char *) STRING_WITH_LEN("HOUR_MINUTE")},
+ {(char *) STRING_WITH_LEN("HOUR_SECOND")},
+ {(char *) STRING_WITH_LEN("MINUTE_SECOND")},
+ {(char *) STRING_WITH_LEN("DAY_MICROSECOND")},
+ {(char *) STRING_WITH_LEN("HOUR_MICROSECOND")},
+ {(char *) STRING_WITH_LEN("MINUTE_MICROSECOND")},
+ {(char *) STRING_WITH_LEN("SECOND_MICROSECOND")}
+};
+
/* Calc weekday from daynr */
/* Returns 0 for monday, 1 for tuesday .... */
@@ -909,4 +933,36 @@ calc_time_diff(TIME *l_time1, TIME *l_time2, int l_sign, longlong *seconds_out,
}
+/*
+ Compares 2 TIME structures
+
+ SYNOPSIS
+ my_time_compare()
+
+ a - first TIME
+ b - second time
+
+ RETURN VALUE
+ -1 - a < b
+ 0 - a == b
+ 1 - a > b
+
+ NOTES
+ TIME.second_part is not considered during comparison
+*/
+
+int
+my_time_compare(TIME *a, TIME *b)
+{
+ my_ulonglong a_t= TIME_to_ulonglong_datetime(a);
+ my_ulonglong b_t= TIME_to_ulonglong_datetime(b);
+
+ if (a_t > b_t)
+ return 1;
+ else if (a_t < b_t)
+ return -1;
+
+ return 0;
+}
+
#endif