1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
  
     | 
    
      /*
 * This test must be run in a database with UTF-8 encoding,
 * because other encodings don't support all the characters used.
 */
SELECT getdatabaseencoding() <> 'UTF8'
       AS skip_test \gset
\if :skip_test
\quit
\endif
SET client_encoding = utf8;
-- UTF-8 locale bug on macOS: isspace(0x85) returns true.  \u0105 encodes
-- as 0xc4 0x85 in UTF-8; the 0x85 was interpreted here as a whitespace.
SELECT E'key\u0105=>value\u0105'::hstore;
      hstore      
------------------
 "keyą"=>"valueą"
(1 row)
SELECT 'keyą=>valueą'::hstore;
      hstore      
------------------
 "keyą"=>"valueą"
(1 row)
SELECT 'ą=>ą'::hstore;
  hstore  
----------
 "ą"=>"ą"
(1 row)
SELECT 'keyąfoo=>valueą'::hstore;
       hstore        
---------------------
 "keyąfoo"=>"valueą"
(1 row)
-- More patterns that may depend on isspace() and locales, all discarded.
SELECT E'key\u000A=>value\u000A'::hstore; -- \n
     hstore     
----------------
 "key"=>"value"
(1 row)
SELECT E'key\u0009=>value\u0009'::hstore; -- \t
     hstore     
----------------
 "key"=>"value"
(1 row)
SELECT E'key\u000D=>value\u000D'::hstore; -- \r
     hstore     
----------------
 "key"=>"value"
(1 row)
SELECT E'key\u000B=>value\u000B'::hstore; -- \v
     hstore     
----------------
 "key"=>"value"
(1 row)
SELECT E'key\u000C=>value\u000C'::hstore; -- \f
     hstore     
----------------
 "key"=>"value"
(1 row)
 
     |