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