|
@@ -0,0 +1,228 @@
|
|
|
+<sql-statement>
|
|
|
+-- regression test for the uuid datatype
|
|
|
+-- creating test tables
|
|
|
+CREATE TABLE guid1
|
|
|
+(
|
|
|
+ guid_field UUID,
|
|
|
+ text_field TEXT DEFAULT(now())
|
|
|
+);
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+CREATE TABLE guid2
|
|
|
+(
|
|
|
+ guid_field UUID,
|
|
|
+ text_field TEXT DEFAULT(now())
|
|
|
+);
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+-- inserting invalid data tests
|
|
|
+-- too long
|
|
|
+INSERT INTO guid1(guid_field) VALUES('11111111-1111-1111-1111-111111111111F');
|
|
|
+</sql-statement>
|
|
|
+-stdin-:<main>: Fatal: Execution
|
|
|
+
|
|
|
+ -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
|
|
|
+ -- inserting invalid data tests
|
|
|
+ ^
|
|
|
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type uuid: "11111111-1111-1111-1111-111111111111F"
|
|
|
+
|
|
|
+ -- inserting invalid data tests
|
|
|
+ ^
|
|
|
+<sql-statement>
|
|
|
+-- too short
|
|
|
+INSERT INTO guid1(guid_field) VALUES('{11111111-1111-1111-1111-11111111111}');
|
|
|
+</sql-statement>
|
|
|
+-stdin-:<main>: Fatal: Execution
|
|
|
+
|
|
|
+ -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
|
|
|
+ -- too short
|
|
|
+ ^
|
|
|
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type uuid: "{11111111-1111-1111-1111-11111111111}"
|
|
|
+
|
|
|
+ -- too short
|
|
|
+ ^
|
|
|
+<sql-statement>
|
|
|
+-- valid data but invalid format
|
|
|
+INSERT INTO guid1(guid_field) VALUES('111-11111-1111-1111-1111-111111111111');
|
|
|
+</sql-statement>
|
|
|
+-stdin-:<main>: Fatal: Execution
|
|
|
+
|
|
|
+ -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
|
|
|
+ -- valid data but invalid format
|
|
|
+ ^
|
|
|
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type uuid: "111-11111-1111-1111-1111-111111111111"
|
|
|
+
|
|
|
+ -- valid data but invalid format
|
|
|
+ ^
|
|
|
+<sql-statement>
|
|
|
+INSERT INTO guid1(guid_field) VALUES('{22222222-2222-2222-2222-222222222222 ');
|
|
|
+</sql-statement>
|
|
|
+-stdin-:<main>: Fatal: Execution
|
|
|
+
|
|
|
+ -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
|
|
|
+ INSERT INTO guid1(guid_field) VALUES('{22222222-2222-2222-2222-222222222222 ');
|
|
|
+ ^
|
|
|
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type uuid: "{22222222-2222-2222-2222-222222222222 "
|
|
|
+
|
|
|
+ INSERT INTO guid1(guid_field) VALUES('{22222222-2222-2222-2222-222222222222 ');
|
|
|
+ ^
|
|
|
+<sql-statement>
|
|
|
+-- invalid data
|
|
|
+INSERT INTO guid1(guid_field) VALUES('11111111-1111-1111-G111-111111111111');
|
|
|
+</sql-statement>
|
|
|
+-stdin-:<main>: Fatal: Execution
|
|
|
+
|
|
|
+ -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
|
|
|
+ -- invalid data
|
|
|
+ ^
|
|
|
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type uuid: "11111111-1111-1111-G111-111111111111"
|
|
|
+
|
|
|
+ -- invalid data
|
|
|
+ ^
|
|
|
+<sql-statement>
|
|
|
+INSERT INTO guid1(guid_field) VALUES('11+11111-1111-1111-1111-111111111111');
|
|
|
+</sql-statement>
|
|
|
+-stdin-:<main>: Fatal: Execution
|
|
|
+
|
|
|
+ -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
|
|
|
+ INSERT INTO guid1(guid_field) VALUES('11+11111-1111-1111-1111-111111111111');
|
|
|
+ ^
|
|
|
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type uuid: "11+11111-1111-1111-1111-111111111111"
|
|
|
+
|
|
|
+ INSERT INTO guid1(guid_field) VALUES('11+11111-1111-1111-1111-111111111111');
|
|
|
+ ^
|
|
|
+<sql-statement>
|
|
|
+--inserting three input formats
|
|
|
+INSERT INTO guid1(guid_field) VALUES('11111111-1111-1111-1111-111111111111');
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+INSERT INTO guid1(guid_field) VALUES('{22222222-2222-2222-2222-222222222222}');
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+INSERT INTO guid1(guid_field) VALUES('3f3e3c3b3a3039383736353433a2313e');
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+-- retrieving the inserted data
|
|
|
+SELECT guid_field FROM guid1;
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+-- ordering test
|
|
|
+SELECT guid_field FROM guid1 ORDER BY guid_field ASC;
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+SELECT guid_field FROM guid1 ORDER BY guid_field DESC;
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+-- = operator test
|
|
|
+SELECT COUNT(*) FROM guid1 WHERE guid_field = '3f3e3c3b-3a30-3938-3736-353433a2313e';
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+-- <> operator test
|
|
|
+SELECT COUNT(*) FROM guid1 WHERE guid_field <> '11111111111111111111111111111111';
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+-- < operator test
|
|
|
+SELECT COUNT(*) FROM guid1 WHERE guid_field < '22222222-2222-2222-2222-222222222222';
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+-- <= operator test
|
|
|
+SELECT COUNT(*) FROM guid1 WHERE guid_field <= '22222222-2222-2222-2222-222222222222';
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+-- > operator test
|
|
|
+SELECT COUNT(*) FROM guid1 WHERE guid_field > '22222222-2222-2222-2222-222222222222';
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+-- >= operator test
|
|
|
+SELECT COUNT(*) FROM guid1 WHERE guid_field >= '22222222-2222-2222-2222-222222222222';
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+-- btree and hash index creation test
|
|
|
+CREATE INDEX guid1_btree ON guid1 USING BTREE (guid_field);
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+CREATE INDEX guid1_hash ON guid1 USING HASH (guid_field);
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+-- unique index test
|
|
|
+CREATE UNIQUE INDEX guid1_unique_BTREE ON guid1 USING BTREE (guid_field);
|
|
|
+</sql-statement>
|
|
|
+-stdin-:<main>: Error: Parse Sql
|
|
|
+
|
|
|
+ -stdin-:<main>:1:1: Error: unique index creation is not supported yet
|
|
|
+ -- unique index test
|
|
|
+ ^
|
|
|
+<sql-statement>
|
|
|
+-- should fail
|
|
|
+INSERT INTO guid1(guid_field) VALUES('11111111-1111-1111-1111-111111111111');
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+-- check to see whether the new indexes are actually there
|
|
|
+SELECT count(*) FROM pg_class WHERE relkind='i' AND relname LIKE 'guid%';
|
|
|
+</sql-statement>
|
|
|
+-stdin-:<main>: Error: Type annotation
|
|
|
+
|
|
|
+ -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect
|
|
|
+ -- check to see whether the new indexes are actually there
|
|
|
+ ^
|
|
|
+ -stdin-:<main>: Error: At function: PgSetItem
|
|
|
+
|
|
|
+ -stdin-:<main>:1:1: Error: At function: PgWhere
|
|
|
+ -- check to see whether the new indexes are actually there
|
|
|
+ ^
|
|
|
+ -stdin-:<main>:2:49: Error: At function: PgAnd
|
|
|
+ SELECT count(*) FROM pg_class WHERE relkind='i' AND relname LIKE 'guid%';
|
|
|
+ ^
|
|
|
+ -stdin-:<main>:2:61: Error: At function: PgLike
|
|
|
+ SELECT count(*) FROM pg_class WHERE relkind='i' AND relname LIKE 'guid%';
|
|
|
+ ^
|
|
|
+ -stdin-:<main>:2:61: Error: Expected pg text, but got name
|
|
|
+ SELECT count(*) FROM pg_class WHERE relkind='i' AND relname LIKE 'guid%';
|
|
|
+ ^
|
|
|
+<sql-statement>
|
|
|
+-- populating the test tables with additional records
|
|
|
+INSERT INTO guid1(guid_field) VALUES('44444444-4444-4444-4444-444444444444');
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+INSERT INTO guid2(guid_field) VALUES('11111111-1111-1111-1111-111111111111');
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+INSERT INTO guid2(guid_field) VALUES('{22222222-2222-2222-2222-222222222222}');
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+INSERT INTO guid2(guid_field) VALUES('3f3e3c3b3a3039383736353433a2313e');
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+-- join test
|
|
|
+SELECT COUNT(*) FROM guid1 g1 INNER JOIN guid2 g2 ON g1.guid_field = g2.guid_field;
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+SELECT COUNT(*) FROM guid1 g1 LEFT JOIN guid2 g2 ON g1.guid_field = g2.guid_field WHERE g2.guid_field IS NULL;
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+-- generation test
|
|
|
+TRUNCATE guid1;
|
|
|
+</sql-statement>
|
|
|
+-stdin-:<main>: Error: Parse Sql
|
|
|
+
|
|
|
+ -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 257
|
|
|
+ -- generation test
|
|
|
+ ^
|
|
|
+<sql-statement>
|
|
|
+INSERT INTO guid1 (guid_field) VALUES (gen_random_uuid());
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+INSERT INTO guid1 (guid_field) VALUES (gen_random_uuid());
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+SELECT count(DISTINCT guid_field) FROM guid1;
|
|
|
+</sql-statement>
|
|
|
+<sql-statement>
|
|
|
+-- clean up
|
|
|
+DROP TABLE guid1, guid2 CASCADE;
|
|
|
+</sql-statement>
|
|
|
+-stdin-:<main>: Error: Parse Sql
|
|
|
+
|
|
|
+ -stdin-:<main>:1:1: Error: CASCADE is not implemented
|
|
|
+ -- clean up
|
|
|
+ ^
|