Commit graph

10 commits

Author SHA1 Message Date
Vicențiu Ciorbaru
cb248f8806 Merge branch '5.5' into 10.1 2019-05-11 22:19:05 +03:00
Sergei Golubchik
0140bfac5e MDEV-16127 mroonga/storage.* tests fail with GCC 8
Tests were failing because in TIME_from_longlong_datetime_packed() GCC8
at -O2 assumed that tmp is always positive and used mul and shr while it
used imul and sar at -O1 (where tests passed). GCC8 used multiplication
(by 0x4ec4ec4ec4ec4ec5) and shift to implement division by 13. It could
assume that tmp is always positive, because the function starts with
`if (tmp < 0) tmp= -tmp;`

But this assumption breaks if tmp=0x8000000000000000;
This is invalid value and TIME_from_longlong_datetime_packed() should
never see it, garbage in - garbage out.

It was getting this invalid value because mroonga tried to convert a
NULL key part to MYSQL_TIME. If the key part value is NULL, datetime2
value of it happens to be bzero-ed, which is invalid binary datetime2
value.

The correct behavior is not to try to interpret the key part value, if
it is marked as NULL. But this minimal fix only covers the datetime2 type.
2018-10-24 13:13:35 +02:00
Oleksandr Byelkin
31081593aa Merge branch '11.0' into 10.1 2018-09-06 22:45:19 +02:00
Kentoku
13167e6489 Update Mroonga to the latest version on 2017-10-10T23:15:25+0900 2017-10-10 23:15:25 +09:00
Kentoku SHIBA
06913d0162 Update Mroonga to the latest version on 2015-07-02T04:12:21+0900 2015-07-02 04:12:21 +09:00
Kentoku SHIBA
a0fdb258a4 Update Mroonga to the latest version on 2015-04-30T04:44:30+0900 2015-04-30 04:44:30 +09:00
Sergei Golubchik
16c01c7004 after merge: fix mroonga to compile and pass its tests 2015-02-19 10:26:52 +01:00
Kentoku SHIBA
f5dabd7aca Update Mroonga to the latest version on 2015-02-17T13:34:27+0900 2015-02-17 13:34:27 +09:00
Kentoku SHIBA
7f3d555087 Update Mroonga to the latest version on 2014-10-21T04:51:38+0900 2014-10-21 04:51:38 +09:00
Kentoku SHIBA
0cc855cdc8 Update Mroonga to the latest version on 2014-09-21T00:33:44+0900 2014-09-21 00:33:45 +09:00