Last active
May 1, 2023 17:45
-
-
Save bplaat/1d8d1bba135c726178ebdfc9df08e2ca to your computer and use it in GitHub Desktop.
MariaDB UUID_TO_BIN and BIN_TO_UUID pollyfills
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| DELIMITER // | |
| CREATE FUNCTION UUID_TO_BIN(u CHAR(36)) | |
| RETURNS BINARY(16) | |
| BEGIN | |
| IF u IS NULL THEN | |
| RETURN NULL; | |
| END IF; | |
| SET u = REPLACE(u, '-', ''); | |
| RETURN CONCAT( | |
| UNHEX(SUBSTR(u, 1, 8)), | |
| UNHEX(SUBSTR(u, 9, 4)), | |
| UNHEX(SUBSTR(u, 13, 4)), | |
| UNHEX(SUBSTR(u, 17, 4)), | |
| UNHEX(SUBSTR(u, 21)) | |
| ); | |
| END// | |
| CREATE FUNCTION BIN_TO_UUID(b BINARY(16)) | |
| RETURNS CHAR(36) | |
| BEGIN | |
| IF b IS NULL THEN | |
| RETURN NULL; | |
| END IF; | |
| RETURN LOWER(CONCAT( | |
| HEX(SUBSTR(b, 1, 4)), '-', | |
| HEX(SUBSTR(b, 5, 2)), '-', | |
| HEX(SUBSTR(b, 7, 2)), '-', | |
| HEX(SUBSTR(b, 9, 2)), '-', | |
| HEX(SUBSTR(b, 11)) | |
| )); | |
| END// | |
| DELIMITER ; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment