uuid.sql 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. -- regression test for the uuid datatype
  2. -- creating test tables
  3. CREATE TABLE guid1
  4. (
  5. guid_field UUID,
  6. text_field TEXT DEFAULT(now())
  7. );
  8. CREATE TABLE guid2
  9. (
  10. guid_field UUID,
  11. text_field TEXT DEFAULT(now())
  12. );
  13. -- inserting invalid data tests
  14. -- too long
  15. INSERT INTO guid1(guid_field) VALUES('11111111-1111-1111-1111-111111111111F');
  16. -- too short
  17. INSERT INTO guid1(guid_field) VALUES('{11111111-1111-1111-1111-11111111111}');
  18. -- valid data but invalid format
  19. INSERT INTO guid1(guid_field) VALUES('111-11111-1111-1111-1111-111111111111');
  20. INSERT INTO guid1(guid_field) VALUES('{22222222-2222-2222-2222-222222222222 ');
  21. -- invalid data
  22. INSERT INTO guid1(guid_field) VALUES('11111111-1111-1111-G111-111111111111');
  23. INSERT INTO guid1(guid_field) VALUES('11+11111-1111-1111-1111-111111111111');
  24. --inserting three input formats
  25. INSERT INTO guid1(guid_field) VALUES('11111111-1111-1111-1111-111111111111');
  26. INSERT INTO guid1(guid_field) VALUES('{22222222-2222-2222-2222-222222222222}');
  27. INSERT INTO guid1(guid_field) VALUES('3f3e3c3b3a3039383736353433a2313e');
  28. -- retrieving the inserted data
  29. SELECT guid_field FROM guid1;
  30. -- ordering test
  31. SELECT guid_field FROM guid1 ORDER BY guid_field ASC;
  32. SELECT guid_field FROM guid1 ORDER BY guid_field DESC;
  33. -- = operator test
  34. SELECT COUNT(*) FROM guid1 WHERE guid_field = '3f3e3c3b-3a30-3938-3736-353433a2313e';
  35. -- <> operator test
  36. SELECT COUNT(*) FROM guid1 WHERE guid_field <> '11111111111111111111111111111111';
  37. -- < operator test
  38. SELECT COUNT(*) FROM guid1 WHERE guid_field < '22222222-2222-2222-2222-222222222222';
  39. -- <= operator test
  40. SELECT COUNT(*) FROM guid1 WHERE guid_field <= '22222222-2222-2222-2222-222222222222';
  41. -- > operator test
  42. SELECT COUNT(*) FROM guid1 WHERE guid_field > '22222222-2222-2222-2222-222222222222';
  43. -- >= operator test
  44. SELECT COUNT(*) FROM guid1 WHERE guid_field >= '22222222-2222-2222-2222-222222222222';
  45. -- btree and hash index creation test
  46. CREATE INDEX guid1_btree ON guid1 USING BTREE (guid_field);
  47. CREATE INDEX guid1_hash ON guid1 USING HASH (guid_field);
  48. -- populating the test tables with additional records
  49. INSERT INTO guid1(guid_field) VALUES('44444444-4444-4444-4444-444444444444');
  50. INSERT INTO guid2(guid_field) VALUES('11111111-1111-1111-1111-111111111111');
  51. INSERT INTO guid2(guid_field) VALUES('{22222222-2222-2222-2222-222222222222}');
  52. INSERT INTO guid2(guid_field) VALUES('3f3e3c3b3a3039383736353433a2313e');
  53. SELECT COUNT(*) FROM guid1 g1 LEFT JOIN guid2 g2 ON g1.guid_field = g2.guid_field WHERE g2.guid_field IS NULL;
  54. INSERT INTO guid1 (guid_field) VALUES (gen_random_uuid());
  55. INSERT INTO guid1 (guid_field) VALUES (gen_random_uuid());