summaryrefslogtreecommitdiff
path: root/src/test/regress
diff options
context:
space:
mode:
authorTatsuo Ishii2002-07-25 10:07:13 +0000
committerTatsuo Ishii2002-07-25 10:07:13 +0000
commit0345f58496f9bdd462afafd8e97dac229720d663 (patch)
treef3cc17a3373e06d1ead7ea045c3caf18ad4e864b /src/test/regress
parent8d600a7d1f9e6ea36058a727c23fc627f4841212 (diff)
Implement DROP CONVERSION
Add regression test
Diffstat (limited to 'src/test/regress')
-rw-r--r--src/test/regress/expected/conversion.out478
-rw-r--r--src/test/regress/parallel_schedule4
-rw-r--r--src/test/regress/serial_schedule3
-rw-r--r--src/test/regress/sql/conversion.sql156
4 files changed, 637 insertions, 4 deletions
diff --git a/src/test/regress/expected/conversion.out b/src/test/regress/expected/conversion.out
new file mode 100644
index 00000000000..d1b3cdfba87
--- /dev/null
+++ b/src/test/regress/expected/conversion.out
@@ -0,0 +1,478 @@
+--
+-- 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;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index fd9ae6c89a1..513bdf8c430 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -74,7 +74,5 @@ test: select_views alter_table portals_p2 rules foreign_key
# The sixth group of parallel test
# ----------
# "plpgsql" cannot run concurrently with "rules"
-test: limit plpgsql temp domain rangefuncs copy2
-
+test: limit plpgsql temp domain rangefuncs copy2 conversion
test: without_oid
-
diff --git a/src/test/regress/serial_schedule b/src/test/regress/serial_schedule
index 566b3962299..271c5123d70 100644
--- a/src/test/regress/serial_schedule
+++ b/src/test/regress/serial_schedule
@@ -1,4 +1,4 @@
-# $Header: /cvsroot/pgsql/src/test/regress/serial_schedule,v 1.13 2002/07/20 05:16:59 momjian Exp $
+# $Header: /cvsroot/pgsql/src/test/regress/serial_schedule,v 1.14 2002/07/25 10:07:13 ishii Exp $
# This should probably be in an order similar to parallel_schedule.
test: boolean
test: char
@@ -86,3 +86,4 @@ test: temp
test: domain
test: rangefuncs
test: without_oid
+test: conversion
diff --git a/src/test/regress/sql/conversion.sql b/src/test/regress/sql/conversion.sql
new file mode 100644
index 00000000000..7be4916fec0
--- /dev/null
+++ b/src/test/regress/sql/conversion.sql
@@ -0,0 +1,156 @@
+--
+-- 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;
+--
+-- 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;
+--
+-- 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');
+-- SQL_ASCII -> UNICODE
+SELECT CONVERT('foo', 'SQL_ASCII', 'UNICODE');
+-- UNICODE -> LATIN1
+SELECT CONVERT('foo', 'UNICODE', 'LATIN1');
+-- LATIN1 -> UNICODE
+SELECT CONVERT('foo', 'LATIN1', 'UNICODE');
+-- EUC_JP -> UNICODE
+SELECT CONVERT('foo', 'EUC_JP', 'UNICODE');
+-- UNICODE -> EUC_JP
+SELECT CONVERT('foo', 'UNICODE', 'EUC_JP');
+-- EUC_KR -> UNICODE
+SELECT CONVERT('foo', 'EUC_KR', 'UNICODE');
+-- UNICODE -> EUC_KR
+SELECT CONVERT('foo', 'UNICODE', 'EUC_KR');
+-- EUC_CN -> UNICODE
+SELECT CONVERT('foo', 'EUC_CN', 'UNICODE');
+-- UNICODE -> EUC_CN
+SELECT CONVERT('foo', 'UNICODE', 'EUC_CN');
+-- EUC_TW -> UNICODE
+SELECT CONVERT('foo', 'EUC_TW', 'UNICODE');
+-- UNICODE -> EUC_TW
+SELECT CONVERT('foo', 'UNICODE', 'EUC_TW');
+-- SJIS -> UNICODE
+SELECT CONVERT('foo', 'SJIS', 'UNICODE');
+-- UNICODE -> SJIS
+SELECT CONVERT('foo', 'UNICODE', 'SJIS');
+-- BIG5 -> UNICODE
+SELECT CONVERT('foo', 'BIG5', 'UNICODE');
+-- UNICODE -> BIG5
+SELECT CONVERT('foo', 'UNICODE', 'BIG5');
+-- GBK -> UNICODE
+SELECT CONVERT('foo', 'GBK', 'UNICODE');
+-- UNICODE -> GBK
+SELECT CONVERT('foo', 'UNICODE', 'GBK');
+-- GB18030 -> UNICODE
+SELECT CONVERT('foo', 'GB18030', 'UNICODE');
+-- UNICODE -> GB18030
+SELECT CONVERT('foo', 'UNICODE', 'GB18030');
+-- UHC -> UNICODE
+SELECT CONVERT('foo', 'UHC', 'UNICODE');
+-- UNICODE -> UHC
+SELECT CONVERT('foo', 'UNICODE', 'UHC');
+-- JOHAB -> UNICODE
+SELECT CONVERT('foo', 'JOHAB', 'UNICODE');
+-- UNICODE -> JOHAB
+SELECT CONVERT('foo', 'UNICODE', 'JOHAB');
+-- TCVN -> UNICODE
+SELECT CONVERT('foo', 'TCVN', 'UNICODE');
+-- UNICODE -> TCVN
+SELECT CONVERT('foo', 'UNICODE', 'TCVN');
+-- UNICODE -> LATIN2
+SELECT CONVERT('foo', 'UNICODE', 'LATIN2');
+-- LATIN2 -> UNICODE
+SELECT CONVERT('foo', 'LATIN2', 'UNICODE');
+-- UNICODE -> LATIN3
+SELECT CONVERT('foo', 'UNICODE', 'LATIN3');
+-- LATIN3 -> UNICODE
+SELECT CONVERT('foo', 'LATIN3', 'UNICODE');
+-- UNICODE -> LATIN4
+SELECT CONVERT('foo', 'UNICODE', 'LATIN4');
+-- LATIN4 -> UNICODE
+SELECT CONVERT('foo', 'LATIN4', 'UNICODE');
+-- UNICODE -> LATIN5
+SELECT CONVERT('foo', 'UNICODE', 'LATIN5');
+-- LATIN5 -> UNICODE
+SELECT CONVERT('foo', 'LATIN5', 'UNICODE');
+-- UNICODE -> LATIN6
+SELECT CONVERT('foo', 'UNICODE', 'LATIN6');
+-- LATIN6 -> UNICODE
+SELECT CONVERT('foo', 'LATIN6', 'UNICODE');
+-- UNICODE -> LATIN7
+SELECT CONVERT('foo', 'UNICODE', 'LATIN7');
+-- LATIN7 -> UNICODE
+SELECT CONVERT('foo', 'LATIN7', 'UNICODE');
+-- UNICODE -> LATIN8
+SELECT CONVERT('foo', 'UNICODE', 'LATIN8');
+-- LATIN8 -> UNICODE
+SELECT CONVERT('foo', 'LATIN8', 'UNICODE');
+-- UNICODE -> LATIN9
+SELECT CONVERT('foo', 'UNICODE', 'LATIN9');
+-- LATIN9 -> UNICODE
+SELECT CONVERT('foo', 'LATIN9', 'UNICODE');
+-- UNICODE -> LATIN10
+SELECT CONVERT('foo', 'UNICODE', 'LATIN10');
+-- LATIN10 -> UNICODE
+SELECT CONVERT('foo', 'LATIN10', 'UNICODE');
+-- UNICODE -> ISO-8859-5
+SELECT CONVERT('foo', 'UNICODE', 'ISO-8859-5');
+-- ISO-8859-5 -> UNICODE
+SELECT CONVERT('foo', 'ISO-8859-5', 'UNICODE');
+-- UNICODE -> ISO-8859-6
+SELECT CONVERT('foo', 'UNICODE', 'ISO-8859-6');
+-- ISO-8859-6 -> UNICODE
+SELECT CONVERT('foo', 'ISO-8859-6', 'UNICODE');
+-- UNICODE -> ISO-8859-7
+SELECT CONVERT('foo', 'UNICODE', 'ISO-8859-7');
+-- ISO-8859-7 -> UNICODE
+SELECT CONVERT('foo', 'ISO-8859-7', 'UNICODE');
+-- UNICODE -> ISO-8859-8
+SELECT CONVERT('foo', 'UNICODE', 'ISO-8859-8');
+-- ISO-8859-8 -> UNICODE
+SELECT CONVERT('foo', 'ISO-8859-8', 'UNICODE');
+-- EUC_JP -> SJIS
+SELECT CONVERT('foo', 'EUC_JP', 'SJIS');
+-- SJIS -> EUC_JP
+SELECT CONVERT('foo', 'SJIS', 'EUC_JP');
+-- EUC_JP -> MULE_INTERNAL
+SELECT CONVERT('foo', 'EUC_JP', 'MULE_INTERNAL');
+-- SJIS -> MULE_INTERNAL
+SELECT CONVERT('foo', 'SJIS', 'MULE_INTERNAL');
+-- MULE_INTERNAL -> EUC_JP
+SELECT CONVERT('foo', 'MULE_INTERNAL', 'EUC_JP');
+-- MULE_INTERNAL -> SJIS
+SELECT CONVERT('foo', 'MULE_INTERNAL', 'SJIS');
+-- EUC_TW -> BIG5
+SELECT CONVERT('foo', 'EUC_TW', 'BIG5');
+-- BIG5 -> EUC_TW
+SELECT CONVERT('foo', 'BIG5', 'EUC_TW');
+-- EUC_TW -> MULE_INTERNAL
+SELECT CONVERT('foo', 'EUC_TW', 'MULE_INTERNAL');
+-- BIG5 -> MULE_INTERNAL
+SELECT CONVERT('foo', 'BIG5', 'MULE_INTERNAL');
+-- MULE_INTERNAL -> EUC_TW
+SELECT CONVERT('foo', 'MULE_INTERNAL', 'EUC_TW');
+-- MULE_INTERNAL -> BIG5
+SELECT CONVERT('foo', 'MULE_INTERNAL', 'BIG5');
+RESET SESSION AUTHORIZATION;
+DROP USER foo;