forked from MaterializeInc/materialize
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathuuid.slt
142 lines (111 loc) · 4.87 KB
/
uuid.slt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# Copyright 2015 - 2019 The Cockroach Authors. All rights reserved.
# Copyright Materialize, Inc. and contributors. All rights reserved.
#
# Use of this software is governed by the Business Source License
# included in the LICENSE file at the root of this repository.
#
# As of the Change Date specified in that file, in accordance with
# the Business Source License, use of this software will be governed
# by the Apache License, Version 2.0.
#
# This file is derived from the logic test suite in CockroachDB. The
# original file was retrieved on June 10, 2019 from:
#
# https://github.com/cockroachdb/cockroach/blob/d2f7fbf5dd1fc1a099bbad790a2e1f7c60a66cc3/pkg/sql/logictest/testdata/logic_test/uuid
#
# The original source code is subject to the terms of the Apache
# 2.0 license, a copy of which can be found in the LICENSE file at the
# root of this repository.
# not supported yet
halt
mode cockroach
statement ok
CREATE TABLE u (token uuid PRIMARY KEY,
token2 uuid,
token3 uuid,
UNIQUE INDEX i_token2 (token2))
statement ok
INSERT INTO u VALUES
('63616665-6630-3064-6465-616462656562', '{63616665-6630-3064-6465-616462656563}', b'kafef00ddeadbeed'),
('urn:uuid:63616665-6630-3064-6465-616462656564', '63616665-6630-3064-6465-616462656565'::uuid, b'kafef00ddeadbeee'),
(b'cafef00ddeadbeef', '63616665-6630-3064-6465-616462656567', b'kafef00ddeadbeef')
query TTT
SELECT * FROM u ORDER BY token
----
63616665-6630-3064-6465-616462656562 63616665-6630-3064-6465-616462656563 6b616665-6630-3064-6465-616462656564
63616665-6630-3064-6465-616462656564 63616665-6630-3064-6465-616462656565 6b616665-6630-3064-6465-616462656565
63616665-6630-3064-6465-616462656566 63616665-6630-3064-6465-616462656567 6b616665-6630-3064-6465-616462656566
query TTT
SELECT * FROM u WHERE token < '63616665-6630-3064-6465-616462656564'::uuid
----
63616665-6630-3064-6465-616462656562 63616665-6630-3064-6465-616462656563 6b616665-6630-3064-6465-616462656564
query TTT
SELECT * FROM u WHERE token <= '63616665-6630-3064-6465-616462656564'::uuid ORDER BY token
----
63616665-6630-3064-6465-616462656562 63616665-6630-3064-6465-616462656563 6b616665-6630-3064-6465-616462656564
63616665-6630-3064-6465-616462656564 63616665-6630-3064-6465-616462656565 6b616665-6630-3064-6465-616462656565
statement error duplicate key value
INSERT INTO u VALUES ('63616665-6630-3064-6465-616462656566')
statement error duplicate key value
INSERT INTO u VALUES ('63616665-6630-3064-6465-616462656569', '63616665-6630-3064-6465-616462656565')
statement error UUID must be exactly 16 bytes long, got 15 bytes
INSERT INTO u VALUES (b'cafef00ddeadbee')
statement error UUID must be exactly 16 bytes long, got 17 bytes
INSERT INTO u VALUES (b'cafef00ddeadbeefs')
statement error uuid: incorrect UUID length
INSERT INTO u VALUES ('63616665-6630-3064-6465-61646265656')
statement error uuid: incorrect UUID length
INSERT INTO u VALUES ('63616665-6630-3064-6465-6164626565620')
statement error unsupported comparison operator: <uuid> = <bytes>
SELECT token FROM u WHERE token=b'cafef00ddeadbeef'::bytes
statement error unsupported comparison operator: <uuid> = <string>
SELECT token FROM u WHERE token='63616665-6630-3064-6465-616462656562'::string
statement ok
SELECT token FROM u WHERE token='63616665-6630-3064-6465-616462656562'::uuid
query T
SELECT token FROM u WHERE token='urn:uuid:63616665-6630-3064-6465-616462656562'
----
63616665-6630-3064-6465-616462656562
query T
SELECT token FROM u WHERE token=b'cafef00ddeadbeef'
----
63616665-6630-3064-6465-616462656566
query T
SELECT token2 FROM u WHERE token2='63616665-6630-3064-6465-616462656563'
----
63616665-6630-3064-6465-616462656563
query T
SELECT token FROM u WHERE token IN ('63616665-6630-3064-6465-616462656562', '63616665-6630-3064-6465-616462656564') ORDER BY token
----
63616665-6630-3064-6465-616462656562
63616665-6630-3064-6465-616462656564
statement ok
INSERT INTO u VALUES ('63616665-6630-3064-6465-616462656567'::uuid)
statement ok
INSERT INTO u VALUES ('urn:uuid:63616665-6630-3064-6465-616462656568'::uuid)
statement ok
INSERT INTO u VALUES (uuid_v4()::uuid)
statement error value type bytes doesn't match type uuid
INSERT INTO u VALUES ('cafef00ddeadbeef'::bytes)
statement error value type text doesn't match type uuid
INSERT INTO u VALUES ('63616665-6630-3064-6465-616462656562'::string)
statement error value type bytes doesn't match type uuid
INSERT INTO u VALUES (uuid_v4())
query T
SELECT token::uuid FROM u WHERE token=b'cafef00ddeadbeef'
----
63616665-6630-3064-6465-616462656566
query T
SELECT token::string FROM u WHERE token=b'cafef00ddeadbeef'
----
63616665-6630-3064-6465-616462656566
query T
SELECT token::bytes FROM u WHERE token=b'cafef00ddeadbeef'
----
cafef00ddeadbeef
statement error invalid cast: uuid -> int
SELECT token::int FROM u
query T
SELECT ('63616665-6630-3064-6465-616462656562' COLLATE en)::uuid
----
63616665-6630-3064-6465-616462656562