~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to include/my_time.h

MergeĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
 
26
26
C_MODE_START
27
27
 
28
 
extern ulonglong log_10_int[20];
 
28
extern uint64_t log_10_int[20];
29
29
extern uchar days_in_month[];
30
30
 
31
31
/*
40
40
*/
41
41
typedef long my_time_t;
42
42
 
43
 
#define MY_TIME_T_MAX LONG_MAX
44
 
#define MY_TIME_T_MIN LONG_MIN
 
43
#define MY_TIME_T_MAX INT32_MAX
 
44
#define MY_TIME_T_MIN INT32_MIN
45
45
 
46
46
/* Time handling defaults */
47
47
#define TIMESTAMP_MAX_YEAR 2038
48
48
#define TIMESTAMP_MIN_YEAR (1900 + YY_PART_YEAR - 1)
49
 
#define TIMESTAMP_MAX_VALUE INT_MAX32
 
49
#define TIMESTAMP_MAX_VALUE INT32_MAX
50
50
#define TIMESTAMP_MIN_VALUE 1
51
51
 
52
52
/* two-digit years < this are 20..; >= this are 19.. */
78
78
enum enum_mysql_timestamp_type
79
79
str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time,
80
80
                uint flags, int *was_cut);
81
 
longlong number_to_datetime(longlong nr, MYSQL_TIME *time_res,
 
81
int64_t number_to_datetime(int64_t nr, MYSQL_TIME *time_res,
82
82
                            uint flags, int *was_cut);
83
 
ulonglong TIME_to_ulonglong_datetime(const MYSQL_TIME *);
84
 
ulonglong TIME_to_ulonglong_date(const MYSQL_TIME *);
85
 
ulonglong TIME_to_ulonglong_time(const MYSQL_TIME *);
86
 
ulonglong TIME_to_ulonglong(const MYSQL_TIME *);
 
83
uint64_t TIME_to_uint64_t_datetime(const MYSQL_TIME *);
 
84
uint64_t TIME_to_uint64_t_date(const MYSQL_TIME *);
 
85
uint64_t TIME_to_uint64_t_time(const MYSQL_TIME *);
 
86
uint64_t TIME_to_uint64_t(const MYSQL_TIME *);
87
87
 
88
88
 
89
89
my_bool str_to_time(const char *str,uint length, MYSQL_TIME *l_time,
107
107
    estimate.
108
108
 
109
109
  RETURN VALUES
110
 
    FALSE   The value seems sane
111
 
    TRUE    The MYSQL_TIME value is definitely out of range
 
110
    false   The value seems sane
 
111
    true    The MYSQL_TIME value is definitely out of range
112
112
*/
113
113
 
114
114
static inline my_bool validate_timestamp_range(const MYSQL_TIME *t)
116
116
  if ((t->year > TIMESTAMP_MAX_YEAR || t->year < TIMESTAMP_MIN_YEAR) ||
117
117
      (t->year == TIMESTAMP_MAX_YEAR && (t->month > 1 || t->day > 19)) ||
118
118
      (t->year == TIMESTAMP_MIN_YEAR && (t->month < 12 || t->day < 31)))
119
 
    return FALSE;
 
119
    return false;
120
120
 
121
 
  return TRUE;
 
121
  return true;
122
122
}
123
123
 
124
124
my_time_t