Details
Description
I have a SQL script that works on MySQL (up to current versions). I built a copy of MariaDB-10.2.8 from source on a Linux machine and got the database up and running. However, my SQL script fails, because MariaDB is returning NULL from an UNHEX() call, where it shouldn't.
The call is producing a 20-byte random binary string in a particular format (it's a BitTorrent node ID). I concatenate some required bytes with some random bytes, with certain bytes being limited to a particular range of values. These are constructed as a 40-character hex string, which I then run through UNHEX().
The SQL is:
unhex( concat( '414C2', |
hex( 8 + round( rand() * 7 ) ),
|
substr( sha( uuid( ) ), 6, 33 ),
|
hex( 2 + round( rand( ) * 8 ) ) ) )
|
Running this (with select) returns NULL. Running just the concat() returns a hex string, and running unhex() on the hex string presented as a literal returns the expected binary gobbeldygook.
Attachments
Issue Links
- duplicates
-
MDEV-13793 Wrong result with combination of CONCAT,SUBSTR,SHA
- Closed
- is blocked by
-
MDEV-15118 ExtractValue(xml,something_complex) does not work
- Closed
- relates to
-
MDEV-13119 Wrong results with CAST(AS CHAR) and subquery
- Closed
-
MDEV-13120 Wrong results with MAKE_SET() and subquery
- Closed