unicode.out 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. SELECT getdatabaseencoding() <> 'UTF8' AS skip_test \gset
  2. \if :skip_test
  3. \quit
  4. \endif
  5. SELECT U&'\0061\0308bc' <> U&'\00E4bc' COLLATE "C" AS sanity_check;
  6. sanity_check
  7. --------------
  8. t
  9. (1 row)
  10. SELECT normalize('');
  11. normalize
  12. -----------
  13. (1 row)
  14. SELECT normalize(U&'\0061\0308\24D1c') = U&'\00E4\24D1c' COLLATE "C" AS test_default;
  15. test_default
  16. --------------
  17. t
  18. (1 row)
  19. SELECT normalize(U&'\0061\0308\24D1c', NFC) = U&'\00E4\24D1c' COLLATE "C" AS test_nfc;
  20. test_nfc
  21. ----------
  22. t
  23. (1 row)
  24. SELECT normalize(U&'\00E4bc', NFC) = U&'\00E4bc' COLLATE "C" AS test_nfc_idem;
  25. test_nfc_idem
  26. ---------------
  27. t
  28. (1 row)
  29. SELECT normalize(U&'\00E4\24D1c', NFD) = U&'\0061\0308\24D1c' COLLATE "C" AS test_nfd;
  30. test_nfd
  31. ----------
  32. t
  33. (1 row)
  34. SELECT normalize(U&'\0061\0308\24D1c', NFKC) = U&'\00E4bc' COLLATE "C" AS test_nfkc;
  35. test_nfkc
  36. -----------
  37. t
  38. (1 row)
  39. SELECT normalize(U&'\00E4\24D1c', NFKD) = U&'\0061\0308bc' COLLATE "C" AS test_nfkd;
  40. test_nfkd
  41. -----------
  42. t
  43. (1 row)
  44. SELECT "normalize"('abc', 'def'); -- run-time error
  45. ERROR: invalid normalization form: def
  46. SELECT U&'\00E4\24D1c' IS NORMALIZED AS test_default;
  47. test_default
  48. --------------
  49. t
  50. (1 row)
  51. SELECT U&'\00E4\24D1c' IS NFC NORMALIZED AS test_nfc;
  52. test_nfc
  53. ----------
  54. t
  55. (1 row)
  56. SELECT num, val,
  57. val IS NFC NORMALIZED AS NFC,
  58. val IS NFD NORMALIZED AS NFD,
  59. val IS NFKC NORMALIZED AS NFKC,
  60. val IS NFKD NORMALIZED AS NFKD
  61. FROM
  62. (VALUES (1, U&'\00E4bc'),
  63. (2, U&'\0061\0308bc'),
  64. (3, U&'\00E4\24D1c'),
  65. (4, U&'\0061\0308\24D1c'),
  66. (5, '')) vals (num, val)
  67. ORDER BY num;
  68. num | val | nfc | nfd | nfkc | nfkd
  69. -----+-----+-----+-----+------+------
  70. 1 | äbc | t | f | t | f
  71. 2 | äbc | f | t | f | t
  72. 3 | äⓑc | t | f | f | f
  73. 4 | äⓑc | f | t | f | f
  74. 5 | | t | t | t | t
  75. (5 rows)
  76. SELECT is_normalized('abc', 'def'); -- run-time error
  77. ERROR: invalid normalization form: def