summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorPeter Eisentraut2024-03-19 08:30:24 +0000
committerPeter Eisentraut2024-03-19 08:32:04 +0000
commit794f10f6b920670cb9750b043a2b2587059d5051 (patch)
tree0615c2dddfc92ebb5d219d87f5c5f84830a4e365 /src/test
parentd56cb42b54381d414f1f30929ca267e4768313c8 (diff)
Add some UUID support functions
Add uuid_extract_timestamp() and uuid_extract_version(). Author: Andrey Borodin Reviewed-by: Sergey Prokhorenko, Kirk Wolak, Przemysław Sztoch Reviewed-by: Nikolay Samokhvalov, Jelte Fennema-Nio, Aleksander Alekseev Reviewed-by: Peter Eisentraut, Chris Travers, Lukas Fittl Discussion: https://postgr.es/m/CAAhFRxitJv%3DyoGnXUgeLB_O%2BM7J2BJAmb5jqAT9gZ3bij3uLDA%40mail.gmail.com
Diffstat (limited to 'src/test')
-rw-r--r--src/test/regress/expected/opr_sanity.out2
-rw-r--r--src/test/regress/expected/uuid.out39
-rw-r--r--src/test/regress/sql/uuid.sql14
3 files changed, 55 insertions, 0 deletions
diff --git a/src/test/regress/expected/opr_sanity.out b/src/test/regress/expected/opr_sanity.out
index 7610b011d68..9d047b21b88 100644
--- a/src/test/regress/expected/opr_sanity.out
+++ b/src/test/regress/expected/opr_sanity.out
@@ -872,6 +872,8 @@ xid8ge(xid8,xid8)
xid8eq(xid8,xid8)
xid8ne(xid8,xid8)
xid8cmp(xid8,xid8)
+uuid_extract_timestamp(uuid)
+uuid_extract_version(uuid)
-- restore normal output mode
\a\t
-- List of functions used by libpq's fe-lobj.c
diff --git a/src/test/regress/expected/uuid.out b/src/test/regress/expected/uuid.out
index 8e7f21910d6..6026e15ed31 100644
--- a/src/test/regress/expected/uuid.out
+++ b/src/test/regress/expected/uuid.out
@@ -168,5 +168,44 @@ SELECT count(DISTINCT guid_field) FROM guid1;
2
(1 row)
+-- extract functions
+-- version
+SELECT uuid_extract_version('11111111-1111-5111-8111-111111111111'); -- 5
+ uuid_extract_version
+----------------------
+ 5
+(1 row)
+
+SELECT uuid_extract_version(gen_random_uuid()); -- 4
+ uuid_extract_version
+----------------------
+ 4
+(1 row)
+
+SELECT uuid_extract_version('11111111-1111-1111-1111-111111111111'); -- null
+ uuid_extract_version
+----------------------
+
+(1 row)
+
+-- timestamp
+SELECT uuid_extract_timestamp('C232AB00-9414-11EC-B3C8-9F6BDECED846') = 'Tuesday, February 22, 2022 2:22:22.00 PM GMT+05:00'; -- RFC 4122bis test vector
+ ?column?
+----------
+ t
+(1 row)
+
+SELECT uuid_extract_timestamp(gen_random_uuid()); -- null
+ uuid_extract_timestamp
+------------------------
+
+(1 row)
+
+SELECT uuid_extract_timestamp('11111111-1111-1111-1111-111111111111'); -- null
+ uuid_extract_timestamp
+------------------------
+
+(1 row)
+
-- clean up
DROP TABLE guid1, guid2 CASCADE;
diff --git a/src/test/regress/sql/uuid.sql b/src/test/regress/sql/uuid.sql
index 9a8f437c7d2..c88f6d087a7 100644
--- a/src/test/regress/sql/uuid.sql
+++ b/src/test/regress/sql/uuid.sql
@@ -85,5 +85,19 @@ INSERT INTO guid1 (guid_field) VALUES (gen_random_uuid());
INSERT INTO guid1 (guid_field) VALUES (gen_random_uuid());
SELECT count(DISTINCT guid_field) FROM guid1;
+
+-- extract functions
+
+-- version
+SELECT uuid_extract_version('11111111-1111-5111-8111-111111111111'); -- 5
+SELECT uuid_extract_version(gen_random_uuid()); -- 4
+SELECT uuid_extract_version('11111111-1111-1111-1111-111111111111'); -- null
+
+-- timestamp
+SELECT uuid_extract_timestamp('C232AB00-9414-11EC-B3C8-9F6BDECED846') = 'Tuesday, February 22, 2022 2:22:22.00 PM GMT+05:00'; -- RFC 4122bis test vector
+SELECT uuid_extract_timestamp(gen_random_uuid()); -- null
+SELECT uuid_extract_timestamp('11111111-1111-1111-1111-111111111111'); -- null
+
+
-- clean up
DROP TABLE guid1, guid2 CASCADE;