]> granicus.if.org Git - postgresql/blob - src/test/regress/expected/uuid.out
Clarify some error messages about duplicate things.
[postgresql] / src / test / regress / expected / uuid.out
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 ERROR:  invalid input syntax for uuid: "11111111-1111-1111-1111-111111111111F"
17 -- too short
18 INSERT INTO guid1(guid_field) VALUES('{11111111-1111-1111-1111-11111111111}');
19 ERROR:  invalid input syntax for uuid: "{11111111-1111-1111-1111-11111111111}"
20 -- valid data but invalid format
21 INSERT INTO guid1(guid_field) VALUES('111-11111-1111-1111-1111-111111111111');
22 ERROR:  invalid input syntax for uuid: "111-11111-1111-1111-1111-111111111111"
23 INSERT INTO guid1(guid_field) VALUES('{22222222-2222-2222-2222-222222222222 ');
24 ERROR:  invalid input syntax for uuid: "{22222222-2222-2222-2222-222222222222 "
25 -- invalid data
26 INSERT INTO guid1(guid_field) VALUES('11111111-1111-1111-G111-111111111111');
27 ERROR:  invalid input syntax for uuid: "11111111-1111-1111-G111-111111111111"
28 INSERT INTO guid1(guid_field) VALUES('11+11111-1111-1111-1111-111111111111');
29 ERROR:  invalid input syntax for uuid: "11+11111-1111-1111-1111-111111111111"
30 --inserting three input formats
31 INSERT INTO guid1(guid_field) VALUES('11111111-1111-1111-1111-111111111111');
32 INSERT INTO guid1(guid_field) VALUES('{22222222-2222-2222-2222-222222222222}');
33 INSERT INTO guid1(guid_field) VALUES('3f3e3c3b3a3039383736353433a2313e');
34 -- retrieving the inserted data
35 SELECT guid_field FROM guid1;
36               guid_field              
37 --------------------------------------
38  11111111-1111-1111-1111-111111111111
39  22222222-2222-2222-2222-222222222222
40  3f3e3c3b-3a30-3938-3736-353433a2313e
41 (3 rows)
42
43 -- ordering test
44 SELECT guid_field FROM guid1 ORDER BY guid_field ASC;
45               guid_field              
46 --------------------------------------
47  11111111-1111-1111-1111-111111111111
48  22222222-2222-2222-2222-222222222222
49  3f3e3c3b-3a30-3938-3736-353433a2313e
50 (3 rows)
51
52 SELECT guid_field FROM guid1 ORDER BY guid_field DESC;
53               guid_field              
54 --------------------------------------
55  3f3e3c3b-3a30-3938-3736-353433a2313e
56  22222222-2222-2222-2222-222222222222
57  11111111-1111-1111-1111-111111111111
58 (3 rows)
59
60 -- = operator test
61 SELECT COUNT(*) FROM guid1 WHERE guid_field = '3f3e3c3b-3a30-3938-3736-353433a2313e';
62  count 
63 -------
64      1
65 (1 row)
66
67 -- <> operator test
68 SELECT COUNT(*) FROM guid1 WHERE guid_field <> '11111111111111111111111111111111';
69  count 
70 -------
71      2
72 (1 row)
73
74 -- < operator test
75 SELECT COUNT(*) FROM guid1 WHERE guid_field < '22222222-2222-2222-2222-222222222222';
76  count 
77 -------
78      1
79 (1 row)
80
81 -- <= operator test
82 SELECT COUNT(*) FROM guid1 WHERE guid_field <= '22222222-2222-2222-2222-222222222222';
83  count 
84 -------
85      2
86 (1 row)
87
88 -- > operator test
89 SELECT COUNT(*) FROM guid1 WHERE guid_field > '22222222-2222-2222-2222-222222222222';
90  count 
91 -------
92      1
93 (1 row)
94
95 -- >= operator test
96 SELECT COUNT(*) FROM guid1 WHERE guid_field >= '22222222-2222-2222-2222-222222222222';
97  count 
98 -------
99      2
100 (1 row)
101
102 -- btree and hash index creation test
103 CREATE INDEX guid1_btree ON guid1 USING BTREE (guid_field);
104 CREATE INDEX guid1_hash  ON guid1 USING HASH  (guid_field);
105 -- unique index test
106 CREATE UNIQUE INDEX guid1_unique_BTREE ON guid1 USING BTREE (guid_field);
107 -- should fail
108 INSERT INTO guid1(guid_field) VALUES('11111111-1111-1111-1111-111111111111');
109 ERROR:  duplicate key value violates unique constraint "guid1_unique_btree"
110 -- check to see whether the new indexes are actually there
111 SELECT count(*) FROM pg_class WHERE relkind='i' AND relname LIKE 'guid%';
112  count 
113 -------
114      3
115 (1 row)
116
117 -- populating the test tables with additional records
118 INSERT INTO guid1(guid_field) VALUES('44444444-4444-4444-4444-444444444444');
119 INSERT INTO guid2(guid_field) VALUES('11111111-1111-1111-1111-111111111111');
120 INSERT INTO guid2(guid_field) VALUES('{22222222-2222-2222-2222-222222222222}');
121 INSERT INTO guid2(guid_field) VALUES('3f3e3c3b3a3039383736353433a2313e');
122 -- join test
123 SELECT COUNT(*) FROM guid1 g1 INNER JOIN guid2 g2 ON g1.guid_field = g2.guid_field;
124  count 
125 -------
126      3
127 (1 row)
128
129 SELECT COUNT(*) FROM guid1 g1 LEFT JOIN guid2 g2 ON g1.guid_field = g2.guid_field WHERE g2.guid_field IS NULL;
130  count 
131 -------
132      1
133 (1 row)
134
135 -- clean up
136 DROP TABLE guid1, guid2 CASCADE;