479 lines
7.2 KiB
Plaintext
479 lines
7.2 KiB
Plaintext
|
--
|
||
|
-- create user defined conversion
|
||
|
--
|
||
|
CREATE USER foo WITH NOCREATEDB NOCREATEUSER;
|
||
|
SET SESSION AUTHORIZATION foo;
|
||
|
CREATE CONVERSION myconv FOR 'LATIN1' TO 'UNICODE' FROM iso8859_1_to_utf8;
|
||
|
--
|
||
|
-- cannot make same name conversion in same schema
|
||
|
--
|
||
|
CREATE CONVERSION myconv FOR 'LATIN1' TO 'UNICODE' FROM iso8859_1_to_utf8;
|
||
|
ERROR: conversion name "myconv" already exists
|
||
|
--
|
||
|
-- create default conversion with qualified name
|
||
|
--
|
||
|
CREATE DEFAULT CONVERSION public.mydef FOR 'LATIN1' TO 'UNICODE' FROM iso8859_1_to_utf8;
|
||
|
--
|
||
|
-- cannot make default conversion with same shcema/for_encoding/to_encoding
|
||
|
--
|
||
|
CREATE DEFAULT CONVERSION public.mydef2 FOR 'LATIN1' TO 'UNICODE' FROM iso8859_1_to_utf8;
|
||
|
ERROR: default conversion for LATIN1 to UNICODE already exists
|
||
|
--
|
||
|
-- drop user defined conversion
|
||
|
--
|
||
|
DROP CONVERSION myconv;
|
||
|
DROP CONVERSION mydef;
|
||
|
--
|
||
|
-- make sure all pre-defined conversions are fine.
|
||
|
--
|
||
|
-- UNICODE -> SQL_ASCII
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'SQL_ASCII');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- SQL_ASCII -> UNICODE
|
||
|
SELECT CONVERT('foo', 'SQL_ASCII', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> LATIN1
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'LATIN1');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- LATIN1 -> UNICODE
|
||
|
SELECT CONVERT('foo', 'LATIN1', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- EUC_JP -> UNICODE
|
||
|
SELECT CONVERT('foo', 'EUC_JP', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> EUC_JP
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'EUC_JP');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- EUC_KR -> UNICODE
|
||
|
SELECT CONVERT('foo', 'EUC_KR', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> EUC_KR
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'EUC_KR');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- EUC_CN -> UNICODE
|
||
|
SELECT CONVERT('foo', 'EUC_CN', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> EUC_CN
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'EUC_CN');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- EUC_TW -> UNICODE
|
||
|
SELECT CONVERT('foo', 'EUC_TW', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> EUC_TW
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'EUC_TW');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- SJIS -> UNICODE
|
||
|
SELECT CONVERT('foo', 'SJIS', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> SJIS
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'SJIS');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- BIG5 -> UNICODE
|
||
|
SELECT CONVERT('foo', 'BIG5', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> BIG5
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'BIG5');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- GBK -> UNICODE
|
||
|
SELECT CONVERT('foo', 'GBK', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> GBK
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'GBK');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- GB18030 -> UNICODE
|
||
|
SELECT CONVERT('foo', 'GB18030', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> GB18030
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'GB18030');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UHC -> UNICODE
|
||
|
SELECT CONVERT('foo', 'UHC', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> UHC
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'UHC');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- JOHAB -> UNICODE
|
||
|
SELECT CONVERT('foo', 'JOHAB', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> JOHAB
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'JOHAB');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- TCVN -> UNICODE
|
||
|
SELECT CONVERT('foo', 'TCVN', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> TCVN
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'TCVN');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> LATIN2
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'LATIN2');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- LATIN2 -> UNICODE
|
||
|
SELECT CONVERT('foo', 'LATIN2', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> LATIN3
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'LATIN3');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- LATIN3 -> UNICODE
|
||
|
SELECT CONVERT('foo', 'LATIN3', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> LATIN4
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'LATIN4');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- LATIN4 -> UNICODE
|
||
|
SELECT CONVERT('foo', 'LATIN4', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> LATIN5
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'LATIN5');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- LATIN5 -> UNICODE
|
||
|
SELECT CONVERT('foo', 'LATIN5', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> LATIN6
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'LATIN6');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- LATIN6 -> UNICODE
|
||
|
SELECT CONVERT('foo', 'LATIN6', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> LATIN7
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'LATIN7');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- LATIN7 -> UNICODE
|
||
|
SELECT CONVERT('foo', 'LATIN7', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> LATIN8
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'LATIN8');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- LATIN8 -> UNICODE
|
||
|
SELECT CONVERT('foo', 'LATIN8', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> LATIN9
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'LATIN9');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- LATIN9 -> UNICODE
|
||
|
SELECT CONVERT('foo', 'LATIN9', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> LATIN10
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'LATIN10');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- LATIN10 -> UNICODE
|
||
|
SELECT CONVERT('foo', 'LATIN10', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> ISO-8859-5
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'ISO-8859-5');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- ISO-8859-5 -> UNICODE
|
||
|
SELECT CONVERT('foo', 'ISO-8859-5', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> ISO-8859-6
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'ISO-8859-6');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- ISO-8859-6 -> UNICODE
|
||
|
SELECT CONVERT('foo', 'ISO-8859-6', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> ISO-8859-7
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'ISO-8859-7');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- ISO-8859-7 -> UNICODE
|
||
|
SELECT CONVERT('foo', 'ISO-8859-7', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- UNICODE -> ISO-8859-8
|
||
|
SELECT CONVERT('foo', 'UNICODE', 'ISO-8859-8');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- ISO-8859-8 -> UNICODE
|
||
|
SELECT CONVERT('foo', 'ISO-8859-8', 'UNICODE');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- EUC_JP -> SJIS
|
||
|
SELECT CONVERT('foo', 'EUC_JP', 'SJIS');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- SJIS -> EUC_JP
|
||
|
SELECT CONVERT('foo', 'SJIS', 'EUC_JP');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- EUC_JP -> MULE_INTERNAL
|
||
|
SELECT CONVERT('foo', 'EUC_JP', 'MULE_INTERNAL');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- SJIS -> MULE_INTERNAL
|
||
|
SELECT CONVERT('foo', 'SJIS', 'MULE_INTERNAL');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- MULE_INTERNAL -> EUC_JP
|
||
|
SELECT CONVERT('foo', 'MULE_INTERNAL', 'EUC_JP');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- MULE_INTERNAL -> SJIS
|
||
|
SELECT CONVERT('foo', 'MULE_INTERNAL', 'SJIS');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- EUC_TW -> BIG5
|
||
|
SELECT CONVERT('foo', 'EUC_TW', 'BIG5');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- BIG5 -> EUC_TW
|
||
|
SELECT CONVERT('foo', 'BIG5', 'EUC_TW');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- EUC_TW -> MULE_INTERNAL
|
||
|
SELECT CONVERT('foo', 'EUC_TW', 'MULE_INTERNAL');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- BIG5 -> MULE_INTERNAL
|
||
|
SELECT CONVERT('foo', 'BIG5', 'MULE_INTERNAL');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- MULE_INTERNAL -> EUC_TW
|
||
|
SELECT CONVERT('foo', 'MULE_INTERNAL', 'EUC_TW');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
-- MULE_INTERNAL -> BIG5
|
||
|
SELECT CONVERT('foo', 'MULE_INTERNAL', 'BIG5');
|
||
|
convert
|
||
|
---------
|
||
|
foo
|
||
|
(1 row)
|
||
|
|
||
|
RESET SESSION AUTHORIZATION;
|
||
|
DROP USER foo;
|