Files

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;