mirror of
https://github.com/postgres/postgres.git
synced 2026-03-12 13:44:02 -04:00
54 lines
1.5 KiB
MySQL
54 lines
1.5 KiB
MySQL
|
|
--
|
||
|
|
-- 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;
|