-<!-- $Header: /cvsroot/pgsql/doc/src/sgml/keywords.sgml,v 2.6 2002/06/20 16:00:43 momjian Exp $ -->
+<!-- $Header: /cvsroot/pgsql/doc/src/sgml/keywords.sgml,v 2.7 2002/11/02 18:41:21 tgl Exp $ -->
<appendix id="sql-keywords-appendix">
<title><acronym>SQL</acronym> Key Words</title>
</row>
<row>
<entry><token>CONVERT</token></entry>
- <entry></entry>
+ <entry>non-reserved (cannot be function or type)</entry>
<entry>non-reserved</entry>
<entry>reserved</entry>
</row>
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/namespace.c,v 1.37 2002/11/02 02:33:03 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/namespace.c,v 1.38 2002/11/02 18:41:21 tgl Exp $
*
*-------------------------------------------------------------------------
*/
/*
* NameListToString
* Utility routine to convert a qualified-name list into a string.
- * Used primarily to form error messages.
+ *
+ * This is used primarily to form error messages, and so we do not quote
+ * the list elements, for the sake of legibility.
*/
char *
NameListToString(List *names)
return string.data;
}
+/*
+ * NameListToQuotedString
+ * Utility routine to convert a qualified-name list into a string.
+ *
+ * Same as above except that names will be double-quoted where necessary,
+ * so the string could be re-parsed (eg, by textToQualifiedNameList).
+ */
+char *
+NameListToQuotedString(List *names)
+{
+ StringInfoData string;
+ List *l;
+
+ initStringInfo(&string);
+
+ foreach(l, names)
+ {
+ if (l != names)
+ appendStringInfoChar(&string, '.');
+ appendStringInfo(&string, "%s", quote_identifier(strVal(lfirst(l))));
+ }
+
+ return string.data;
+}
+
/*
* isTempNamespace - is the given namespace my temporary-table namespace?
*/
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/pg_conversion.c,v 1.7 2002/11/02 02:33:03 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/pg_conversion.c,v 1.8 2002/11/02 18:41:21 tgl Exp $
*
*-------------------------------------------------------------------------
*/
* CONVERT <left paren> <character value expression>
* USING <form-of-use conversion name> <right paren>
*
- * TEXT convert3(TEXT string, OID conversion_oid);
+ * TEXT convert_using(TEXT string, TEXT conversion_name)
*/
Datum
-pg_convert3(PG_FUNCTION_ARGS)
+pg_convert_using(PG_FUNCTION_ARGS)
{
text *string = PG_GETARG_TEXT_P(0);
- Oid convoid = PG_GETARG_OID(1);
+ text *conv_name = PG_GETARG_TEXT_P(1);
+ text *retval;
+ List *parsed_name;
+ Oid convoid;
HeapTuple tuple;
Form_pg_conversion body;
- text *retval;
unsigned char *str;
unsigned char *result;
int len;
- if (!OidIsValid(convoid))
- elog(ERROR, "Conversion does not exist");
-
- /* make sure that source string is null terminated */
+ /* Convert input string to null-terminated form */
len = VARSIZE(string) - VARHDRSZ;
str = palloc(len + 1);
memcpy(str, VARDATA(string), len);
*(str + len) = '\0';
+ /* Look up the conversion name */
+ parsed_name = textToQualifiedNameList(conv_name, "convert_using");
+ convoid = FindConversionByName(parsed_name);
+ if (!OidIsValid(convoid))
+ elog(ERROR, "conversion %s not found", NameListToString(parsed_name));
+
tuple = SearchSysCache(CONOID,
ObjectIdGetDatum(convoid),
0, 0, 0);
if (!HeapTupleIsValid(tuple))
elog(ERROR, "Conversion %u search from syscache failed", convoid);
+ body = (Form_pg_conversion) GETSTRUCT(tuple);
+ /* Temporary result area should be more than big enough */
result = palloc(len * 4 + 1);
- body = (Form_pg_conversion) GETSTRUCT(tuple);
OidFunctionCall5(body->conproc,
Int32GetDatum(body->conforencoding),
Int32GetDatum(body->contoencoding),
ReleaseSysCache(tuple);
/*
- * build text data type structre. we cannot use textin() here, since
+ * build text result structure. we cannot use textin() here, since
* textin assumes that input string encoding is same as database
* encoding.
*/
pfree(result);
pfree(str);
- /* free memory if allocated by the toaster */
- PG_FREE_IF_COPY(string, 0);
-
PG_RETURN_TEXT_P(retval);
}
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.106 2002/10/21 22:06:19 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.107 2002/11/02 18:41:21 tgl Exp $
*
*-------------------------------------------------------------------------
*/
defel->defname);
}
- if (downer)
+ if (downer && downer->arg)
dbowner = strVal(downer->arg);
- if (dpath)
+ if (dpath && dpath->arg)
dbpath = strVal(dpath->arg);
- if (dtemplate)
+ if (dtemplate && dtemplate->arg)
dbtemplate = strVal(dtemplate->arg);
- if (dencoding)
- encoding = intVal(dencoding->arg);
+ if (dencoding && dencoding->arg)
+ {
+ const char *encoding_name;
+
+ if (IsA(dencoding->arg, Integer))
+ {
+ encoding = intVal(dencoding->arg);
+ encoding_name = pg_encoding_to_char(encoding);
+ if (strcmp(encoding_name, "") == 0 ||
+ pg_valid_server_encoding(encoding_name) < 0)
+ elog(ERROR, "%d is not a valid encoding code", encoding);
+ }
+ else if (IsA(dencoding->arg, String))
+ {
+ encoding_name = strVal(dencoding->arg);
+ if (pg_valid_server_encoding(encoding_name) < 0)
+ elog(ERROR, "%s is not a valid encoding name", encoding_name);
+ encoding = pg_char_to_encoding(encoding_name);
+ }
+ else
+ elog(ERROR, "CREATE DATABASE: bogus encoding parameter");
+ }
/* obtain sysid of proposed owner */
if (dbowner)
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.372 2002/11/01 22:52:33 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.373 2002/11/02 18:41:21 tgl Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
#include "access/htup.h"
#include "catalog/index.h"
#include "catalog/namespace.h"
-#include "catalog/pg_conversion.h"
#include "catalog/pg_type.h"
#include "nodes/makefuncs.h"
#include "nodes/params.h"
#include "utils/numeric.h"
#include "utils/datetime.h"
#include "utils/date.h"
-#include "mb/pg_wchar.h"
extern List *parsetree; /* final parse result is delivered here */
group_clause TriggerFuncArgs select_limit
opt_select_limit opclass_item_list trans_options
TableFuncElementList
- convert_args prep_type_clause prep_type_list
- execute_param_clause execute_param_list
+ prep_type_clause prep_type_list
+ execute_param_clause
%type <range> into_clause OptTempTableName
%type <jtype> join_type
%type <list> extract_list overlay_list position_list
-%type <list> substr_list trim_list convert_list
+%type <list> substr_list trim_list
%type <ival> opt_interval
%type <node> overlay_placing substr_from substr_for
%type <node> def_arg columnElem where_clause insert_column_item
a_expr b_expr c_expr r_expr AexprConst
in_expr having_clause func_table
-%type <list> row row_descriptor row_list in_expr_nodes type_list
+%type <list> row row_descriptor type_list
%type <node> case_expr case_arg when_clause case_default
%type <list> when_clause_list
%type <ival> sub_type
AGGREGATE ALL ALTER ANALYSE ANALYZE AND ANY AS ASC
ASSERTION ASSIGNMENT AT AUTHORIZATION
- BACKWARD BEFORE BEGIN_TRANS BETWEEN BIGINT BINARY BIT BOTH
- BOOLEAN BY
+ BACKWARD BEFORE BEGIN_TRANS BETWEEN BIGINT BINARY BIT
+ BOOLEAN BOTH BY
CACHE CALLED CASCADE CASE CAST CHAIN CHAR_P
CHARACTER CHARACTERISTICS CHECK CHECKPOINT CLASS CLOSE
INTERVAL INTO INVOKER IS ISNULL ISOLATION
JOIN
+
KEY
LANCOMPILER LANGUAGE LEADING LEFT LEVEL LIKE LIMIT
ORDER OUT_P OUTER_P OVERLAPS OVERLAY OWNER
PARTIAL PASSWORD PATH_P PENDANT PLACING POSITION
- PRECISION PREPARE PRIMARY PRIOR PRIVILEGES PROCEDURE
- PROCEDURAL
+ PRECISION PREPARE PRIMARY PRIOR PRIVILEGES PROCEDURAL PROCEDURE
READ REAL RECHECK REFERENCES REINDEX RELATIVE RENAME REPLACE
RESET RESTRICT RETURNS REVOKE RIGHT ROLLBACK ROW
}
| ENCODING opt_equal Sconst
{
- int encoding;
-
- if (pg_valid_server_encoding($3) < 0)
- elog(ERROR, "%s is not a valid encoding name", $3);
- encoding = pg_char_to_encoding($3);
-
- $$ = makeDefElem("encoding", (Node *)makeInteger(encoding));
+ $$ = makeDefElem("encoding", (Node *)makeString($3));
}
| ENCODING opt_equal Iconst
{
- const char *encoding_name;
-
- encoding_name = pg_encoding_to_char($3);
- if (!strcmp(encoding_name,"") ||
- pg_valid_server_encoding(encoding_name) < 0)
- elog(ERROR, "%d is not a valid encoding code", $3);
$$ = makeDefElem("encoding", (Node *)makeInteger($3));
}
| ENCODING opt_equal DEFAULT
{
- $$ = makeDefElem("encoding", (Node *)makeInteger(-1));
+ $$ = makeDefElem("encoding", NULL);
}
| OWNER opt_equal name
{
}
;
-execute_param_clause: '(' execute_param_list ')' { $$ = $2; }
+execute_param_clause: '(' expr_list ')' { $$ = $2; }
| /* EMPTY */ { $$ = NIL; }
;
-execute_param_list: a_expr { $$ = makeList1($1); }
- | execute_param_list ',' a_expr { $$ = lappend($1, $3); }
- ;
-
/*****************************************************************************
*
* QUERY:
| ROW '(' a_expr ')' { $$ = makeList1($3); }
| ROW '(' ')' { $$ = NULL; }
| '(' row_descriptor ')' { $$ = $2; }
-;
-
-row_descriptor:
- row_list ',' a_expr { $$ = lappend($1, $3); }
;
-row_list: a_expr { $$ = makeList1($1); }
- | row_list ',' a_expr { $$ = lappend($1, $3); }
+row_descriptor: expr_list ',' a_expr { $$ = lappend($1, $3); }
;
sub_type: ANY { $$ = ANY_SUBLINK; }
n->agg_distinct = FALSE;
$$ = (Node *)n;
}
- | CONVERT '(' convert_list ')'
+ | CONVERT '(' a_expr USING any_name ')'
+ {
+ FuncCall *n = makeNode(FuncCall);
+ A_Const *c = makeNode(A_Const);
+
+ c->val.type = T_String;
+ c->val.val.str = NameListToQuotedString($5);
+
+ n->funcname = SystemFuncName("convert_using");
+ n->args = makeList2($3, c);
+ n->agg_star = FALSE;
+ n->agg_distinct = FALSE;
+ $$ = (Node *)n;
+ }
+ | CONVERT '(' expr_list ')'
{
FuncCall *n = makeNode(FuncCall);
n->funcname = SystemFuncName("convert");
expr_list: a_expr { $$ = makeList1($1); }
| expr_list ',' a_expr { $$ = lappend($1, $3); }
- | expr_list USING a_expr { $$ = lappend($1, $3); }
;
extract_list:
| expr_list { $$ = $1; }
;
-/* CONVERT() arguments. We accept followings:
- * SQL99 syntax
- * o CONVERT(TEXT string USING conversion_name)
- *
- * Function calls
- * o CONVERT(TEXT string, NAME src_encoding_name, NAME dest_encoding_name)
- * o CONVERT(TEXT string, NAME encoding_name)
- */
-convert_list:
- a_expr USING any_name
- {
- Oid oid = FindConversionByName($3);
- Const *convoid = makeNode(Const);
-
- if (!OidIsValid(oid))
- {
- elog(ERROR, "Conversion \"%s\" does not exist",
- NameListToString($3));
- }
-
- convoid->consttype = OIDOID;
- convoid->constlen = sizeof(Oid);
- convoid->constvalue = oid;
- convoid->constisnull = FALSE;
- convoid->constbyval = TRUE;
- convoid->constisset = FALSE;
- convoid->constiscast = FALSE;
- $$ = makeList2($1, convoid);
- }
- | convert_args
- {
- $$ = $1;
- }
- | /*EMPTY*/
- { $$ = NIL; }
- ;
-
-convert_args: a_expr { $$ = makeList1($1); }
- | convert_args ',' a_expr { $$ = lappend($1, $3); }
- ;
-
-
in_expr: select_with_parens
{
SubLink *n = makeNode(SubLink);
n->subselect = $1;
$$ = (Node *)n;
}
- | '(' in_expr_nodes ')' { $$ = (Node *)$2; }
- ;
-
-in_expr_nodes:
- a_expr { $$ = makeList1($1); }
- | in_expr_nodes ',' a_expr { $$ = lappend($1, $3); }
+ | '(' expr_list ')' { $$ = (Node *)$2; }
;
/* Case clause
| CHAR_P
| CHARACTER
| COALESCE
+ | CONVERT
| DEC
| DECIMAL
| EXISTS
* client encoding and server internal encoding.
* (currently mule internal code (mic) is used)
* Tatsuo Ishii
- * $Id: mbutils.c,v 1.35 2002/09/04 20:31:31 momjian Exp $
+ *
+ * $Header: /cvsroot/pgsql/src/backend/utils/mb/mbutils.c,v 1.36 2002/11/02 18:41:22 tgl Exp $
*/
#include "postgres.h"
+
#include "access/xact.h"
#include "miscadmin.h"
#include "mb/pg_wchar.h"
static pg_enc2name *DatabaseEncoding = &pg_enc2name_tbl[PG_SQL_ASCII];
/*
- * Caches for conversion function info. Note that Fcinfo.flinfo is
- * allocated in TopMemoryContext so that it survives outside
+ * Caches for conversion function info. Note that these values are
+ * allocated in TopMemoryContext so that they survive across
* transactions. See SetClientEncoding() for more details.
*/
-static FmgrInfo *ToServerConvPorc = NULL;
-static FmgrInfo *ToClientConvPorc = NULL;
+static FmgrInfo *ToServerConvProc = NULL;
+static FmgrInfo *ToClientConvProc = NULL;
/* Internal functions */
-static unsigned char *
- perform_default_encoding_conversion(unsigned char *src, int len, bool is_client_to_server);
+static unsigned char *perform_default_encoding_conversion(unsigned char *src,
+ int len, bool is_client_to_server);
+static int cliplen(const unsigned char *str, int len, int limit);
-static int
- cliplen(const unsigned char *str, int len, int limit);
/*
* Set the client encoding and save fmgrinfo for the converion
{
ClientEncoding = &pg_enc2name_tbl[encoding];
- if (ToServerConvPorc != NULL)
+ if (ToServerConvProc != NULL)
{
- if (ToServerConvPorc->fn_extra)
- pfree(ToServerConvPorc->fn_extra);
- pfree(ToServerConvPorc);
+ if (ToServerConvProc->fn_extra)
+ pfree(ToServerConvProc->fn_extra);
+ pfree(ToServerConvProc);
}
- ToServerConvPorc = to_server;
+ ToServerConvProc = to_server;
- if (ToClientConvPorc != NULL)
+ if (ToClientConvProc != NULL)
{
- if (ToClientConvPorc->fn_extra)
- pfree(ToClientConvPorc->fn_extra);
- pfree(ToClientConvPorc);
+ if (ToClientConvProc->fn_extra)
+ pfree(ToClientConvProc->fn_extra);
+ pfree(ToClientConvProc);
}
- ToClientConvPorc = to_client;
+ ToClientConvProc = to_client;
}
return 0;
}
{
src_encoding = ClientEncoding->encoding;
dest_encoding = DatabaseEncoding->encoding;
- flinfo = ToServerConvPorc;
+ flinfo = ToServerConvProc;
}
else
{
src_encoding = DatabaseEncoding->encoding;
dest_encoding = ClientEncoding->encoding;
- flinfo = ToClientConvPorc;
+ flinfo = ToClientConvProc;
}
if (flinfo == NULL)
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: catversion.h,v 1.162 2002/10/19 02:08:18 momjian Exp $
+ * $Id: catversion.h,v 1.163 2002/11/02 18:41:22 tgl Exp $
*
*-------------------------------------------------------------------------
*/
*/
/* yyyymmddN */
-#define CATALOG_VERSION_NO 200210181
+#define CATALOG_VERSION_NO 200211021
#endif
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: namespace.h,v 1.21 2002/09/23 20:43:41 tgl Exp $
+ * $Id: namespace.h,v 1.22 2002/11/02 18:41:22 tgl Exp $
*
*-------------------------------------------------------------------------
*/
extern Oid QualifiedNameGetCreationNamespace(List *names, char **objname_p);
extern RangeVar *makeRangeVarFromNameList(List *names);
extern char *NameListToString(List *names);
+extern char *NameListToQuotedString(List *names);
extern bool isTempNamespace(Oid namespaceId);
extern bool isOtherTempNamespace(Oid namespaceId);
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: pg_proc.h,v 1.274 2002/10/19 02:08:18 momjian Exp $
+ * $Id: pg_proc.h,v 1.275 2002/11/02 18:41:22 tgl Exp $
*
* NOTES
* The script catalog/genbki.sh reads this file and generates .bki
DATA(insert OID = 1813 ( convert PGNSP PGUID 12 f f t f s 3 25 "25 19 19" pg_convert2 - _null_ ));
DESCR("convert string with specified encoding names");
-DATA(insert OID = 90 ( convert PGNSP PGUID 12 f f t f s 2 25 "25 26" pg_convert3 - _null_ ));
-DESCR("convert string with specified conversion oid");
+DATA(insert OID = 1619 ( convert_using PGNSP PGUID 12 f f t f s 2 25 "25 25" pg_convert_using - _null_ ));
+DESCR("convert string with specified conversion name");
DATA(insert OID = 1264 ( pg_char_to_encoding PGNSP PGUID 12 f f t f s 1 23 "19" PG_char_to_encoding - _null_ ));
DESCR("convert encoding name to encoding id");
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: builtins.h,v 1.203 2002/10/19 02:08:18 momjian Exp $
+ * $Id: builtins.h,v 1.204 2002/11/02 18:41:22 tgl Exp $
*
*-------------------------------------------------------------------------
*/
extern Datum pg_lock_status(PG_FUNCTION_ARGS);
/* catalog/pg_conversion.c */
-extern Datum pg_convert3(PG_FUNCTION_ARGS);
+extern Datum pg_convert_using(PG_FUNCTION_ARGS);
#endif /* BUILTINS_H */
-- make sure all pre-defined conversions are fine.
-- SQL_ASCII --> MULE_INTERNAL
SELECT CONVERT('foo' USING ascii_to_mic);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- MULE_INTERNAL --> SQL_ASCII
SELECT CONVERT('foo' USING mic_to_ascii);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- KOI8R --> MULE_INTERNAL
SELECT CONVERT('foo' USING koi8_r_to_mic);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- MULE_INTERNAL --> KOI8R
SELECT CONVERT('foo' USING mic_to_koi8_r);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- ISO-8859-5 --> MULE_INTERNAL
SELECT CONVERT('foo' USING iso_8859_5_to_mic);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- MULE_INTERNAL --> ISO-8859-5
SELECT CONVERT('foo' USING mic_to_iso_8859_5);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- WIN1251 --> MULE_INTERNAL
SELECT CONVERT('foo' USING windows_1251_to_mic);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- MULE_INTERNAL --> WIN1251
SELECT CONVERT('foo' USING mic_to_windows_1251);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- ALT --> MULE_INTERNAL
SELECT CONVERT('foo' USING windows_866_to_mic);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- MULE_INTERNAL --> ALT
SELECT CONVERT('foo' USING mic_to_windows_866);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- KOI8R --> WIN1251
SELECT CONVERT('foo' USING koi8_r_to_windows_1251);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- WIN1251 --> KOI8R
SELECT CONVERT('foo' USING windows_1251_to_koi8_r);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- KOI8R --> ALT
SELECT CONVERT('foo' USING koi8_r_to_windows_866);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- ALT --> KOI8R
SELECT CONVERT('foo' USING windows_866_to_koi8_r);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- ALT --> WIN1251
SELECT CONVERT('foo' USING windows_866_to_windows_1251);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- WIN1251 --> ALT
SELECT CONVERT('foo' USING windows_1251_to_windows_866);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- ISO-8859-5 --> KOI8R
SELECT CONVERT('foo' USING iso_8859_5_to_koi8_r);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- KOI8R --> ISO-8859-5
SELECT CONVERT('foo' USING koi8_r_to_iso_8859_5);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- ISO-8859-5 --> WIN1251
SELECT CONVERT('foo' USING iso_8859_5_to_windows_1251);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- WIN1251 --> ISO-8859-5
SELECT CONVERT('foo' USING windows_1251_to_iso_8859_5);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- ISO-8859-5 --> ALT
SELECT CONVERT('foo' USING iso_8859_5_to_windows_866);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- ALT --> ISO-8859-5
SELECT CONVERT('foo' USING windows_866_to_iso_8859_5);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- EUC_CN --> MULE_INTERNAL
SELECT CONVERT('foo' USING euc_cn_to_mic);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- MULE_INTERNAL --> EUC_CN
SELECT CONVERT('foo' USING mic_to_euc_cn);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- EUC_JP --> SJIS
SELECT CONVERT('foo' USING euc_jp_to_sjis);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- SJIS --> EUC_JP
SELECT CONVERT('foo' USING sjis_to_euc_jp);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- EUC_JP --> MULE_INTERNAL
SELECT CONVERT('foo' USING euc_jp_to_mic);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- SJIS --> MULE_INTERNAL
SELECT CONVERT('foo' USING sjis_to_mic);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- MULE_INTERNAL --> EUC_JP
SELECT CONVERT('foo' USING mic_to_euc_jp);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- MULE_INTERNAL --> SJIS
SELECT CONVERT('foo' USING mic_to_sjis);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- EUC_KR --> MULE_INTERNAL
SELECT CONVERT('foo' USING euc_kr_to_mic);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- MULE_INTERNAL --> EUC_KR
SELECT CONVERT('foo' USING mic_to_euc_kr);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- EUC_TW --> BIG5
SELECT CONVERT('foo' USING euc_tw_to_big5);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- BIG5 --> EUC_TW
SELECT CONVERT('foo' USING big5_to_euc_tw);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- EUC_TW --> MULE_INTERNAL
SELECT CONVERT('foo' USING euc_tw_to_mic);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- BIG5 --> MULE_INTERNAL
SELECT CONVERT('foo' USING big5_to_mic);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- MULE_INTERNAL --> EUC_TW
SELECT CONVERT('foo' USING mic_to_euc_tw);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- MULE_INTERNAL --> BIG5
SELECT CONVERT('foo' USING mic_to_big5);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- LATIN2 --> MULE_INTERNAL
SELECT CONVERT('foo' USING iso_8859_2_to_mic);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- MULE_INTERNAL --> LATIN2
SELECT CONVERT('foo' USING mic_to_iso_8859_2);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- WIN1250 --> MULE_INTERNAL
SELECT CONVERT('foo' USING windows_1250_to_mic);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- MULE_INTERNAL --> WIN1250
SELECT CONVERT('foo' USING mic_to_windows_1250);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- LATIN2 --> WIN1250
SELECT CONVERT('foo' USING iso_8859_2_to_windows_1250);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- WIN1250 --> LATIN2
SELECT CONVERT('foo' USING windows_1250_to_iso_8859_2);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- LATIN1 --> MULE_INTERNAL
SELECT CONVERT('foo' USING iso_8859_1_to_mic);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- MULE_INTERNAL --> LATIN1
SELECT CONVERT('foo' USING mic_to_iso_8859_1);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- LATIN3 --> MULE_INTERNAL
SELECT CONVERT('foo' USING iso_8859_3_to_mic);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- MULE_INTERNAL --> LATIN3
SELECT CONVERT('foo' USING mic_to_iso_8859_3);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- LATIN4 --> MULE_INTERNAL
SELECT CONVERT('foo' USING iso_8859_4_to_mic);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- MULE_INTERNAL --> LATIN4
SELECT CONVERT('foo' USING mic_to_iso_8859_4);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- SQL_ASCII --> UNICODE
SELECT CONVERT('foo' USING ascii_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> SQL_ASCII
SELECT CONVERT('foo' USING utf_8_to_ascii);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- BIG5 --> UNICODE
SELECT CONVERT('foo' USING big5_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> BIG5
SELECT CONVERT('foo' USING utf_8_to_big5);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> KOI8R
SELECT CONVERT('foo' USING utf_8_to_koi8_r);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- KOI8R --> UNICODE
SELECT CONVERT('foo' USING koi8_r_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> WIN1251
SELECT CONVERT('foo' USING utf_8_to_windows_1251);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- WIN1251 --> UNICODE
SELECT CONVERT('foo' USING windows_1251_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> ALT
SELECT CONVERT('foo' USING utf_8_to_windows_866);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- ALT --> UNICODE
SELECT CONVERT('foo' USING windows_866_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- EUC_CN --> UNICODE
SELECT CONVERT('foo' USING euc_cn_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> EUC_CN
SELECT CONVERT('foo' USING utf_8_to_euc_cn);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- EUC_JP --> UNICODE
SELECT CONVERT('foo' USING euc_jp_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> EUC_JP
SELECT CONVERT('foo' USING utf_8_to_euc_jp);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- EUC_KR --> UNICODE
SELECT CONVERT('foo' USING euc_kr_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> EUC_KR
SELECT CONVERT('foo' USING utf_8_to_euc_kr);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- EUC_TW --> UNICODE
SELECT CONVERT('foo' USING euc_tw_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> EUC_TW
SELECT CONVERT('foo' USING utf_8_to_euc_tw);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- GB18030 --> UNICODE
SELECT CONVERT('foo' USING gb18030_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> GB18030
SELECT CONVERT('foo' USING utf_8_to_gb18030);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- GBK --> UNICODE
SELECT CONVERT('foo' USING gbk_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> GBK
SELECT CONVERT('foo' USING utf_8_to_gbk);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> LATIN2
SELECT CONVERT('foo' USING utf_8_to_iso_8859_2);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- LATIN2 --> UNICODE
SELECT CONVERT('foo' USING iso_8859_2_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> LATIN3
SELECT CONVERT('foo' USING utf_8_to_iso_8859_3);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- LATIN3 --> UNICODE
SELECT CONVERT('foo' USING iso_8859_3_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> LATIN4
SELECT CONVERT('foo' USING utf_8_to_iso_8859_4);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- LATIN4 --> UNICODE
SELECT CONVERT('foo' USING iso_8859_4_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> LATIN5
SELECT CONVERT('foo' USING utf_8_to_iso_8859_9);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- LATIN5 --> UNICODE
SELECT CONVERT('foo' USING iso_8859_9_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> LATIN6
SELECT CONVERT('foo' USING utf_8_to_iso_8859_10);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- LATIN6 --> UNICODE
SELECT CONVERT('foo' USING iso_8859_10_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> LATIN7
SELECT CONVERT('foo' USING utf_8_to_iso_8859_13);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- LATIN7 --> UNICODE
SELECT CONVERT('foo' USING iso_8859_13_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> LATIN8
SELECT CONVERT('foo' USING utf_8_to_iso_8859_14);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- LATIN8 --> UNICODE
SELECT CONVERT('foo' USING iso_8859_14_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> LATIN9
SELECT CONVERT('foo' USING utf_8_to_iso_8859_15);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- LATIN9 --> UNICODE
SELECT CONVERT('foo' USING iso_8859_15_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> LATIN10
SELECT CONVERT('foo' USING utf_8_to_iso_8859_16);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- LATIN10 --> UNICODE
SELECT CONVERT('foo' USING iso_8859_16_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> ISO-8859-5
SELECT CONVERT('foo' USING utf_8_to_iso_8859_5);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- ISO-8859-5 --> UNICODE
SELECT CONVERT('foo' USING iso_8859_5_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> ISO-8859-6
SELECT CONVERT('foo' USING utf_8_to_iso_8859_6);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- ISO-8859-6 --> UNICODE
SELECT CONVERT('foo' USING iso_8859_6_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> ISO-8859-7
SELECT CONVERT('foo' USING utf_8_to_iso_8859_7);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- ISO-8859-7 --> UNICODE
SELECT CONVERT('foo' USING iso_8859_7_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> ISO-8859-8
SELECT CONVERT('foo' USING utf_8_to_iso_8859_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- ISO-8859-8 --> UNICODE
SELECT CONVERT('foo' USING iso_8859_8_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- LATIN1 --> UNICODE
SELECT CONVERT('foo' USING iso_8859_1_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> LATIN1
SELECT CONVERT('foo' USING utf_8_to_iso_8859_1);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- JOHAB --> UNICODE
SELECT CONVERT('foo' USING johab_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> JOHAB
SELECT CONVERT('foo' USING utf_8_to_johab);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- SJIS --> UNICODE
SELECT CONVERT('foo' USING sjis_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> SJIS
SELECT CONVERT('foo' USING utf_8_to_sjis);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- TCVN --> UNICODE
SELECT CONVERT('foo' USING tcvn_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> TCVN
SELECT CONVERT('foo' USING utf_8_to_tcvn);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UHC --> UNICODE
SELECT CONVERT('foo' USING uhc_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> UHC
SELECT CONVERT('foo' USING utf_8_to_uhc);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> WIN1250
SELECT CONVERT('foo' USING utf_8_to_windows_1250);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- WIN1250 --> UNICODE
SELECT CONVERT('foo' USING windows_1250_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> WIN1256
SELECT CONVERT('foo' USING utf_8_to_windows_1256);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- WIN1256 --> UNICODE
SELECT CONVERT('foo' USING windows_1256_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- UNICODE --> WIN874
SELECT CONVERT('foo' USING utf_8_to_windows_874);
- convert
----------
+ convert_using
+---------------
foo
(1 row)
-- WIN874 --> UNICODE
SELECT CONVERT('foo' USING windows_874_to_utf_8);
- convert
----------
+ convert_using
+---------------
foo
(1 row)