mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Bug#35848: UUID() returns UUIDs with the wrong time
offset for time part in UUIDs was 1/1000 of what it should be. In other words, offset was off. Also handle the case where we count into the future when several UUIDs are generated in one "tick", and then the next call is late enough for us to unwind some but not all of those borrowed ticks. Lastly, handle the case where we keep borrowing and borrowing until the tick-counter overflows by also changing into a new "numberspace" by creating a new random suffix.
This commit is contained in:
@ -305,4 +305,18 @@ drop table t1;
|
||||
SELECT NAME_CONST('var', 'value') COLLATE latin1_general_cs;
|
||||
NAME_CONST('var', 'value') COLLATE latin1_general_cs
|
||||
value
|
||||
select @@session.time_zone into @save_tz;
|
||||
set @@session.time_zone='UTC';
|
||||
select uuid() into @my_uuid;
|
||||
select mid(@my_uuid,15,1);
|
||||
mid(@my_uuid,15,1)
|
||||
1
|
||||
select 24 * 60 * 60 * 1000 * 1000 * 10 into @my_uuid_one_day;
|
||||
select concat('0',mid(@my_uuid,16,3),mid(@my_uuid,10,4),left(@my_uuid,8)) into @my_uuidate;
|
||||
select floor(conv(@my_uuidate,16,10)/@my_uuid_one_day) into @my_uuid_date;
|
||||
select 141427 + datediff(curdate(),'1970-01-01') into @my_uuid_synthetic;
|
||||
select @my_uuid_date - @my_uuid_synthetic;
|
||||
@my_uuid_date - @my_uuid_synthetic
|
||||
0
|
||||
set @@session.time_zone=@save_tz;
|
||||
End of 5.0 tests
|
||||
|
Reference in New Issue
Block a user