MySQL 8.1.0
Source Code Documentation
my_time_t.h
Go to the documentation of this file.
1/* Copyright (c) 2021, 2023, Oracle and/or its affiliates.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License, version 2.0,
5 as published by the Free Software Foundation.
6
7 This program is also distributed with certain software (including
8 but not limited to OpenSSL) that is licensed under separate terms,
9 as designated in a particular file or component or in included license
10 documentation. The authors of MySQL hereby grant you an additional
11 permission to link the program and your derivative works with the
12 separately licensed software that they have included with MySQL.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License, version 2.0, for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22
23#ifndef MY_TIME_T_INCLUDED
24#define MY_TIME_T_INCLUDED
25/**
26 Portable time_t replacement. Should be signed and hold seconds for
27 1970-01-01 00:00:00 -- 3001-01-18 23:59:59 on an OS with 64 bits time_t.
28 On OSes with 32 bits time_t, the values will be constrained further.
29*/
30#ifdef __cplusplus
31using my_time_t = int64_t;
32#else
33typedef my_time_t int64_t;
34#endif
35
36/**
37 Replacement of system's struct timeval to ensure we can carry 64 bit values
38 even on a platform which has 64 bits time, but only 32 bits tv_sec member,
39 notably Windows. We do use the system timeval when interfacing the C API
40 calls, though, so in a few cases, e.g. by THD::{start_time, user_time},
41 we need to convert between representations but mostly the struct is only used
42 internally by MySQL so we can use our own.
43*/
44struct my_timeval {
45 int64_t m_tv_sec;
46 int64_t m_tv_usec;
47};
48
49#endif /* MY_TIME_T_INCLUDED */
int64_t my_time_t
Portable time_t replacement.
Definition: my_time_t.h:31
Replacement of system's struct timeval to ensure we can carry 64 bit values even on a platform which ...
Definition: my_time_t.h:44
int64_t m_tv_sec
Definition: my_time_t.h:45
int64_t m_tv_usec
Definition: my_time_t.h:46