mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Alter thr_timer to allow server startup past 2038
In previous commits, changes were made to use the entire 32 bit unsigned range in order to support timestamps past 2038 on 64 bit systems. Without changing set_max_time on thr_timer to also match this new range, the server will crash when attempting to startup past 2038-01-19. Like the previous commits, this only applies to 64 bit systems. All new code of the whole pull request, including one or several files that are either new files or modified ones, are contributed under the BSD-new license. I am contributing on behalf of my employer Amazon Web Services, Inc.
This commit is contained in:
committed by
Sergei Golubchik
parent
84331c5bd7
commit
dcbc526a20
@ -59,8 +59,8 @@ update t1 set f = 'foo';
|
||||
select * from t1;
|
||||
pk f
|
||||
1 foo
|
||||
select pk, f, row_end > DATE'2030-01-01' from t1 for system_time all;
|
||||
pk f row_end > DATE'2030-01-01'
|
||||
select pk, f, row_end > DATE'2106-01-01' from t1 for system_time all;
|
||||
pk f row_end > DATE'2106-01-01'
|
||||
1 foo 1
|
||||
1 foo 0
|
||||
1 bar 0
|
||||
|
@ -59,7 +59,7 @@ update t1 set f = 'bar';
|
||||
select * from t1;
|
||||
update t1 set f = 'foo';
|
||||
select * from t1;
|
||||
select pk, f, row_end > DATE'2030-01-01' from t1 for system_time all;
|
||||
select pk, f, row_end > DATE'2106-01-01' from t1 for system_time all;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
|
@ -2734,7 +2734,7 @@ drop table t3|
|
||||
drop procedure if exists bug6857|
|
||||
create procedure bug6857()
|
||||
begin
|
||||
declare t0, t1 int;
|
||||
declare t0, t1 bigint;
|
||||
declare plus bool default 0;
|
||||
set t0 = unix_timestamp();
|
||||
select sleep(1.1);
|
||||
|
@ -3365,7 +3365,7 @@ drop procedure if exists bug6857|
|
||||
--enable_warnings
|
||||
create procedure bug6857()
|
||||
begin
|
||||
declare t0, t1 int;
|
||||
declare t0, t1 bigint;
|
||||
declare plus bool default 0;
|
||||
set t0 = unix_timestamp();
|
||||
select sleep(1.1);
|
||||
|
@ -35,9 +35,15 @@ static mysql_cond_t COND_timer;
|
||||
static QUEUE timer_queue;
|
||||
pthread_t timer_thread;
|
||||
|
||||
#if SIZEOF_VOIDP == 4
|
||||
/* 32 bit system, using old timestamp */
|
||||
#define set_max_time(abs_time) \
|
||||
{ (abs_time)->MY_tv_sec= INT_MAX32; (abs_time)->MY_tv_nsec= 0; }
|
||||
|
||||
#else
|
||||
/* 64 bit system. Use 4 byte unsigned timestamp */
|
||||
#define set_max_time(abs_time) \
|
||||
{ (abs_time)->MY_tv_sec= UINT_MAX32; (abs_time)->MY_tv_nsec= 0; }
|
||||
#endif
|
||||
|
||||
static void *timer_handler(void *arg __attribute__((unused)));
|
||||
|
||||
|
Reference in New Issue
Block a user