name.sql 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. --
  2. -- NAME
  3. -- all inputs are silently truncated at NAMEDATALEN-1 (63) characters
  4. --
  5. -- fixed-length by reference
  6. SELECT name 'name string' = name 'name string' AS "True";
  7. SELECT name 'name string' = name 'name string ' AS "False";
  8. --
  9. --
  10. --
  11. CREATE TABLE NAME_TBL(f1 name);
  12. INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR');
  13. INSERT INTO NAME_TBL(f1) VALUES ('1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr');
  14. INSERT INTO NAME_TBL(f1) VALUES ('asdfghjkl;');
  15. INSERT INTO NAME_TBL(f1) VALUES ('343f%2a');
  16. INSERT INTO NAME_TBL(f1) VALUES ('d34aaasdf');
  17. INSERT INTO NAME_TBL(f1) VALUES ('');
  18. INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ');
  19. SELECT * FROM NAME_TBL;
  20. SELECT c.f1 FROM NAME_TBL c WHERE c.f1 <> '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
  21. SELECT c.f1 FROM NAME_TBL c WHERE c.f1 = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
  22. SELECT c.f1 FROM NAME_TBL c WHERE c.f1 < '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
  23. SELECT c.f1 FROM NAME_TBL c WHERE c.f1 <= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
  24. SELECT c.f1 FROM NAME_TBL c WHERE c.f1 > '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
  25. SELECT c.f1 FROM NAME_TBL c WHERE c.f1 >= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
  26. SELECT c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*';
  27. SELECT c.f1 FROM NAME_TBL c WHERE c.f1 !~ '.*';
  28. SELECT c.f1 FROM NAME_TBL c WHERE c.f1 ~ '[0-9]';
  29. SELECT c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*asdf.*';
  30. DROP TABLE NAME_TBL;
  31. DO $$
  32. DECLARE r text[];
  33. BEGIN
  34. r := parse_ident('Schemax.Tabley');
  35. RAISE NOTICE '%', format('%I.%I', r[1], r[2]);
  36. r := parse_ident('"SchemaX"."TableY"');
  37. RAISE NOTICE '%', format('%I.%I', r[1], r[2]);
  38. END;
  39. $$;
  40. SELECT parse_ident('foo.boo');
  41. SELECT parse_ident('foo.boo[]'); -- should fail
  42. SELECT parse_ident('foo.boo[]', strict => false); -- ok
  43. -- should fail
  44. SELECT parse_ident(' ');
  45. SELECT parse_ident(' .aaa');
  46. SELECT parse_ident(' aaa . ');
  47. SELECT parse_ident('aaa.a%b');
  48. SELECT parse_ident(E'X\rXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
  49. SELECT length(a[1]), length(a[2]) from parse_ident('"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy') as a ;
  50. SELECT parse_ident(' first . " second " ." third ". " ' || repeat('x',66) || '"');
  51. SELECT parse_ident(' first . " second " ." third ". " ' || repeat('x',66) || '"')::name[];
  52. SELECT parse_ident(E'"c".X XXXX\002XXXXXX');
  53. SELECT parse_ident('1020');
  54. SELECT parse_ident('10.20');
  55. SELECT parse_ident('.');
  56. SELECT parse_ident('.1020');
  57. SELECT parse_ident('xxx.1020');