blob: 4e96a4d6505cf36831f09448987a75d3eafd4dc5 (
plain)
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
|
--
-- Test cases for encoding with COPY commands
--
-- skip test if not UTF8 server encoding
SELECT getdatabaseencoding() <> 'UTF8'
AS skip_test \gset
\if :skip_test
\quit
\endif
-- directory paths are passed to us in environment variables
\getenv abs_builddir PG_ABS_BUILDDIR
\set utf8_csv :abs_builddir '/results/copyencoding_utf8.csv'
CREATE TABLE copy_encoding_tab (t text);
-- Valid cases
-- Use ENCODING option
-- U+3042 HIRAGANA LETTER A
COPY (SELECT E'\u3042') TO :'utf8_csv' WITH (FORMAT csv, ENCODING 'UTF8');
-- Read UTF8 data as LATIN1: no error
COPY copy_encoding_tab FROM :'utf8_csv' WITH (FORMAT csv, ENCODING 'LATIN1');
-- Use client_encoding
SET client_encoding TO UTF8;
-- U+3042 HIRAGANA LETTER A
COPY (SELECT E'\u3042') TO :'utf8_csv' WITH (FORMAT csv);
-- Read UTF8 data as LATIN1: no error
SET client_encoding TO LATIN1;
COPY copy_encoding_tab FROM :'utf8_csv' WITH (FORMAT csv);
RESET client_encoding;
-- Invalid cases
-- Use ENCODING explicitly
-- U+3042 HIRAGANA LETTER A
COPY (SELECT E'\u3042') TO :'utf8_csv' WITH (FORMAT csv, ENCODING 'UTF8');
-- Read UTF8 data as EUC_JP: no error
COPY copy_encoding_tab FROM :'utf8_csv' WITH (FORMAT csv, ENCODING 'EUC_JP');
-- Use client_encoding
SET client_encoding TO UTF8;
-- U+3042 HIRAGANA LETTER A
COPY (SELECT E'\u3042') TO :'utf8_csv' WITH (FORMAT csv);
-- Read UTF8 data as EUC_JP: no error
SET client_encoding TO EUC_JP;
COPY copy_encoding_tab FROM :'utf8_csv' WITH (FORMAT csv);
RESET client_encoding;
DROP TABLE copy_encoding_tab;
|