99 lines
3.1 KiB
Plaintext
99 lines
3.1 KiB
Plaintext
SELECT IS_UUID(UUID());
|
|
SELECT IS_UUID(UUID_V4());
|
|
SELECT IS_UUID(UUID_V7());
|
|
|
|
SELECT UUID_VERSION(UUID());
|
|
SELECT UUID_VERSION(UUID_V4());
|
|
SELECT UUID_VERSION(UUID_V7());
|
|
|
|
# UUIDv1
|
|
SELECT UUID_TIMESTAMP('5f13f854-d74a-11f0-9b7a-0ae0156bd76b');
|
|
SELECT FROM_UNIXTIME(UUID_TIMESTAMP('5f13f854-d74a-11f0-9b7a-0ae0156bd76b'));
|
|
|
|
# UUIDv3
|
|
SELECT UUID_TIMESTAMP('a3e3b4a1-ea6d-471e-9860-8303a8b261f6');
|
|
|
|
# UUIDv7
|
|
SELECT UUID_TIMESTAMP('019b1440-87b7-7380-ab00-ce413e795004');
|
|
|
|
# Null UUID and Max UUID
|
|
SELECT UUID_VERSION('00000000-0000-0000-0000-000000000000');
|
|
SELECT UUID_VERSION('ffffffff-ffff-ffff-ffff-ffffffffffff');
|
|
SELECT UUID_TIMESTAMP('00000000-0000-0000-0000-000000000000');
|
|
SELECT UUID_TIMESTAMP('ffffffff-ffff-ffff-ffff-ffffffffffff');
|
|
|
|
# Invalid UUID: short
|
|
-- error 1411
|
|
SELECT UUID_VERSION('abc');
|
|
-- error 1411
|
|
SELECT UUID_TIMESTAMP('abc');
|
|
-- error 1411
|
|
SELECT UUID_TO_BIN('abc');
|
|
|
|
# Invalid UUID: z is not hex
|
|
-- error 1411
|
|
SELECT UUID_VERSION('5f13f854-d74a-11f0-9b7a-0ae0156bd76z');
|
|
-- error 1411
|
|
SELECT UUID_TIMESTAMP('5f13f854-d74a-11f0-9b7a-0ae0156bd76z');
|
|
-- error 1411
|
|
SELECT HEX(UUID_TO_BIN('5f13f854-d74a-11f0-9b7a-0ae0156bd76z'));
|
|
|
|
# Invalid UUID: invalid version
|
|
SELECT UUID_VERSION('123e4567-e89b-02d3-a456-426614174000');
|
|
SELECT UUID_TIMESTAMP('123e4567-e89b-02d3-a456-426614174000');
|
|
SELECT HEX(UUID_TO_BIN('123e4567-e89b-02d3-a456-426614174000'));
|
|
|
|
# Invalid UUID: invalid variant
|
|
SELECT UUID_VERSION('123e4567-e89b-12d3-a456-426614174000');
|
|
SELECT UUID_TIMESTAMP('123e4567-e89b-12d3-a456-426614174000');
|
|
SELECT HEX(UUID_TO_BIN('123e4567-e89b-12d3-a456-426614174000'));
|
|
|
|
-- error 1305
|
|
SELECT UUID_SHORT();
|
|
|
|
-- error 3102
|
|
CREATE TABLE t123 (id int PRIMARY KEY, uuid VARCHAR(255) AS (UUID()));
|
|
|
|
-- error 3102
|
|
CREATE TABLE t123 (id int PRIMARY KEY, uuid VARCHAR(255) AS (UUID_V4()));
|
|
|
|
-- error 3102
|
|
CREATE TABLE t123 (id int PRIMARY KEY, uuid VARCHAR(255) AS (UUID_V7()));
|
|
|
|
# For now UUID() is allowed, but UUID_V4() and UUID_V7() are not yet allowed.
|
|
CREATE TABLE t123 (id int PRIMARY KEY, uuid VARCHAR(255) DEFAULT (UUID()));
|
|
|
|
-- error 3770
|
|
CREATE TABLE t123 (id int PRIMARY KEY, uuid VARCHAR(255) DEFAULT (UUID_V4()));
|
|
|
|
-- error 3770
|
|
CREATE TABLE t123 (id int PRIMARY KEY, uuid VARCHAR(255) DEFAULT (UUID_V7()));
|
|
|
|
CREATE TABLE t1234 (id int PRIMARY KEY, uuid BINARY(16) DEFAULT (UUID_TO_BIN(UUID())));
|
|
CREATE TABLE t12345 (id int PRIMARY KEY, uuid BINARY(16) DEFAULT (UUID_TO_BIN(UUID_V4())));
|
|
CREATE TABLE t12346 (id int PRIMARY KEY, uuid BINARY(16) DEFAULT (UUID_TO_BIN(UUID_V7())));
|
|
|
|
DROP TABLE IF EXISTS t123, t1234, t12345, t12346;
|
|
|
|
CREATE TABLE u1 (
|
|
uuid BINARY(16) PRIMARY KEY
|
|
);
|
|
|
|
INSERT INTO u1 VALUES
|
|
(UUID_TO_BIN("5f13f854-d74a-11f0-9b7a-0ae0156bd76b")),
|
|
(UUID_TO_BIN("c6437ef1-5b86-3a4e-a071-c2d4ad414e65")),
|
|
(UUID_TO_BIN("a3e3b4a1-ea6d-471e-9860-8303a8b261f6")),
|
|
(UUID_TO_BIN("271a8175-dadd-5df9-b0bd-20a4a0b441e6")),
|
|
(UUID_TO_BIN("1f0e48c1-7860-69cc-9b3f-35f89c103d4d")),
|
|
(UUID_TO_BIN("019b1440-87b7-7380-ab00-ce413e795004"));
|
|
|
|
SELECT
|
|
BIN_TO_UUID(uuid),
|
|
UUID_VERSION(BIN_TO_UUID(uuid)),
|
|
UUID_TIMESTAMP(BIN_TO_UUID(uuid)),
|
|
FROM_UNIXTIME(UUID_TIMESTAMP(BIN_TO_UUID(uuid)))
|
|
FROM u1
|
|
ORDER BY uuid;
|
|
|
|
DROP TABLE u1;
|