-- -- 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; $$; -stdin-:
: Error: Parse Sql -stdin-:
:1:1: Error: RawStmt: alternative is not implemented yet : 263 DO $$ ^ SELECT parse_ident('foo.boo'); -stdin-:
: Error: Type annotation -stdin-:
:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem SELECT parse_ident('foo.boo'); ^ -stdin-:
:1:8: Error: At function: PgCall SELECT parse_ident('foo.boo'); ^ -stdin-:
:1:8: Error: Unable to find an overload for proc parse_ident with given argument types: (unknown) SELECT parse_ident('foo.boo'); ^ SELECT parse_ident('foo.boo[]'); -- should fail -stdin-:
: Error: Type annotation -stdin-:
:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem SELECT parse_ident('foo.boo[]'); -- should fail ^ -stdin-:
:1:8: Error: At function: PgCall SELECT parse_ident('foo.boo[]'); -- should fail ^ -stdin-:
:1:8: Error: Unable to find an overload for proc parse_ident with given argument types: (unknown) SELECT parse_ident('foo.boo[]'); -- should fail ^ SELECT parse_ident('foo.boo[]', strict => false); -- ok -stdin-:
: Error: Parse Sql -stdin-:
:1:8: Error: alternative is not implemented yet : 118 SELECT parse_ident('foo.boo[]', strict => false); -- ok ^ -- should fail SELECT parse_ident(' '); -stdin-:
: Error: Type annotation -stdin-:
:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem -- should fail ^ -stdin-:
:2:8: Error: At function: PgCall SELECT parse_ident(' '); ^ -stdin-:
:2:8: Error: Unable to find an overload for proc parse_ident with given argument types: (unknown) SELECT parse_ident(' '); ^ SELECT parse_ident(' .aaa'); -stdin-:
: Error: Type annotation -stdin-:
:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem SELECT parse_ident(' .aaa'); ^ -stdin-:
:1:8: Error: At function: PgCall SELECT parse_ident(' .aaa'); ^ -stdin-:
:1:8: Error: Unable to find an overload for proc parse_ident with given argument types: (unknown) SELECT parse_ident(' .aaa'); ^ SELECT parse_ident(' aaa . '); -stdin-:
: Error: Type annotation -stdin-:
:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem SELECT parse_ident(' aaa . '); ^ -stdin-:
:1:8: Error: At function: PgCall SELECT parse_ident(' aaa . '); ^ -stdin-:
:1:8: Error: Unable to find an overload for proc parse_ident with given argument types: (unknown) SELECT parse_ident(' aaa . '); ^ SELECT parse_ident('aaa.a%b'); -stdin-:
: Error: Type annotation -stdin-:
:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem SELECT parse_ident('aaa.a%b'); ^ -stdin-:
:1:8: Error: At function: PgCall SELECT parse_ident('aaa.a%b'); ^ -stdin-:
:1:8: Error: Unable to find an overload for proc parse_ident with given argument types: (unknown) SELECT parse_ident('aaa.a%b'); ^ SELECT parse_ident(E'X\rXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); -stdin-:
: Error: Type annotation -stdin-:
:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem SELECT parse_ident(E'X\rXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); ^ -stdin-:
:1:8: Error: At function: PgCall SELECT parse_ident(E'X\rXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); ^ -stdin-:
:1:8: Error: Unable to find an overload for proc parse_ident with given argument types: (unknown) SELECT parse_ident(E'X\rXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); ^ SELECT length(a[1]), length(a[2]) from parse_ident('"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy') as a ; -stdin-:
: Error: Parse Sql -stdin-:
:1:8: Error: alternative is not implemented yet : 360 SELECT length(a[1]), length(a[2]) from parse_ident('"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy') as a ; ^ SELECT parse_ident(' first . " second " ." third ". " ' || repeat('x',66) || '"'); -stdin-:
: Error: Type annotation -stdin-:
:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem SELECT parse_ident(' first . " second " ." third ". " ' || repeat('x',66) || '"'); ^ -stdin-:
:1:8: Error: At function: PgCall SELECT parse_ident(' first . " second " ." third ". " ' || repeat('x',66) || '"'); ^ -stdin-:
:1:8: Error: Unable to find an overload for proc parse_ident with given argument types: (text) SELECT parse_ident(' first . " second " ." third ". " ' || repeat('x',66) || '"'); ^ SELECT parse_ident(' first . " second " ." third ". " ' || repeat('x',66) || '"')::name[]; -stdin-:
: Error: Type annotation -stdin-:
:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem SELECT parse_ident(' first . " second " ." third ". " ' || repeat('x',66) || '"')::name[]; ^ -stdin-:
:1:91: Error: At function: PgCast SELECT parse_ident(' first . " second " ." third ". " ' || repeat('x',66) || '"')::name[]; ^ -stdin-:
:1:8: Error: At function: PgCall SELECT parse_ident(' first . " second " ." third ". " ' || repeat('x',66) || '"')::name[]; ^ -stdin-:
:1:8: Error: Unable to find an overload for proc parse_ident with given argument types: (text) SELECT parse_ident(' first . " second " ." third ". " ' || repeat('x',66) || '"')::name[]; ^ SELECT parse_ident(E'"c".X XXXX\002XXXXXX'); -stdin-:
: Error: Type annotation -stdin-:
:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem SELECT parse_ident(E'"c".X XXXX\002XXXXXX'); ^ -stdin-:
:1:8: Error: At function: PgCall SELECT parse_ident(E'"c".X XXXX\002XXXXXX'); ^ -stdin-:
:1:8: Error: Unable to find an overload for proc parse_ident with given argument types: (unknown) SELECT parse_ident(E'"c".X XXXX\002XXXXXX'); ^ SELECT parse_ident('1020'); -stdin-:
: Error: Type annotation -stdin-:
:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem SELECT parse_ident('1020'); ^ -stdin-:
:1:8: Error: At function: PgCall SELECT parse_ident('1020'); ^ -stdin-:
:1:8: Error: Unable to find an overload for proc parse_ident with given argument types: (unknown) SELECT parse_ident('1020'); ^ SELECT parse_ident('10.20'); -stdin-:
: Error: Type annotation -stdin-:
:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem SELECT parse_ident('10.20'); ^ -stdin-:
:1:8: Error: At function: PgCall SELECT parse_ident('10.20'); ^ -stdin-:
:1:8: Error: Unable to find an overload for proc parse_ident with given argument types: (unknown) SELECT parse_ident('10.20'); ^ SELECT parse_ident('.'); -stdin-:
: Error: Type annotation -stdin-:
:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem SELECT parse_ident('.'); ^ -stdin-:
:1:8: Error: At function: PgCall SELECT parse_ident('.'); ^ -stdin-:
:1:8: Error: Unable to find an overload for proc parse_ident with given argument types: (unknown) SELECT parse_ident('.'); ^ SELECT parse_ident('.1020'); -stdin-:
: Error: Type annotation -stdin-:
:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem SELECT parse_ident('.1020'); ^ -stdin-:
:1:8: Error: At function: PgCall SELECT parse_ident('.1020'); ^ -stdin-:
:1:8: Error: Unable to find an overload for proc parse_ident with given argument types: (unknown) SELECT parse_ident('.1020'); ^ SELECT parse_ident('xxx.1020'); -stdin-:
: Error: Type annotation -stdin-:
:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem SELECT parse_ident('xxx.1020'); ^ -stdin-:
:1:8: Error: At function: PgCall SELECT parse_ident('xxx.1020'); ^ -stdin-:
:1:8: Error: Unable to find an overload for proc parse_ident with given argument types: (unknown) SELECT parse_ident('xxx.1020'); ^