88 lines
3.3 KiB
SQL
88 lines
3.3 KiB
SQL
--
|
|
-- NAME
|
|
-- all inputs are silently truncated at NAMEDATALEN-1 (63) characters
|
|
--
|
|
|
|
-- fixed-length by reference
|
|
SELECT name 'name string' = name 'name string' AS "True";
|
|
|
|
SELECT name 'name string' = name 'name string ' AS "False";
|
|
|
|
--
|
|
--
|
|
--
|
|
|
|
CREATE TABLE NAME_TBL(f1 name);
|
|
|
|
INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR');
|
|
|
|
INSERT INTO NAME_TBL(f1) VALUES ('1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr');
|
|
|
|
INSERT INTO NAME_TBL(f1) VALUES ('asdfghjkl;');
|
|
|
|
INSERT INTO NAME_TBL(f1) VALUES ('343f%2a');
|
|
|
|
INSERT INTO NAME_TBL(f1) VALUES ('d34aaasdf');
|
|
|
|
INSERT INTO NAME_TBL(f1) VALUES ('');
|
|
|
|
INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ');
|
|
|
|
|
|
SELECT * FROM NAME_TBL;
|
|
|
|
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 <> '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
|
|
|
|
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
|
|
|
|
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 < '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
|
|
|
|
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 <= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
|
|
|
|
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 > '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
|
|
|
|
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 >= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
|
|
|
|
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*';
|
|
|
|
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 !~ '.*';
|
|
|
|
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 ~ '[0-9]';
|
|
|
|
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*asdf.*';
|
|
|
|
DROP TABLE NAME_TBL;
|
|
|
|
DO $$
|
|
DECLARE r text[];
|
|
BEGIN
|
|
r := parse_ident('Schemax.Tabley');
|
|
RAISE NOTICE '%', format('%I.%I', r[1], r[2]);
|
|
r := parse_ident('"SchemaX"."TableY"');
|
|
RAISE NOTICE '%', format('%I.%I', r[1], r[2]);
|
|
END;
|
|
$$;
|
|
|
|
SELECT parse_ident('foo.boo');
|
|
SELECT parse_ident('foo.boo[]'); -- should fail
|
|
SELECT parse_ident('foo.boo[]', strict => false); -- ok
|
|
|
|
-- should fail
|
|
SELECT parse_ident(' ');
|
|
SELECT parse_ident(' .aaa');
|
|
SELECT parse_ident(' aaa . ');
|
|
SELECT parse_ident('aaa.a%b');
|
|
SELECT parse_ident(E'X\rXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
|
|
|
|
SELECT length(a[1]), length(a[2]) from parse_ident('"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy') as a ;
|
|
|
|
SELECT parse_ident(' first . " second " ." third ". " ' || repeat('x',66) || '"');
|
|
SELECT parse_ident(' first . " second " ." third ". " ' || repeat('x',66) || '"')::name[];
|
|
|
|
SELECT parse_ident(E'"c".X XXXX\002XXXXXX');
|
|
SELECT parse_ident('1020');
|
|
SELECT parse_ident('10.20');
|
|
SELECT parse_ident('.');
|
|
SELECT parse_ident('.1020');
|
|
SELECT parse_ident('xxx.1020');
|