You've already forked mariadb-connector-c
mirror of
https://github.com/mariadb-corporation/mariadb-connector-c.git
synced 2025-08-07 02:42:49 +03:00
Added dyamic column api
Added character set conversion
This commit is contained in:
@@ -140,6 +140,10 @@ IF(WITH_SQLITE)
|
|||||||
ADD_DEFINITIONS(-DHAVE_SQLITE)
|
ADD_DEFINITIONS(-DHAVE_SQLITE)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
IF(NOT WIN32)
|
||||||
|
INCLUDE(cmake/FindIconv.cmake)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/include/mysql_version.h.in
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/include/mysql_version.h.in
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/include/mysql_version.h)
|
${CMAKE_CURRENT_BINARY_DIR}/include/mysql_version.h)
|
||||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/include/my_config.h.in
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/include/my_config.h.in
|
||||||
|
52
cmake/FindIconv.cmake
Normal file
52
cmake/FindIconv.cmake
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
# Copyright (c) 2010 Michael Bell <michael.bell@web.de>
|
||||||
|
|
||||||
|
if (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
|
||||||
|
# Already in cache, be silent
|
||||||
|
set(ICONV_FIND_QUIETLY TRUE)
|
||||||
|
endif (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
|
||||||
|
|
||||||
|
find_path(ICONV_INCLUDE_DIR iconv.h)
|
||||||
|
|
||||||
|
find_library(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c)
|
||||||
|
|
||||||
|
if (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
|
||||||
|
set (ICONV_FOUND TRUE)
|
||||||
|
endif (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
|
||||||
|
|
||||||
|
set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR})
|
||||||
|
set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES})
|
||||||
|
|
||||||
|
if (ICONV_FOUND)
|
||||||
|
include(CheckCSourceCompiles)
|
||||||
|
CHECK_C_SOURCE_COMPILES("
|
||||||
|
#include <iconv.h>
|
||||||
|
int main(){
|
||||||
|
iconv_t conv = 0;
|
||||||
|
const char* in = 0;
|
||||||
|
size_t ilen = 0;
|
||||||
|
char* out = 0;
|
||||||
|
size_t olen = 0;
|
||||||
|
iconv(conv, &in, &ilen, &out, &olen);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
" ICONV_SECOND_ARGUMENT_IS_CONST )
|
||||||
|
endif (ICONV_FOUND)
|
||||||
|
|
||||||
|
set (CMAKE_REQUIRED_INCLUDES)
|
||||||
|
set (CMAKE_REQUIRED_LIBRARIES)
|
||||||
|
|
||||||
|
if (ICONV_FOUND)
|
||||||
|
if (NOT ICONV_FIND_QUIETLY)
|
||||||
|
message (STATUS "Found Iconv: ${ICONV_LIBRARIES}")
|
||||||
|
endif (NOT ICONV_FIND_QUIETLY)
|
||||||
|
else (ICONV_FOUND)
|
||||||
|
if (Iconv_FIND_REQUIRED)
|
||||||
|
message (FATAL_ERROR "Could not find Iconv")
|
||||||
|
endif (Iconv_FIND_REQUIRED)
|
||||||
|
endif (ICONV_FOUND)
|
||||||
|
|
||||||
|
MARK_AS_ADVANCED(
|
||||||
|
ICONV_INCLUDE_DIR
|
||||||
|
ICONV_LIBRARIES
|
||||||
|
ICONV_SECOND_ARGUMENT_IS_CONST
|
||||||
|
)
|
@@ -213,9 +213,9 @@ inline double ulonglong2double(ulonglong value)
|
|||||||
#define HAVE_STRPBRK
|
#define HAVE_STRPBRK
|
||||||
#define HAVE_STRSTR
|
#define HAVE_STRSTR
|
||||||
|
|
||||||
#ifdef NOT_USED
|
#ifdef WIN32
|
||||||
#define HAVE_SNPRINTF /* Gave link error */
|
#define HAVE_SNPRINTF /* Gave link error */
|
||||||
#define _snprintf snprintf
|
#define snprintf _snprintf
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
|
@@ -42,8 +42,8 @@ typedef struct charset_info_st
|
|||||||
uint state;
|
uint state;
|
||||||
char *csname;
|
char *csname;
|
||||||
char *name;
|
char *name;
|
||||||
char *comment;
|
|
||||||
char *dir;
|
char *dir;
|
||||||
|
char *encoding;
|
||||||
uint char_minlen;
|
uint char_minlen;
|
||||||
uint char_maxlen;
|
uint char_maxlen;
|
||||||
uint (*mb_charlen)(uint c);
|
uint (*mb_charlen)(uint c);
|
||||||
@@ -52,6 +52,9 @@ typedef struct charset_info_st
|
|||||||
|
|
||||||
extern const CHARSET_INFO compiled_charsets[];
|
extern const CHARSET_INFO compiled_charsets[];
|
||||||
extern CHARSET_INFO *default_charset_info;
|
extern CHARSET_INFO *default_charset_info;
|
||||||
|
extern CHARSET_INFO *my_charset_bin;
|
||||||
|
extern CHARSET_INFO *my_charset_latin1;
|
||||||
|
extern CHARSET_INFO *my_charset_utf8_general_ci;
|
||||||
|
|
||||||
CHARSET_INFO *find_compiled_charset(uint cs_number);
|
CHARSET_INFO *find_compiled_charset(uint cs_number);
|
||||||
CHARSET_INFO *find_compiled_charset_by_name(const char *name);
|
CHARSET_INFO *find_compiled_charset_by_name(const char *name);
|
||||||
|
221
include/ma_dyncol.h
Normal file
221
include/ma_dyncol.h
Normal file
@@ -0,0 +1,221 @@
|
|||||||
|
/* Copyright (c) 2011, Monty Program Ab
|
||||||
|
Copyright (c) 2011, Oleksandr Byelkin
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
2. Redistributions in binary form must the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND ANY
|
||||||
|
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
|
||||||
|
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
||||||
|
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||||||
|
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef ma_dyncol_h
|
||||||
|
#define ma_dyncol_h
|
||||||
|
|
||||||
|
#ifndef LIBMARIADB
|
||||||
|
#include <decimal.h>
|
||||||
|
#include <my_decimal_limits.h>
|
||||||
|
#endif
|
||||||
|
#include <mysql.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
Limits of implementation
|
||||||
|
*/
|
||||||
|
#define MAX_TOTAL_NAME_LENGTH 65535
|
||||||
|
#define MAX_NAME_LENGTH (MAX_TOTAL_NAME_LENGTH/4)
|
||||||
|
|
||||||
|
/* NO and OK is the same used just to show semantics */
|
||||||
|
#define ER_DYNCOL_NO ER_DYNCOL_OK
|
||||||
|
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
{
|
||||||
|
ER_DYNCOL_OK= 0,
|
||||||
|
ER_DYNCOL_YES= 1, /* For functions returning 0/1 */
|
||||||
|
ER_DYNCOL_FORMAT= -1, /* Wrong format of the encoded string */
|
||||||
|
ER_DYNCOL_LIMIT= -2, /* Some limit reached */
|
||||||
|
ER_DYNCOL_RESOURCE= -3, /* Out of resourses */
|
||||||
|
ER_DYNCOL_DATA= -4, /* Incorrect input data */
|
||||||
|
ER_DYNCOL_UNKNOWN_CHARSET= -5, /* Unknown character set */
|
||||||
|
ER_DYNCOL_TRUNCATED= 2 /* OK, but data was truncated */
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef DYNAMIC_STRING DYNAMIC_COLUMN;
|
||||||
|
|
||||||
|
enum enum_dynamic_column_type
|
||||||
|
{
|
||||||
|
DYN_COL_NULL= 0,
|
||||||
|
DYN_COL_INT,
|
||||||
|
DYN_COL_UINT,
|
||||||
|
DYN_COL_DOUBLE,
|
||||||
|
DYN_COL_STRING,
|
||||||
|
DYN_COL_DECIMAL,
|
||||||
|
DYN_COL_DATETIME,
|
||||||
|
DYN_COL_DATE,
|
||||||
|
DYN_COL_TIME,
|
||||||
|
DYN_COL_DYNCOL
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef enum enum_dynamic_column_type DYNAMIC_COLUMN_TYPE;
|
||||||
|
|
||||||
|
struct st_dynamic_column_value
|
||||||
|
{
|
||||||
|
DYNAMIC_COLUMN_TYPE type;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
long long long_value;
|
||||||
|
unsigned long long ulong_value;
|
||||||
|
double double_value;
|
||||||
|
struct {
|
||||||
|
MYSQL_LEX_STRING value;
|
||||||
|
CHARSET_INFO *charset;
|
||||||
|
} string;
|
||||||
|
#ifndef LIBMARIADB
|
||||||
|
struct {
|
||||||
|
decimal_digit_t buffer[DECIMAL_BUFF_LENGTH];
|
||||||
|
decimal_t value;
|
||||||
|
} decimal;
|
||||||
|
#endif
|
||||||
|
MYSQL_TIME time_value;
|
||||||
|
} x;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct st_dynamic_column_value DYNAMIC_COLUMN_VALUE;
|
||||||
|
|
||||||
|
#ifdef MADYNCOL_DEPRECATED
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
dynamic_column_create(DYNAMIC_COLUMN *str,
|
||||||
|
uint column_nr, DYNAMIC_COLUMN_VALUE *value);
|
||||||
|
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
dynamic_column_create_many(DYNAMIC_COLUMN *str,
|
||||||
|
uint column_count,
|
||||||
|
uint *column_numbers,
|
||||||
|
DYNAMIC_COLUMN_VALUE *values);
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
dynamic_column_update(DYNAMIC_COLUMN *org, uint column_nr,
|
||||||
|
DYNAMIC_COLUMN_VALUE *value);
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
dynamic_column_update_many(DYNAMIC_COLUMN *str,
|
||||||
|
uint add_column_count,
|
||||||
|
uint *column_numbers,
|
||||||
|
DYNAMIC_COLUMN_VALUE *values);
|
||||||
|
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
dynamic_column_exists(DYNAMIC_COLUMN *org, uint column_nr);
|
||||||
|
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
dynamic_column_list(DYNAMIC_COLUMN *org, DYNAMIC_ARRAY *array_of_uint);
|
||||||
|
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
dynamic_column_get(DYNAMIC_COLUMN *org, uint column_nr,
|
||||||
|
DYNAMIC_COLUMN_VALUE *store_it_here);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* new functions */
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_create_many(DYNAMIC_COLUMN *str,
|
||||||
|
uint column_count,
|
||||||
|
uint *column_numbers,
|
||||||
|
DYNAMIC_COLUMN_VALUE *values,
|
||||||
|
my_bool new_string);
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_create_many_named(DYNAMIC_COLUMN *str,
|
||||||
|
uint column_count,
|
||||||
|
MYSQL_LEX_STRING *column_keys,
|
||||||
|
DYNAMIC_COLUMN_VALUE *values,
|
||||||
|
my_bool new_string);
|
||||||
|
|
||||||
|
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_update_many(DYNAMIC_COLUMN *str,
|
||||||
|
uint add_column_count,
|
||||||
|
uint *column_keys,
|
||||||
|
DYNAMIC_COLUMN_VALUE *values);
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_update_many_named(DYNAMIC_COLUMN *str,
|
||||||
|
uint add_column_count,
|
||||||
|
MYSQL_LEX_STRING *column_keys,
|
||||||
|
DYNAMIC_COLUMN_VALUE *values);
|
||||||
|
|
||||||
|
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_exists(DYNAMIC_COLUMN *org, uint column_nr);
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_exists_named(DYNAMIC_COLUMN *str, MYSQL_LEX_STRING *name);
|
||||||
|
|
||||||
|
/* List of not NULL columns */
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_list(DYNAMIC_COLUMN *str, uint *count, uint **nums);
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_list_named(DYNAMIC_COLUMN *str, uint *count,
|
||||||
|
MYSQL_LEX_STRING **names);
|
||||||
|
|
||||||
|
/*
|
||||||
|
if the column do not exists it is NULL
|
||||||
|
*/
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_get(DYNAMIC_COLUMN *org, uint column_nr,
|
||||||
|
DYNAMIC_COLUMN_VALUE *store_it_here);
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_get_named(DYNAMIC_COLUMN *str, MYSQL_LEX_STRING *name,
|
||||||
|
DYNAMIC_COLUMN_VALUE *store_it_here);
|
||||||
|
|
||||||
|
my_bool mariadb_dyncol_has_names(DYNAMIC_COLUMN *str);
|
||||||
|
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_check(DYNAMIC_COLUMN *str);
|
||||||
|
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_json(DYNAMIC_COLUMN *str, DYNAMIC_STRING *json);
|
||||||
|
|
||||||
|
void mariadb_dyncol_free(DYNAMIC_COLUMN *str);
|
||||||
|
|
||||||
|
#define mariadb_dyncol_init(A) memset((A), 0, sizeof(DYNAMIC_COLUMN))
|
||||||
|
#define dynamic_column_initialize(A) mariadb_dyncol_init((A))
|
||||||
|
#define dynamic_column_column_free(A) mariadb_dyncol_free((A))
|
||||||
|
|
||||||
|
/* conversion of values to 3 base types */
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_val_str(DYNAMIC_STRING *str, DYNAMIC_COLUMN_VALUE *val,
|
||||||
|
CHARSET_INFO *cs, my_bool quote);
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_val_long(longlong *ll, DYNAMIC_COLUMN_VALUE *val);
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_val_double(double *dbl, DYNAMIC_COLUMN_VALUE *val);
|
||||||
|
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_unpack(DYNAMIC_COLUMN *str,
|
||||||
|
uint *count,
|
||||||
|
MYSQL_LEX_STRING **names, DYNAMIC_COLUMN_VALUE **vals);
|
||||||
|
|
||||||
|
int mariadb_dyncol_column_cmp_named(const MYSQL_LEX_STRING *s1,
|
||||||
|
const MYSQL_LEX_STRING *s2);
|
||||||
|
|
||||||
|
enum enum_dyncol_func_result
|
||||||
|
mariadb_dyncol_column_count(DYNAMIC_COLUMN *str, uint *column_count);
|
||||||
|
|
||||||
|
#define mariadb_dyncol_value_init(V) (V)->type= DYN_COL_NULL
|
||||||
|
|
||||||
|
/*
|
||||||
|
Prepare value for using as decimal
|
||||||
|
*/
|
||||||
|
void mariadb_dyncol_prepare_decimal(DYNAMIC_COLUMN_VALUE *value);
|
||||||
|
|
||||||
|
#endif
|
@@ -330,6 +330,14 @@ typedef unsigned short ushort;
|
|||||||
#define ASCII_BITS_USED 8 /* Bit char used */
|
#define ASCII_BITS_USED 8 /* Bit char used */
|
||||||
#define NEAR_F /* No near function handling */
|
#define NEAR_F /* No near function handling */
|
||||||
|
|
||||||
|
struct st_mysql_lex_string
|
||||||
|
{
|
||||||
|
char *str;
|
||||||
|
size_t length;
|
||||||
|
};
|
||||||
|
typedef struct st_mysql_lex_string LEX_STRING;
|
||||||
|
typedef struct st_mysql_lex_string MYSQL_LEX_STRING;
|
||||||
|
|
||||||
/* Some types that is different between systems */
|
/* Some types that is different between systems */
|
||||||
|
|
||||||
typedef int File; /* File descriptor */
|
typedef int File; /* File descriptor */
|
||||||
@@ -499,6 +507,14 @@ extern double my_atof(const char*);
|
|||||||
/* #define sigset(A,B) signal((A),(B)) */
|
/* #define sigset(A,B) signal((A),(B)) */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || \
|
||||||
|
defined(__cplusplus) || !defined(__GNUC__)
|
||||||
|
#define UNINIT_VAR(x) x= 0
|
||||||
|
#else
|
||||||
|
/* GCC specific self-initialization which inhibits the warning. */
|
||||||
|
#define UNINIT_VAR(x) x= x
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Remove some things that mit_thread break or doesn't support */
|
/* Remove some things that mit_thread break or doesn't support */
|
||||||
#if defined(HAVE_mit_thread) && defined(THREAD)
|
#if defined(HAVE_mit_thread) && defined(THREAD)
|
||||||
#undef HAVE_PREAD
|
#undef HAVE_PREAD
|
||||||
@@ -521,25 +537,20 @@ extern double my_atof(const char*);
|
|||||||
#define LONGLONG_MAX ((long long) 0x7FFFFFFFFFFFFFFFLL)
|
#define LONGLONG_MAX ((long long) 0x7FFFFFFFFFFFFFFFLL)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if SIZEOF_LONG == 4
|
#define INT_MIN64 (~0x7FFFFFFFFFFFFFFFLL)
|
||||||
#define INT_MIN32 (long) 0x80000000L
|
#define INT_MAX64 0x7FFFFFFFFFFFFFFFLL
|
||||||
#define INT_MAX32 (long) 0x7FFFFFFFL
|
#define INT_MIN32 (~0x7FFFFFFFL)
|
||||||
|
#define INT_MAX32 0x7FFFFFFFL
|
||||||
#define UINT_MAX32 0xFFFFFFFFL
|
#define UINT_MAX32 0xFFFFFFFFL
|
||||||
#define INT_MIN24 ((long) 0xff800000L)
|
#define INT_MIN24 (~0x007FFFFF)
|
||||||
#define INT_MAX24 0x007fffffL
|
#define INT_MAX24 0x007FFFFF
|
||||||
#define INT_MIN16 ((short int) 0x8000)
|
#define UINT_MAX24 0x00FFFFFF
|
||||||
#define INT_MAX16 0x7FFF
|
#define INT_MIN16 (~0x7FFF)
|
||||||
#define UINT_MAX16 0xFFFF
|
#define INT_MAX16 0x7FFF
|
||||||
#define INT_MIN8 ((char) 0x80)
|
#define UINT_MAX16 0xFFFF
|
||||||
#define INT_MAX8 ((char) 0x7F)
|
#define INT_MIN8 (~0x7F)
|
||||||
#else /* Probably Alpha */
|
#define INT_MAX8 0x7F
|
||||||
#define INT_MIN32 ((long) (int) 0x80000000)
|
#define UINT_MAX8 0xFF
|
||||||
#define INT_MAX32 ((long) (int) 0x7FFFFFFF)
|
|
||||||
#define INT_MIN24 ((long) (int) 0xff800000)
|
|
||||||
#define INT_MAX24 ((long) (int) 0x007fffff)
|
|
||||||
#define INT_MIN16 ((short int) 0xffff8000)
|
|
||||||
#define INT_MAX16 ((short int) 0x00007FFF)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef ULL
|
#ifndef ULL
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG
|
||||||
@@ -549,6 +560,15 @@ extern double my_atof(const char*);
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_LONG_LONG) && !defined(ULONGLONG_MAX)
|
||||||
|
/* First check for ANSI C99 definition: */
|
||||||
|
#ifdef ULLONG_MAX
|
||||||
|
#define ULONGLONG_MAX ULLONG_MAX
|
||||||
|
#else
|
||||||
|
#define ULONGLONG_MAX ((unsigned long long)(~0ULL))
|
||||||
|
#endif
|
||||||
|
#endif /* defined (HAVE_LONG_LONG) && !defined(ULONGLONG_MAX)*/
|
||||||
|
|
||||||
/* From limits.h instead */
|
/* From limits.h instead */
|
||||||
#ifndef DBL_MIN
|
#ifndef DBL_MIN
|
||||||
#define DBL_MIN 4.94065645841246544e-324
|
#define DBL_MIN 4.94065645841246544e-324
|
||||||
@@ -638,7 +658,7 @@ typedef long longlong;
|
|||||||
#ifndef MAX
|
#ifndef MAX
|
||||||
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
|
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
|
||||||
#endif
|
#endif
|
||||||
|
#define CMP_NUM(a,b) (((a) < (b)) ? -1 : ((a) == (b)) ? 0 : 1)
|
||||||
#ifdef USE_RAID
|
#ifdef USE_RAID
|
||||||
/*
|
/*
|
||||||
The following is done with a if to not get problems with pre-processors
|
The following is done with a if to not get problems with pre-processors
|
||||||
|
@@ -272,11 +272,6 @@ typedef struct st_mysql {
|
|||||||
void *extension;
|
void *extension;
|
||||||
} MYSQL;
|
} MYSQL;
|
||||||
|
|
||||||
typedef struct st_mysql_lex_string {
|
|
||||||
char *str;
|
|
||||||
size_t length;
|
|
||||||
} MYSQL_LEX_STRING;
|
|
||||||
|
|
||||||
struct st_mysql_options_extention {
|
struct st_mysql_options_extention {
|
||||||
char *plugin_dir;
|
char *plugin_dir;
|
||||||
char *default_auth;
|
char *default_auth;
|
||||||
@@ -319,6 +314,9 @@ typedef struct st_mysql_time
|
|||||||
enum enum_mysql_timestamp_type time_type;
|
enum enum_mysql_timestamp_type time_type;
|
||||||
} MYSQL_TIME;
|
} MYSQL_TIME;
|
||||||
|
|
||||||
|
#define AUTO_SEC_PART_DIGITS 31
|
||||||
|
#define SEC_PART_DIGITS 6
|
||||||
|
|
||||||
typedef struct character_set
|
typedef struct character_set
|
||||||
{
|
{
|
||||||
unsigned int number; /* character set number */
|
unsigned int number; /* character set number */
|
||||||
|
@@ -13,10 +13,12 @@ ENDIF()
|
|||||||
|
|
||||||
ADD_DEFINITIONS(-D ENABLED_LOCAL_INFILE)
|
ADD_DEFINITIONS(-D ENABLED_LOCAL_INFILE)
|
||||||
ADD_DEFINITIONS(-D HAVE_COMPRESS)
|
ADD_DEFINITIONS(-D HAVE_COMPRESS)
|
||||||
|
ADD_DEFINITIONS(-D LIBMARIADB)
|
||||||
ADD_DEFINITIONS(-D THREAD)
|
ADD_DEFINITIONS(-D THREAD)
|
||||||
|
|
||||||
SET(LIBMARIADB_SOURCES
|
SET(LIBMARIADB_SOURCES
|
||||||
array.c
|
array.c
|
||||||
|
ma_dyncol.c
|
||||||
bchange.c
|
bchange.c
|
||||||
bmove.c
|
bmove.c
|
||||||
bmove_upp.c
|
bmove_upp.c
|
||||||
@@ -24,6 +26,7 @@ my_charset.c
|
|||||||
violite.c
|
violite.c
|
||||||
net.c
|
net.c
|
||||||
charset.c
|
charset.c
|
||||||
|
ma_time.c
|
||||||
dbug.c
|
dbug.c
|
||||||
default.c
|
default.c
|
||||||
errmsg.c
|
errmsg.c
|
||||||
@@ -132,13 +135,13 @@ ELSE()
|
|||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
ADD_LIBRARY(mariadbclient STATIC ${LIBMARIADB_SOURCES})
|
ADD_LIBRARY(mariadbclient STATIC ${LIBMARIADB_SOURCES})
|
||||||
TARGET_LINK_LIBRARIES(mariadbclient ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} ${MATH_LIBRARY})
|
TARGET_LINK_LIBRARIES(mariadbclient ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} ${MATH_LIBRARY} ${ICONV_LIBRARIES})
|
||||||
IF(OPENSSL_FOUND)
|
IF(OPENSSL_FOUND)
|
||||||
TARGET_LINK_LIBRARIES(mariadbclient ${SSL_LIBRARIES})
|
TARGET_LINK_LIBRARIES(mariadbclient ${SSL_LIBRARIES})
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
ADD_LIBRARY(libmariadb SHARED ${LIBMARIADB_SOURCES})
|
ADD_LIBRARY(libmariadb SHARED ${LIBMARIADB_SOURCES})
|
||||||
TARGET_LINK_LIBRARIES(libmariadb ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} ${MATH_LIBRARY})
|
TARGET_LINK_LIBRARIES(libmariadb ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} ${MATH_LIBRARY} ${ICONV_LIBRARIES})
|
||||||
|
|
||||||
IF(OPENSSL_FOUND)
|
IF(OPENSSL_FOUND)
|
||||||
TARGET_LINK_LIBRARIES(libmariadb ${SSL_LIBRARIES})
|
TARGET_LINK_LIBRARIES(libmariadb ${SSL_LIBRARIES})
|
||||||
|
@@ -22,6 +22,9 @@
|
|||||||
#include <my_dir.h>
|
#include <my_dir.h>
|
||||||
|
|
||||||
CHARSET_INFO *default_charset_info = (CHARSET_INFO *)&compiled_charsets[5];
|
CHARSET_INFO *default_charset_info = (CHARSET_INFO *)&compiled_charsets[5];
|
||||||
|
CHARSET_INFO *my_charset_bin= (CHARSET_INFO *)&compiled_charsets[32];
|
||||||
|
CHARSET_INFO *my_charset_latin1= (CHARSET_INFO *)&compiled_charsets[5];
|
||||||
|
CHARSET_INFO *my_charset_utf8_general_ci= (CHARSET_INFO *)&compiled_charsets[21];
|
||||||
|
|
||||||
CHARSET_INFO *get_charset_by_nr(uint cs_number)
|
CHARSET_INFO *get_charset_by_nr(uint cs_number)
|
||||||
{
|
{
|
||||||
@@ -52,7 +55,7 @@ CHARSET_INFO *get_charset_by_name(const char *cs_name)
|
|||||||
{
|
{
|
||||||
int i= 0;
|
int i= 0;
|
||||||
|
|
||||||
while (compiled_charsets[i].nr && strcmp(cs_name, compiled_charsets[i].name) != 0)
|
while (compiled_charsets[i].nr && strcmp(cs_name, compiled_charsets[i].csname) != 0)
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
return (compiled_charsets[i].nr) ? (CHARSET_INFO *)&compiled_charsets[i] : NULL;
|
return (compiled_charsets[i].nr) ? (CHARSET_INFO *)&compiled_charsets[i] : NULL;
|
||||||
|
@@ -106,3 +106,23 @@ EXPORTS
|
|||||||
mysql_stmt_more_results
|
mysql_stmt_more_results
|
||||||
mariadb_connection
|
mariadb_connection
|
||||||
mysql_get_server_name
|
mysql_get_server_name
|
||||||
|
mariadb_dyncol_create_many
|
||||||
|
mariadb_dyncol_create_many_named
|
||||||
|
mariadb_dyncol_update_many
|
||||||
|
mariadb_dyncol_update_many_named
|
||||||
|
mariadb_dyncol_exists
|
||||||
|
mariadb_dyncol_exists_named
|
||||||
|
mariadb_dyncol_list
|
||||||
|
mariadb_dyncol_list_named
|
||||||
|
mariadb_dyncol_get
|
||||||
|
mariadb_dyncol_get_named
|
||||||
|
mariadb_dyncol_has_names
|
||||||
|
mariadb_dyncol_check
|
||||||
|
mariadb_dyncol_val_str
|
||||||
|
mariadb_dyncol_val_long
|
||||||
|
mariadb_dyncol_val_double
|
||||||
|
mariadb_dyncol_unpack
|
||||||
|
mariadb_dyncol_column_cmp_named
|
||||||
|
mariadb_dyncol_column_count
|
||||||
|
mariadb_dyncol_json
|
||||||
|
|
||||||
|
4406
libmariadb/ma_dyncol.c
Normal file
4406
libmariadb/ma_dyncol.c
Normal file
File diff suppressed because it is too large
Load Diff
65
libmariadb/ma_time.c
Normal file
65
libmariadb/ma_time.c
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
Copyright (C) 2013 Monty Program AB
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Library General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with this library; if not see <http://www.gnu.org/licenses>
|
||||||
|
or write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin St., Fifth Floor, Boston, MA 02110, USA
|
||||||
|
|
||||||
|
Part of this code includes code from the PHP project which
|
||||||
|
is freely available from http://www.php.net
|
||||||
|
*****************************************************************************/
|
||||||
|
#include "mysys_priv.h"
|
||||||
|
#include <my_global.h>
|
||||||
|
#include <mysql.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
|
||||||
|
size_t mariadb_time_to_string(const MYSQL_TIME *tm, char *time_str, size_t len,
|
||||||
|
unsigned int digits)
|
||||||
|
{
|
||||||
|
size_t length;
|
||||||
|
|
||||||
|
if (!time_str || !len)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (digits == AUTO_SEC_PART_DIGITS)
|
||||||
|
digits= MIN((tm->second_part) ? SEC_PART_DIGITS : 0, 15);
|
||||||
|
|
||||||
|
switch(tm->time_type) {
|
||||||
|
case MYSQL_TIMESTAMP_DATE:
|
||||||
|
length= snprintf(time_str, len, "%04u-%02u-%02u", tm->year, tm->month, tm->day);
|
||||||
|
digits= 0;
|
||||||
|
break;
|
||||||
|
case MYSQL_TIMESTAMP_DATETIME:
|
||||||
|
length= snprintf(time_str, len, "%04u-%02u-%02u %02u:%02u:%02u",
|
||||||
|
tm->year, tm->month, tm->day, tm->hour, tm->minute, tm->second);
|
||||||
|
break;
|
||||||
|
case MYSQL_TIMESTAMP_TIME:
|
||||||
|
length= snprintf(time_str, len, "%s%02u:%02u:%02u",
|
||||||
|
(tm->neg ? "-" : ""), tm->hour, tm->minute, tm->second);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
time_str[0]= '\0';
|
||||||
|
return 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (digits && (len < length))
|
||||||
|
{
|
||||||
|
char helper[16];
|
||||||
|
snprintf(helper, 16, ".%%0%du", digits);
|
||||||
|
length+= snprintf(time_str + length, len - length, helper, digits);
|
||||||
|
}
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
@@ -52,6 +52,8 @@
|
|||||||
#include <my_global.h>
|
#include <my_global.h>
|
||||||
#include <m_ctype.h>
|
#include <m_ctype.h>
|
||||||
|
|
||||||
|
#include <iconv.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
+----------------------------------------------------------------------+
|
+----------------------------------------------------------------------+
|
||||||
| PHP Version 5 |
|
| PHP Version 5 |
|
||||||
@@ -492,170 +494,170 @@ mysql_mbcharlen_utf32(unsigned int utf32 __attribute((unused)))
|
|||||||
/* {{{ mysql_charsets */
|
/* {{{ mysql_charsets */
|
||||||
const CHARSET_INFO compiled_charsets[] =
|
const CHARSET_INFO compiled_charsets[] =
|
||||||
{
|
{
|
||||||
{ 1, 1, "big5","big5_chinese_ci", "", "", 1, 2, mysql_mbcharlen_big5, check_mb_big5},
|
{ 1, 1, "big5","big5_chinese_ci", "", "BIG5", 1, 2, mysql_mbcharlen_big5, check_mb_big5},
|
||||||
{ 3, 1, "dec8", "dec8_swedisch_ci", "", "", 1, 1, NULL, NULL},
|
{ 3, 1, "dec8", "dec8_swedisch_ci", "", "DEC", 1, 1, NULL, NULL},
|
||||||
{ 4, 1, "cp850", "cp850_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 4, 1, "cp850", "cp850_general_ci", "", "CP850", 1, 1, NULL, NULL},
|
||||||
{ 6, 1, "hp8", "hp8_english_ci", "", "", 1, 1, NULL, NULL},
|
{ 6, 1, "hp8", "hp8_english_ci", "", "HP-ROMAN8", 1, 1, NULL, NULL},
|
||||||
{ 7, 1, "koi8r", "koi8r_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 7, 1, "koi8r", "koi8r_general_ci", "", "KOI8R", 1, 1, NULL, NULL},
|
||||||
{ 8, 1, "latin1", "latin1_swedish_ci", "", "", 1, 1, NULL, NULL},
|
{ 8, 1, "latin1", "latin1_swedish_ci", "", "LATIN1", 1, 1, NULL, NULL},
|
||||||
{ 9, 1, "latin2", "latin2_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 9, 1, "latin2", "latin2_general_ci", "", "LATIN2", 1, 1, NULL, NULL},
|
||||||
{ 10, 1, "swe7", "swe7_swedish_ci", "", "", 1, 1, NULL, NULL},
|
{ 10, 1, "swe7", "swe7_swedish_ci", "", "", 1, 1, NULL, NULL},
|
||||||
{ 11, 1, "ascii", "ascii_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 11, 1, "ascii", "ascii_general_ci", "", "ASCII", 1, 1, NULL, NULL},
|
||||||
{ 12, 1, "ujis", "ujis_japanese_ci", "", "", 1, 3, mysql_mbcharlen_ujis, check_mb_ujis},
|
{ 12, 1, "ujis", "ujis_japanese_ci", "", "UJIS", 1, 3, mysql_mbcharlen_ujis, check_mb_ujis},
|
||||||
{ 13, 1, "sjis", "sjis_japanese_ci", "", "", 1, 2, mysql_mbcharlen_sjis, check_mb_sjis},
|
{ 13, 1, "sjis", "sjis_japanese_ci", "", "SJIS", 1, 2, mysql_mbcharlen_sjis, check_mb_sjis},
|
||||||
{ 16, 1, "hebrew", "hebrew_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 16, 1, "hebrew", "hebrew_general_ci", "", "HEBREW", 1, 1, NULL, NULL},
|
||||||
{ 18, 1, "tis620", "tis620_thai_ci", "", "", 1, 1, NULL, NULL},
|
{ 18, 1, "tis620", "tis620_thai_ci", "", "TIS620", 1, 1, NULL, NULL},
|
||||||
{ 19, 1, "euckr", "euckr_korean_ci", "", "", 1, 2, mysql_mbcharlen_euckr, check_mb_euckr},
|
{ 19, 1, "euckr", "euckr_korean_ci", "", "EUCKR", 1, 2, mysql_mbcharlen_euckr, check_mb_euckr},
|
||||||
{ 22, 1, "koi8u", "koi8u_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 22, 1, "koi8u", "koi8u_general_ci", "", "KOI8U", 1, 1, NULL, NULL},
|
||||||
{ 24, 1, "gb2312", "gb2312_chinese_ci", "", "", 1, 2, mysql_mbcharlen_gb2312, check_mb_gb2312},
|
{ 24, 1, "gb2312", "gb2312_chinese_ci", "", "GB2312", 1, 2, mysql_mbcharlen_gb2312, check_mb_gb2312},
|
||||||
{ 25, 1, "greek", "greek_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 25, 1, "greek", "greek_general_ci", "", "GREEK", 1, 1, NULL, NULL},
|
||||||
{ 26, 1, "cp1250", "cp1250_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 26, 1, "cp1250", "cp1250_general_ci", "", "CP1250", 1, 1, NULL, NULL},
|
||||||
{ 28, 1, "gbk", "gbk_chinese_ci", "", "", 1, 2, mysql_mbcharlen_gbk, check_mb_gbk},
|
{ 28, 1, "gbk", "gbk_chinese_ci", "", "GBK", 1, 2, mysql_mbcharlen_gbk, check_mb_gbk},
|
||||||
{ 30, 1, "latin5", "latin5_turkish_ci", "", "", 1, 1, NULL, NULL},
|
{ 30, 1, "latin5", "latin5_turkish_ci", "", "LATIN5", 1, 1, NULL, NULL},
|
||||||
{ 32, 1, "armscii8", "armscii8_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 32, 1, "armscii8", "armscii8_general_ci", "", "ARMSCII-8", 1, 1, NULL, NULL},
|
||||||
{ 33, 1, UTF8_MB3, UTF8_MB3"_general_ci", "UTF-8 Unicode", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 33, 1, UTF8_MB3, UTF8_MB3"_general_ci", "UTF-8 Unicode", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 35, 1, "ucs2", "ucs2_general_ci", "UCS-2 Unicode", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 35, 1, "ucs2", "ucs2_general_ci", "UCS-2 Unicode", "UCS-2BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 36, 1, "cp866", "cp866_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 36, 1, "cp866", "cp866_general_ci", "", "CP866", 1, 1, NULL, NULL},
|
||||||
{ 37, 1, "keybcs2", "keybcs2_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 37, 1, "keybcs2", "keybcs2_general_ci", "", "", 1, 1, NULL, NULL},
|
||||||
{ 38, 1, "macce", "macce_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 38, 1, "macce", "macce_general_ci", "", "CP1282", 1, 1, NULL, NULL},
|
||||||
{ 39, 1, "macroman", "macroman_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 39, 1, "macroman", "macroman_general_ci", "MACINTOSH", "", 1, 1, NULL, NULL},
|
||||||
{ 40, 1, "cp852", "cp852_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 40, 1, "cp852", "cp852_general_ci", "", "CP852", 1, 1, NULL, NULL},
|
||||||
{ 41, 1, "latin7", "latin7_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 41, 1, "latin7", "latin7_general_ci", "", "LATIN7", 1, 1, NULL, NULL},
|
||||||
{ 51, 1, "cp1251", "cp1251_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 51, 1, "cp1251", "cp1251_general_ci", "", "CP1251", 1, 1, NULL, NULL},
|
||||||
{ 57, 1, "cp1256", "cp1256_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 57, 1, "cp1256", "cp1256_general_ci", "", "CP1256", 1, 1, NULL, NULL},
|
||||||
{ 59, 1, "cp1257", "cp1257_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 59, 1, "cp1257", "cp1257_general_ci", "", "CP1257", 1, 1, NULL, NULL},
|
||||||
{ 63, 1, "binary", "binary", "", "", 1, 1, NULL, NULL},
|
{ 63, 1, "binary", "binary", "", "ASCII", 1, 1, NULL, NULL},
|
||||||
{ 92, 1, "geostd8", "geostd8_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 92, 1, "geostd8", "geostd8_general_ci", "", "GEORGIAN-PS", 1, 1, NULL, NULL},
|
||||||
{ 95, 1, "cp932", "cp932_japanese_ci", "", "", 1, 2, mysql_mbcharlen_cp932, check_mb_cp932},
|
{ 95, 1, "cp932", "cp932_japanese_ci", "", "CP932", 1, 2, mysql_mbcharlen_cp932, check_mb_cp932},
|
||||||
{ 97, 1, "eucjpms", "eucjpms_japanese_ci", "", "", 1, 3, mysql_mbcharlen_eucjpms, check_mb_eucjpms},
|
{ 97, 1, "eucjpms", "eucjpms_japanese_ci", "", "EUC-JP-MS", 1, 3, mysql_mbcharlen_eucjpms, check_mb_eucjpms},
|
||||||
{ 2, 1, "latin2", "latin2_czech_cs", "", "", 1, 1, NULL, NULL},
|
{ 2, 1, "latin2", "latin2_czech_cs", "", "LATIN2", 1, 1, NULL, NULL},
|
||||||
{ 5, 1, "latin1", "latin1_german_ci", "", "", 1, 1, NULL, NULL},
|
{ 5, 1, "latin1", "latin1_german_ci", "", "LATIN1", 1, 1, NULL, NULL},
|
||||||
{ 14, 1, "cp1251", "cp1251_bulgarian_ci", "", "", 1, 1, NULL, NULL},
|
{ 14, 1, "cp1251", "cp1251_bulgarian_ci", "", "CP1251", 1, 1, NULL, NULL},
|
||||||
{ 15, 1, "latin1", "latin1_danish_ci", "", "", 1, 1, NULL, NULL},
|
{ 15, 1, "latin1", "latin1_danish_ci", "", "LATIN1", 1, 1, NULL, NULL},
|
||||||
{ 17, 1, "filename", "filename", "", "", 1, 5, NULL, NULL},
|
{ 17, 1, "filename", "filename", "", "", 1, 5, NULL, NULL},
|
||||||
{ 20, 1, "latin7", "latin7_estonian_cs", "", "", 1, 1, NULL, NULL},
|
{ 20, 1, "latin7", "latin7_estonian_cs", "", "LATIN7", 1, 1, NULL, NULL},
|
||||||
{ 21, 1, "latin2", "latin2_hungarian_ci", "", "", 1, 1, NULL, NULL},
|
{ 21, 1, "latin2", "latin2_hungarian_ci", "", "LATIN2", 1, 1, NULL, NULL},
|
||||||
{ 23, 1, "cp1251", "cp1251_ukrainian_ci", "", "", 1, 1, NULL, NULL},
|
{ 23, 1, "cp1251", "cp1251_ukrainian_ci", "", "CP1251", 1, 1, NULL, NULL},
|
||||||
{ 27, 1, "latin2", "latin2_croatian_ci", "", "", 1, 1, NULL, NULL},
|
{ 27, 1, "latin2", "latin2_croatian_ci", "", "LATIN2", 1, 1, NULL, NULL},
|
||||||
{ 29, 1, "cp1257", "cp1257_lithunian_ci", "", "", 1, 1, NULL, NULL},
|
{ 29, 1, "cp1257", "cp1257_lithunian_ci", "", "CP1257", 1, 1, NULL, NULL},
|
||||||
{ 31, 1, "latin1", "latin1_german2_ci", "", "", 1, 1, NULL, NULL},
|
{ 31, 1, "latin1", "latin1_german2_ci", "", "LATIN1", 1, 1, NULL, NULL},
|
||||||
{ 34, 1, "cp1250", "cp1250_czech_cs", "", "", 1, 1, NULL, NULL},
|
{ 34, 1, "cp1250", "cp1250_czech_cs", "", "CP1250", 1, 1, NULL, NULL},
|
||||||
{ 42, 1, "latin7", "latin7_general_cs", "", "", 1, 1, NULL, NULL},
|
{ 42, 1, "latin7", "latin7_general_cs", "", "LATIN7", 1, 1, NULL, NULL},
|
||||||
{ 43, 1, "macce", "macce_bin", "", "", 1, 1, NULL, NULL},
|
{ 43, 1, "macce", "macce_bin", "", "MACINTOSH", 1, 1, NULL, NULL},
|
||||||
{ 44, 1, "cp1250", "cp1250_croatian_ci", "", "", 1, 1, NULL, NULL},
|
{ 44, 1, "cp1250", "cp1250_croatian_ci", "", "CP1250", 1, 1, NULL, NULL},
|
||||||
{ 45, 1, UTF8_MB4, UTF8_MB4"_general_ci", "UTF-8 Unicode", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 45, 1, UTF8_MB4, UTF8_MB4"_general_ci", "UTF-8 Unicode", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 46, 1, UTF8_MB4, UTF8_MB4"_bin", "UTF-8 Unicode", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 46, 1, UTF8_MB4, UTF8_MB4"_bin", "UTF-8 Unicode", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 47, 1, "latin1", "latin1_bin", "", "", 1, 1, NULL, NULL},
|
{ 47, 1, "latin1", "latin1_bin", "", "LATIN1", 1, 1, NULL, NULL},
|
||||||
{ 48, 1, "latin1", "latin1_general_ci", "", "", 1, 1, NULL, NULL},
|
{ 48, 1, "latin1", "latin1_general_ci", "", "LATIN1", 1, 1, NULL, NULL},
|
||||||
{ 49, 1, "latin1", "latin1_general_cs", "", "", 1, 1, NULL, NULL},
|
{ 49, 1, "latin1", "latin1_general_cs", "", "LATIN1", 1, 1, NULL, NULL},
|
||||||
{ 50, 1, "cp1251", "cp1251_bin", "", "", 1, 1, NULL, NULL},
|
{ 50, 1, "cp1251", "cp1251_bin", "", "CP1251", 1, 1, NULL, NULL},
|
||||||
{ 52, 1, "cp1251", "cp1251_general_cs", "", "", 1, 1, NULL, NULL},
|
{ 52, 1, "cp1251", "cp1251_general_cs", "", "CP1251", 1, 1, NULL, NULL},
|
||||||
{ 53, 1, "macroman", "macroman_bin", "", "", 1, 1, NULL, NULL},
|
{ 53, 1, "macroman", "macroman_bin", "", "MACINTOSH", 1, 1, NULL, NULL},
|
||||||
{ 54, 1, "utf16", "utf16_general_ci", "UTF_16 Unicode", "", 2, 4, mysql_mbcharlen_utf16, check_mb_utf16},
|
{ 54, 1, "utf16", "utf16_general_ci", "UTF_16 Unicode", "UTF16", 2, 4, mysql_mbcharlen_utf16, check_mb_utf16},
|
||||||
{ 55, 1, "utf16", "utf16_bin", "UTF-16 Unicode", "", 2, 4, mysql_mbcharlen_utf16, check_mb_utf16},
|
{ 55, 1, "utf16", "utf16_bin", "UTF-16 Unicode", "UTF16", 2, 4, mysql_mbcharlen_utf16, check_mb_utf16},
|
||||||
{ 58, 1, "cp1257", "cp1257_bin", "", "", 1, 1, NULL, NULL},
|
{ 58, 1, "cp1257", "cp1257_bin", "", "CP1257", 1, 1, NULL, NULL},
|
||||||
#ifdef USED_TO_BE_SO_BEFORE_MYSQL_5_5
|
#ifdef USED_TO_BE_SO_BEFORE_MYSQL_5_5
|
||||||
{ 60, 1, "armascii8", "armascii8_bin", "", "", 1, 1, NULL, NULL},
|
{ 60, 1, "armascii8", "armascii8_bin", "", "ARMSCII-8", 1, 1, NULL, NULL},
|
||||||
#endif
|
#endif
|
||||||
{ 60, 1, "utf32", "utf32_general_ci", "UTF-32 Unicode", "", 4, 4, mysql_mbcharlen_utf32, check_mb_utf32},
|
{ 60, 1, "utf32", "utf32_general_ci", "UTF-32 Unicode", "UTF32", 4, 4, mysql_mbcharlen_utf32, check_mb_utf32},
|
||||||
{ 61, 1, "utf32", "utf32_bin", "UTF-32 Unicode", "", 4, 4, mysql_mbcharlen_utf32, check_mb_utf32},
|
{ 61, 1, "utf32", "utf32_bin", "UTF-32 Unicode", "UTF32", 4, 4, mysql_mbcharlen_utf32, check_mb_utf32},
|
||||||
{ 65, 1, "ascii", "ascii_bin", "", "", 1, 1, NULL, NULL},
|
{ 65, 1, "ascii", "ascii_bin", "", "ASCII", 1, 1, NULL, NULL},
|
||||||
{ 66, 1, "cp1250", "cp1250_bin", "", "", 1, 1, NULL, NULL},
|
{ 66, 1, "cp1250", "cp1250_bin", "", "CP1250", 1, 1, NULL, NULL},
|
||||||
{ 67, 1, "cp1256", "cp1256_bin", "", "", 1, 1, NULL, NULL},
|
{ 67, 1, "cp1256", "cp1256_bin", "", "CP1256", 1, 1, NULL, NULL},
|
||||||
{ 68, 1, "cp866", "cp866_bin", "", "", 1, 1, NULL, NULL},
|
{ 68, 1, "cp866", "cp866_bin", "", "CP866", 1, 1, NULL, NULL},
|
||||||
{ 69, 1, "dec8", "dec8_bin", "", "", 1, 1, NULL, NULL},
|
{ 69, 1, "dec8", "dec8_bin", "", "DEC", 1, 1, NULL, NULL},
|
||||||
{ 70, 1, "greek", "greek_bin", "", "", 1, 1, NULL, NULL},
|
{ 70, 1, "greek", "greek_bin", "", "GREEK", 1, 1, NULL, NULL},
|
||||||
{ 71, 1, "hebew", "hebrew_bin", "", "", 1, 1, NULL, NULL},
|
{ 71, 1, "hebrew", "hebrew_bin", "", "hebrew", 1, 1, NULL, NULL},
|
||||||
{ 72, 1, "hp8", "hp8_bin", "", "", 1, 1, NULL, NULL},
|
{ 72, 1, "hp8", "hp8_bin", "", "HPROMAN-8", 1, 1, NULL, NULL},
|
||||||
{ 73, 1, "keybcs2", "keybcs2_bin", "", "", 1, 1, NULL, NULL},
|
{ 73, 1, "keybcs2", "keybcs2_bin", "", "", 1, 1, NULL, NULL},
|
||||||
{ 74, 1, "koi8r", "koi8r_bin", "", "", 1, 1, NULL, NULL},
|
{ 74, 1, "koi8r", "koi8r_bin", "", "KOI8R", 1, 1, NULL, NULL},
|
||||||
{ 75, 1, "koi8u", "koi8u_bin", "", "", 1, 1, NULL, NULL},
|
{ 75, 1, "koi8u", "koi8u_bin", "", "KOI8U", 1, 1, NULL, NULL},
|
||||||
{ 77, 1, "latin2", "latin2_bin", "", "", 1, 1, NULL, NULL},
|
{ 77, 1, "latin2", "latin2_bin", "", "LATIN2", 1, 1, NULL, NULL},
|
||||||
{ 78, 1, "latin5", "latin5_bin", "", "", 1, 1, NULL, NULL},
|
{ 78, 1, "latin5", "latin5_bin", "", "LATIN5", 1, 1, NULL, NULL},
|
||||||
{ 79, 1, "latin7", "latin7_bin", "", "", 1, 1, NULL, NULL},
|
{ 79, 1, "latin7", "latin7_bin", "", "LATIN7", 1, 1, NULL, NULL},
|
||||||
{ 80, 1, "cp850", "cp850_bin", "", "", 1, 1, NULL, NULL},
|
{ 80, 1, "cp850", "cp850_bin", "", "CP850", 1, 1, NULL, NULL},
|
||||||
{ 81, 1, "cp852", "cp852_bin", "", "", 1, 1, NULL, NULL},
|
{ 81, 1, "cp852", "cp852_bin", "", "CP852", 1, 1, NULL, NULL},
|
||||||
{ 82, 1, "swe7", "swe7_bin", "", "", 1, 1, NULL, NULL},
|
{ 82, 1, "swe7", "swe7_bin", "", "", 1, 1, NULL, NULL},
|
||||||
{ 93, 1, "geostd8", "geostd8_bin", "", "", 1, 1, NULL, NULL},
|
{ 93, 1, "geostd8", "geostd8_bin", "", "GEORGIAN-PS", 1, 1, NULL, NULL},
|
||||||
{ 83, 1, UTF8_MB3, UTF8_MB3"_bin", "UTF-8 Unicode", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 83, 1, UTF8_MB3, UTF8_MB3"_bin", "UTF-8 Unicode", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 84, 1, "big5", "big5_bin", "", "", 1, 2, mysql_mbcharlen_big5, check_mb_big5},
|
{ 84, 1, "big5", "big5_bin", "", "BIG5", 1, 2, mysql_mbcharlen_big5, check_mb_big5},
|
||||||
{ 85, 1, "euckr", "euckr_bin", "", "", 1, 2, mysql_mbcharlen_euckr, check_mb_euckr},
|
{ 85, 1, "euckr", "euckr_bin", "", "EUCKR", 1, 2, mysql_mbcharlen_euckr, check_mb_euckr},
|
||||||
{ 86, 1, "gb2312", "gb2312_bin", "", "", 1, 2, mysql_mbcharlen_gb2312, check_mb_gb2312},
|
{ 86, 1, "gb2312", "gb2312_bin", "", "GB2312", 1, 2, mysql_mbcharlen_gb2312, check_mb_gb2312},
|
||||||
{ 87, 1, "gbk", "gbk_bin", "", "", 1, 2, mysql_mbcharlen_gbk, check_mb_gbk},
|
{ 87, 1, "gbk", "gbk_bin", "", "GBK", 1, 2, mysql_mbcharlen_gbk, check_mb_gbk},
|
||||||
{ 88, 1, "sjis", "sjis_bin", "", "", 1, 2, mysql_mbcharlen_sjis, check_mb_sjis},
|
{ 88, 1, "sjis", "sjis_bin", "", "SJIS", 1, 2, mysql_mbcharlen_sjis, check_mb_sjis},
|
||||||
{ 89, 1, "tis620", "tis620_bin", "", "", 1, 1, NULL, NULL},
|
{ 89, 1, "tis620", "tis620_bin", "TIS620", "", 1, 1, NULL, NULL},
|
||||||
{ 90, 1, "ucs2", "ucs2_bin", "UCS-2 Unicode", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 90, 1, "ucs2", "ucs2_bin", "UCS-2 Unicode", "UCS-2BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 91, 1, "ujis", "ujis_bin", "", "", 1, 3, mysql_mbcharlen_ujis, check_mb_ujis},
|
{ 91, 1, "ujis", "ujis_bin", "", "UJIS", 1, 3, mysql_mbcharlen_ujis, check_mb_ujis},
|
||||||
{ 94, 1, "latin1", "latin1_spanish_ci", "", "", 1, 1, NULL, NULL},
|
{ 94, 1, "latin1", "latin1_spanish_ci", "", "LATIN1", 1, 1, NULL, NULL},
|
||||||
{ 96, 1, "cp932", "cp932_bin", "", "", 1, 2, mysql_mbcharlen_cp932, check_mb_cp932},
|
{ 96, 1, "cp932", "cp932_bin", "", "CP932", 1, 2, mysql_mbcharlen_cp932, check_mb_cp932},
|
||||||
{ 99, 1, "cp1250", "cp1250_polish_ci", "", "", 1, 1, NULL, NULL},
|
{ 99, 1, "cp1250", "cp1250_polish_ci", "", "CP1250", 1, 1, NULL, NULL},
|
||||||
{ 98, 1, "eucjpms", "eucjpms_bin", "", "", 1, 3, mysql_mbcharlen_eucjpms, check_mb_eucjpms},
|
{ 98, 1, "eucjpms", "eucjpms_bin", "", "EUCJP-MS", 1, 3, mysql_mbcharlen_eucjpms, check_mb_eucjpms},
|
||||||
{ 128, 1, "ucs2", "ucs2_unicode_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 128, 1, "ucs2", "ucs2_unicode_ci", "", "UCS-2BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 129, 1, "ucs2", "ucs2_icelandic_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 129, 1, "ucs2", "ucs2_icelandic_ci", "", "UCS-2BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 130, 1, "ucs2", "ucs2_latvian_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 130, 1, "ucs2", "ucs2_latvian_ci", "", "UCS-2BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 131, 1, "ucs2", "ucs2_romanian_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 131, 1, "ucs2", "ucs2_romanian_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 132, 1, "ucs2", "ucs2_slovenian_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 132, 1, "ucs2", "ucs2_slovenian_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 133, 1, "ucs2", "ucs2_polish_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 133, 1, "ucs2", "ucs2_polish_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 134, 1, "ucs2", "ucs2_estonian_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 134, 1, "ucs2", "ucs2_estonian_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 135, 1, "ucs2", "ucs2_spanish_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 135, 1, "ucs2", "ucs2_spanish_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 136, 1, "ucs2", "ucs2_swedish_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 136, 1, "ucs2", "ucs2_swedish_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 137, 1, "ucs2", "ucs2_turkish_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 137, 1, "ucs2", "ucs2_turkish_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 138, 1, "ucs2", "ucs2_czech_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 138, 1, "ucs2", "ucs2_czech_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 139, 1, "ucs2", "ucs2_danish_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 139, 1, "ucs2", "ucs2_danish_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 140, 1, "ucs2", "ucs2_lithunian_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 140, 1, "ucs2", "ucs2_lithunian_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 141, 1, "ucs2", "ucs2_slovak_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 141, 1, "ucs2", "ucs2_slovak_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 142, 1, "ucs2", "ucs2_spanish2_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 142, 1, "ucs2", "ucs2_spanish2_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 143, 1, "ucs2", "ucs2_roman_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 143, 1, "ucs2", "ucs2_roman_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 144, 1, "ucs2", "ucs2_persian_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 144, 1, "ucs2", "ucs2_persian_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 145, 1, "ucs2", "ucs2_esperanto_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 145, 1, "ucs2", "ucs2_esperanto_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 146, 1, "ucs2", "ucs2_hungarian_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 146, 1, "ucs2", "ucs2_hungarian_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 147, 1, "ucs2", "ucs2_sinhala_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
{ 147, 1, "ucs2", "ucs2_sinhala_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2},
|
||||||
{ 149, 1, "ucs2", "ucs2_croatian_ci", "", "", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2}, /* MDB */
|
{ 149, 1, "ucs2", "ucs2_croatian_ci", "", "UCS2-BE", 2, 2, mysql_mbcharlen_ucs2, check_mb_ucs2}, /* MDB */
|
||||||
|
|
||||||
{ 192, 1, UTF8_MB3, UTF8_MB3"_general_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 192, 1, UTF8_MB3, UTF8_MB3"_general_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 193, 1, UTF8_MB3, UTF8_MB3"_icelandic_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 193, 1, UTF8_MB3, UTF8_MB3"_icelandic_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 194, 1, UTF8_MB3, UTF8_MB3"_latvian_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 194, 1, UTF8_MB3, UTF8_MB3"_latvian_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 195, 1, UTF8_MB3, UTF8_MB3"_romanian_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 195, 1, UTF8_MB3, UTF8_MB3"_romanian_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 196, 1, UTF8_MB3, UTF8_MB3"_slovenian_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 196, 1, UTF8_MB3, UTF8_MB3"_slovenian_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 197, 1, UTF8_MB3, UTF8_MB3"_polish_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 197, 1, UTF8_MB3, UTF8_MB3"_polish_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 198, 1, UTF8_MB3, UTF8_MB3"_estonian_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 198, 1, UTF8_MB3, UTF8_MB3"_estonian_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 119, 1, UTF8_MB3, UTF8_MB3"_spanish_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 119, 1, UTF8_MB3, UTF8_MB3"_spanish_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 200, 1, UTF8_MB3, UTF8_MB3"_swedish_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 200, 1, UTF8_MB3, UTF8_MB3"_swedish_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 201, 1, UTF8_MB3, UTF8_MB3"_turkish_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 201, 1, UTF8_MB3, UTF8_MB3"_turkish_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 202, 1, UTF8_MB3, UTF8_MB3"_czech_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 202, 1, UTF8_MB3, UTF8_MB3"_czech_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 203, 1, UTF8_MB3, UTF8_MB3"_danish_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid },
|
{ 203, 1, UTF8_MB3, UTF8_MB3"_danish_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid },
|
||||||
{ 204, 1, UTF8_MB3, UTF8_MB3"_lithunian_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid },
|
{ 204, 1, UTF8_MB3, UTF8_MB3"_lithunian_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid },
|
||||||
{ 205, 1, UTF8_MB3, UTF8_MB3"_slovak_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 205, 1, UTF8_MB3, UTF8_MB3"_slovak_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 206, 1, UTF8_MB3, UTF8_MB3"_spanish2_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 206, 1, UTF8_MB3, UTF8_MB3"_spanish2_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 207, 1, UTF8_MB3, UTF8_MB3"_roman_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 207, 1, UTF8_MB3, UTF8_MB3"_roman_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 208, 1, UTF8_MB3, UTF8_MB3"_persian_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 208, 1, UTF8_MB3, UTF8_MB3"_persian_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 209, 1, UTF8_MB3, UTF8_MB3"_esperanto_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 209, 1, UTF8_MB3, UTF8_MB3"_esperanto_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 210, 1, UTF8_MB3, UTF8_MB3"_hungarian_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 210, 1, UTF8_MB3, UTF8_MB3"_hungarian_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 211, 1, UTF8_MB3, UTF8_MB3"_sinhala_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
{ 211, 1, UTF8_MB3, UTF8_MB3"_sinhala_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid},
|
||||||
{ 213, 1, UTF8_MB3, UTF8_MB3"_croatian_ci", "", "", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid}, /*MDB*/
|
{ 213, 1, UTF8_MB3, UTF8_MB3"_croatian_ci", "", "UTF8", 1, 3, mysql_mbcharlen_utf8mb3, check_mb_utf8mb3_valid}, /*MDB*/
|
||||||
|
|
||||||
{ 224, 1, UTF8_MB4, UTF8_MB4"_unicode_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 224, 1, UTF8_MB4, UTF8_MB4"_unicode_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 225, 1, UTF8_MB4, UTF8_MB4"_icelandic_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 225, 1, UTF8_MB4, UTF8_MB4"_icelandic_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 226, 1, UTF8_MB4, UTF8_MB4"_latvian_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 226, 1, UTF8_MB4, UTF8_MB4"_latvian_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 227, 1, UTF8_MB4, UTF8_MB4"_romanian_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 227, 1, UTF8_MB4, UTF8_MB4"_romanian_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 228, 1, UTF8_MB4, UTF8_MB4"_slovenian_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 228, 1, UTF8_MB4, UTF8_MB4"_slovenian_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 229, 1, UTF8_MB4, UTF8_MB4"_polish_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 229, 1, UTF8_MB4, UTF8_MB4"_polish_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 230, 1, UTF8_MB4, UTF8_MB4"_estonian_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 230, 1, UTF8_MB4, UTF8_MB4"_estonian_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 231, 1, UTF8_MB4, UTF8_MB4"_spanish_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 231, 1, UTF8_MB4, UTF8_MB4"_spanish_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 232, 1, UTF8_MB4, UTF8_MB4"_swedish_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 232, 1, UTF8_MB4, UTF8_MB4"_swedish_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 233, 1, UTF8_MB4, UTF8_MB4"_turkish_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 233, 1, UTF8_MB4, UTF8_MB4"_turkish_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 234, 1, UTF8_MB4, UTF8_MB4"_czech_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 234, 1, UTF8_MB4, UTF8_MB4"_czech_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 235, 1, UTF8_MB4, UTF8_MB4"_danish_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 235, 1, UTF8_MB4, UTF8_MB4"_danish_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 236, 1, UTF8_MB4, UTF8_MB4"_lithuanian_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 236, 1, UTF8_MB4, UTF8_MB4"_lithuanian_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 237, 1, UTF8_MB4, UTF8_MB4"_slovak_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 237, 1, UTF8_MB4, UTF8_MB4"_slovak_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 238, 1, UTF8_MB4, UTF8_MB4"_spanish2_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 238, 1, UTF8_MB4, UTF8_MB4"_spanish2_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 239, 1, UTF8_MB4, UTF8_MB4"_roman_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 239, 1, UTF8_MB4, UTF8_MB4"_roman_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 240, 1, UTF8_MB4, UTF8_MB4"_persian_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 240, 1, UTF8_MB4, UTF8_MB4"_persian_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 241, 1, UTF8_MB4, UTF8_MB4"_esperanto_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 241, 1, UTF8_MB4, UTF8_MB4"_esperanto_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 242, 1, UTF8_MB4, UTF8_MB4"_hungarian_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 242, 1, UTF8_MB4, UTF8_MB4"_hungarian_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 243, 1, UTF8_MB4, UTF8_MB4"_sinhala_ci", "", "", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 243, 1, UTF8_MB4, UTF8_MB4"_sinhala_ci", "", "UTF8", 1, 4, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
|
|
||||||
{ 254, 1, UTF8_MB3, UTF8_MB3"_general_cs", "", "", 1, 3, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
{ 254, 1, UTF8_MB3, UTF8_MB3"_general_cs", "", "UTF8", 1, 3, mysql_mbcharlen_utf8, check_mb_utf8_valid},
|
||||||
{ 0, 0, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL}
|
{ 0, 0, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL}
|
||||||
};
|
};
|
||||||
/* }}} */
|
/* }}} */
|
||||||
@@ -835,6 +837,7 @@ struct st_madb_os_charset {
|
|||||||
char *identifier;
|
char *identifier;
|
||||||
char *description;
|
char *description;
|
||||||
char *charset;
|
char *charset;
|
||||||
|
char *iconv_cs;
|
||||||
unsigned char supported;
|
unsigned char supported;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -846,227 +849,228 @@ struct st_madb_os_charset MADB_OS_CHARSET[]=
|
|||||||
{
|
{
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
/* Windows code pages */
|
/* Windows code pages */
|
||||||
{"037", "IBM EBCDIC US-Canada", NULL, MADB_CS_UNSUPPORTED},
|
{"037", "IBM EBCDIC US-Canada", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"437", "OEM United States", "cp850", MADB_CS_APPROX},
|
{"437", "OEM United States", "cp850", NULL, MADB_CS_APPROX},
|
||||||
{"500", "IBM EBCDIC International", NULL, MADB_CS_UNSUPPORTED},
|
{"500", "IBM EBCDIC International", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"708", "Arabic (ASMO 708)", NULL, MADB_CS_UNSUPPORTED},
|
{"708", "Arabic (ASMO 708)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"709", "Arabic (ASMO-449+, BCON V4)", NULL, MADB_CS_UNSUPPORTED},
|
{"709", "Arabic (ASMO-449+, BCON V4)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"710", "Transparent Arabic", NULL, MADB_CS_UNSUPPORTED},
|
{"710", "Transparent Arabic", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"720", "Arabic (DOS)", NULL, MADB_CS_UNSUPPORTED},
|
{"720", "Arabic (DOS)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"737", "Greek (DOS)", NULL, MADB_CS_UNSUPPORTED},
|
{"737", "Greek (DOS)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"775", "Baltic (DOS)", NULL, MADB_CS_UNSUPPORTED},
|
{"775", "Baltic (DOS)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"850", "Western European (DOS)", "cp850", MADB_CS_EXACT},
|
{"850", "Western European (DOS)", "cp850", NULL, MADB_CS_EXACT},
|
||||||
{"852", "Central European (DOS)", "cp852", MADB_CS_EXACT},
|
{"852", "Central European (DOS)", "cp852", NULL, MADB_CS_EXACT},
|
||||||
{"855", "Cyrillic (primarily Russian)", NULL, MADB_CS_UNSUPPORTED},
|
{"855", "Cyrillic (primarily Russian)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"857", "Turkish (DOS)", NULL, MADB_CS_UNSUPPORTED},
|
{"857", "Turkish (DOS)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"858", "OEM Multilingual Latin 1 + Euro symbol", "cp850", MADB_CS_EXACT},
|
{"858", "OEM Multilingual Latin 1 + Euro symbol", "cp850", NULL, MADB_CS_EXACT},
|
||||||
{"860", "Portuguese (DOS)", NULL, MADB_CS_UNSUPPORTED},
|
{"860", "Portuguese (DOS)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"861", "Icelandic (DOS)", NULL, MADB_CS_UNSUPPORTED},
|
{"861", "Icelandic (DOS)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"862", "Hebrew (DOS)", NULL, MADB_CS_UNSUPPORTED},
|
{"862", "Hebrew (DOS)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"863", "French Canadian (DOS)", NULL, MADB_CS_UNSUPPORTED},
|
{"863", "French Canadian (DOS)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"864", "Arabic (864)", NULL, MADB_CS_UNSUPPORTED},
|
{"864", "Arabic (864)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"865", "Nordic (DOS)", NULL, MADB_CS_UNSUPPORTED},
|
{"865", "Nordic (DOS)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"866", "Cyrillic (DOS)", "cp866", MADB_CS_EXACT},
|
{"866", "Cyrillic (DOS)", "cp866", NULL, MADB_CS_EXACT},
|
||||||
{"869", "Greek, Modern (DOS)", "greek", MADB_CS_EXACT},
|
{"869", "Greek, Modern (DOS)", "greek", NULL, MADB_CS_EXACT},
|
||||||
{"870", "IBM EBCDIC Multilingual Latin 2", NULL, MADB_CS_UNSUPPORTED},
|
{"870", "IBM EBCDIC Multilingual Latin 2", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"874", "Thai (Windows)", "tis620", MADB_CS_UNSUPPORTED},
|
{"874", "Thai (Windows)", "tis620", NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"875", "Greek Modern", NULL, MADB_CS_UNSUPPORTED},
|
{"875", "Greek Modern", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"932", "Japanese (Shift-JIS)", "cp932", MADB_CS_EXACT},
|
{"932", "Japanese (Shift-JIS)", "cp932", NULL, MADB_CS_EXACT},
|
||||||
{"936", "Chinese Simplified (GB2312)", "gbk", MADB_CS_EXACT},
|
{"936", "Chinese Simplified (GB2312)", "gbk", NULL, MADB_CS_EXACT},
|
||||||
{"949", "ANSI/OEM Korean (Unified Hangul Code)", "euckr", MADB_CS_EXACT},
|
{"949", "ANSI/OEM Korean (Unified Hangul Code)", "euckr", NULL, MADB_CS_EXACT},
|
||||||
{"950", "Chinese Traditional (Big5)", "big5", MADB_CS_EXACT},
|
{"950", "Chinese Traditional (Big5)", "big5", NULL, MADB_CS_EXACT},
|
||||||
{"1026", "EBCDIC Turkish (Latin 5)", NULL, MADB_CS_UNSUPPORTED},
|
{"1026", "EBCDIC Turkish (Latin 5)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"1047", "EBCDIC Latin 1/Open System", NULL, MADB_CS_UNSUPPORTED},
|
{"1047", "EBCDIC Latin 1/Open System", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"1140", "IBM EBCDIC (US-Canada-Euro)", NULL, MADB_CS_UNSUPPORTED},
|
{"1140", "IBM EBCDIC (US-Canada-Euro)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"1141", "IBM EBCDIC (Germany-Euro)", NULL, MADB_CS_UNSUPPORTED},
|
{"1141", "IBM EBCDIC (Germany-Euro)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"1142", "IBM EBCDIC (Denmark-Norway-Euro)", NULL, MADB_CS_UNSUPPORTED},
|
{"1142", "IBM EBCDIC (Denmark-Norway-Euro)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"1143", "IBM EBCDIC (Finland-Sweden-Euro)", NULL, MADB_CS_UNSUPPORTED},
|
{"1143", "IBM EBCDIC (Finland-Sweden-Euro)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"1144", "IBM EBCDIC (Italy-Euro)", NULL, MADB_CS_UNSUPPORTED},
|
{"1144", "IBM EBCDIC (Italy-Euro)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"1145", "IBM EBCDIC (Spain-Euro)", NULL, MADB_CS_UNSUPPORTED},
|
{"1145", "IBM EBCDIC (Spain-Euro)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"1146", "IBM EBCDIC (UK-Euro)", NULL, MADB_CS_UNSUPPORTED},
|
{"1146", "IBM EBCDIC (UK-Euro)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"1147", "IBM EBCDIC (France-Euro)", NULL, MADB_CS_UNSUPPORTED},
|
{"1147", "IBM EBCDIC (France-Euro)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"1148", "IBM EBCDIC (International-Euro)", NULL, MADB_CS_UNSUPPORTED},
|
{"1148", "IBM EBCDIC (International-Euro)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"1149", "IBM EBCDIC (Icelandic-Euro)", NULL, MADB_CS_UNSUPPORTED},
|
{"1149", "IBM EBCDIC (Icelandic-Euro)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"1200", "UTF-16, little endian byte order", NULL, MADB_CS_UNSUPPORTED},
|
{"1200", "UTF-16, little endian byte order", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"1201", "UTF-16, big endian byte order", "utf16", MADB_CS_UNSUPPORTED},
|
{"1201", "UTF-16, big endian byte order", "utf16", NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"1250", "Central European (Windows)", "cp1250", MADB_CS_EXACT},
|
{"1250", "Central European (Windows)", "cp1250", NULL, MADB_CS_EXACT},
|
||||||
{"1251", "Cyrillic (Windows)", "cp1251", MADB_CS_EXACT},
|
{"1251", "Cyrillic (Windows)", "cp1251", NULL, MADB_CS_EXACT},
|
||||||
{"1252", "Western European (Windows)", "latin1", MADB_CS_EXACT},
|
{"1252", "Western European (Windows)", "latin1", NULL, MADB_CS_EXACT},
|
||||||
{"1253", "Greek (Windows)", "greek", MADB_CS_EXACT},
|
{"1253", "Greek (Windows)", "greek", NULL, MADB_CS_EXACT},
|
||||||
{"1254", "Turkish (Windows)", "latin5", MADB_CS_EXACT},
|
{"1254", "Turkish (Windows)", "latin5", NULL, MADB_CS_EXACT},
|
||||||
{"1255", "Hebrew (Windows)", "hewbrew", MADB_CS_EXACT},
|
{"1255", "Hebrew (Windows)", "hewbrew", NULL, MADB_CS_EXACT},
|
||||||
{"1256", "Arabic (Windows)", "cp1256", MADB_CS_EXACT},
|
{"1256", "Arabic (Windows)", "cp1256", NULL, MADB_CS_EXACT},
|
||||||
{"1257", "Baltic (Windows)","cp1257", MADB_CS_EXACT},
|
{"1257", "Baltic (Windows)","cp1257", NULL, MADB_CS_EXACT},
|
||||||
{"1258", "Vietnamese (Windows)", NULL, MADB_CS_UNSUPPORTED},
|
{"1258", "Vietnamese (Windows)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"1361", "Korean (Johab)", NULL, MADB_CS_UNSUPPORTED},
|
{"1361", "Korean (Johab)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"10000", "Western European (Mac)", "macroman", MADB_CS_EXACT},
|
{"10000", "Western European (Mac)", "macroman", NULL, MADB_CS_EXACT},
|
||||||
{"10001", "Japanese (Mac)", "sjis", MADB_CS_EXACT},
|
{"10001", "Japanese (Mac)", "sjis", NULL, MADB_CS_EXACT},
|
||||||
{"10002", "Chinese Traditional (Mac)", "big5", MADB_CS_EXACT},
|
{"10002", "Chinese Traditional (Mac)", "big5", NULL, MADB_CS_EXACT},
|
||||||
{"10003", "Korean (Mac)", NULL, MADB_CS_UNSUPPORTED},
|
{"10003", "Korean (Mac)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"10004", "Arabic (Mac)", NULL, MADB_CS_UNSUPPORTED},
|
{"10004", "Arabic (Mac)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"10005", "Hebrew (Mac)", NULL, MADB_CS_UNSUPPORTED},
|
{"10005", "Hebrew (Mac)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"10006", "Greek (Mac)", NULL, MADB_CS_UNSUPPORTED},
|
{"10006", "Greek (Mac)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"10007", "Cyrillic (Mac)", NULL, MADB_CS_UNSUPPORTED},
|
{"10007", "Cyrillic (Mac)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"10008", "Chinese Simplified (Mac)", "gb2312", MADB_CS_EXACT},
|
{"10008", "Chinese Simplified (Mac)", "gb2312", NULL, MADB_CS_EXACT},
|
||||||
{"10010", "Romanian (Mac)", NULL, MADB_CS_UNSUPPORTED},
|
{"10010", "Romanian (Mac)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"10017", "Ukrainian (Mac)", NULL, MADB_CS_UNSUPPORTED},
|
{"10017", "Ukrainian (Mac)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"10021", "Thai (Mac)", "tis620", MADB_CS_EXACT},
|
{"10021", "Thai (Mac)", "tis620", NULL, MADB_CS_EXACT},
|
||||||
{"10029", "Central European (Mac)", "macce", MADB_CS_EXACT},
|
{"10029", "Central European (Mac)", "macce", NULL, MADB_CS_EXACT},
|
||||||
{"10079", "Icelandic (Mac)", NULL, MADB_CS_UNSUPPORTED},
|
{"10079", "Icelandic (Mac)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"10081", "Turkish (Mac)", NULL, MADB_CS_UNSUPPORTED},
|
{"10081", "Turkish (Mac)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"10082", "Croatian (Mac)", NULL, MADB_CS_UNSUPPORTED},
|
{"10082", "Croatian (Mac)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"12000", "Unicode UTF-32, little endian byte order", NULL, MADB_CS_UNSUPPORTED},
|
{"12000", "Unicode UTF-32, little endian byte order", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"12001", "Unicode UTF-32, big endian byte order", "utf32", MADB_CS_UNSUPPORTED},
|
{"12001", "Unicode UTF-32, big endian byte order", "utf32", NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20000", "Chinese Traditional (CNS)", NULL, MADB_CS_UNSUPPORTED},
|
{"20000", "Chinese Traditional (CNS)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20001", "TCA Taiwan", NULL, MADB_CS_UNSUPPORTED},
|
{"20001", "TCA Taiwan", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20002", "Chinese Traditional (Eten)", NULL, MADB_CS_UNSUPPORTED},
|
{"20002", "Chinese Traditional (Eten)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20003", "IBM5550 Taiwan", NULL, MADB_CS_UNSUPPORTED},
|
{"20003", "IBM5550 Taiwan", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20004", "TeleText Taiwan", NULL, MADB_CS_UNSUPPORTED},
|
{"20004", "TeleText Taiwan", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20005", "Wang Taiwan", NULL, MADB_CS_UNSUPPORTED},
|
{"20005", "Wang Taiwan", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20105", "Western European (IA5)", NULL, MADB_CS_UNSUPPORTED},
|
{"20105", "Western European (IA5)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20106", "IA5 German (7-bit)", NULL, MADB_CS_UNSUPPORTED},
|
{"20106", "IA5 German (7-bit)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20107", "Swedish (7-bit)", NULL, MADB_CS_UNSUPPORTED},
|
{"20107", "Swedish (7-bit)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20108", "Norwegian (7-bit)", NULL, MADB_CS_UNSUPPORTED},
|
{"20108", "Norwegian (7-bit)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20127", "US-ASCII (7-bit)", NULL, MADB_CS_UNSUPPORTED},
|
{"20127", "US-ASCII (7-bit)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20261", "T.61", NULL, MADB_CS_UNSUPPORTED},
|
{"20261", "T.61", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20269", "Non-Spacing Accent", NULL, MADB_CS_UNSUPPORTED},
|
{"20269", "Non-Spacing Accent", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20273", "EBCDIC Germany", NULL, MADB_CS_UNSUPPORTED},
|
{"20273", "EBCDIC Germany", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20277", "EBCDIC Denmark-Norway", NULL, MADB_CS_UNSUPPORTED},
|
{"20277", "EBCDIC Denmark-Norway", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20278", "EBCDIC Finland-Sweden", NULL, MADB_CS_UNSUPPORTED},
|
{"20278", "EBCDIC Finland-Sweden", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20280", "EBCDIC Italy", NULL, MADB_CS_UNSUPPORTED},
|
{"20280", "EBCDIC Italy", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20284", "EBCDIC Latin America-Spain", NULL, MADB_CS_UNSUPPORTED},
|
{"20284", "EBCDIC Latin America-Spain", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20285", "EBCDIC United Kingdom", NULL, MADB_CS_UNSUPPORTED},
|
{"20285", "EBCDIC United Kingdom", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20290", "EBCDIC Japanese Katakana Extended", NULL, MADB_CS_UNSUPPORTED},
|
{"20290", "EBCDIC Japanese Katakana Extended", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20297", "EBCDIC France", NULL, MADB_CS_UNSUPPORTED},
|
{"20297", "EBCDIC France", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20420", "EBCDIC Arabic", NULL, MADB_CS_UNSUPPORTED},
|
{"20420", "EBCDIC Arabic", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20423", "EBCDIC Greek", NULL, MADB_CS_UNSUPPORTED},
|
{"20423", "EBCDIC Greek", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20424", "EBCDIC Hebrew", NULL, MADB_CS_UNSUPPORTED},
|
{"20424", "EBCDIC Hebrew", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20833", "EBCDIC Korean Extended", NULL, MADB_CS_UNSUPPORTED},
|
{"20833", "EBCDIC Korean Extended", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20838", "EBCDIC Thai", NULL, MADB_CS_UNSUPPORTED},
|
{"20838", "EBCDIC Thai", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20866", "Cyrillic (KOI8-R)", "koi8r", MADB_CS_EXACT},
|
{"20866", "Cyrillic (KOI8-R)", "koi8r", NULL, MADB_CS_EXACT},
|
||||||
{"20871", "EBCDIC Icelandic", NULL, MADB_CS_UNSUPPORTED},
|
{"20871", "EBCDIC Icelandic", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20880", "EBCDIC Cyrillic Russian", NULL, MADB_CS_UNSUPPORTED},
|
{"20880", "EBCDIC Cyrillic Russian", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20905", "EBCDIC Turkish", NULL, MADB_CS_UNSUPPORTED},
|
{"20905", "EBCDIC Turkish", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20924", "EBCDIC Latin 1/Open System (1047 + Euro symbol)", NULL, MADB_CS_UNSUPPORTED},
|
{"20924", "EBCDIC Latin 1/Open System (1047 + Euro symbol)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"20932", "Japanese (JIS 0208-1990 and 0121-1990)", "ujis", MADB_CS_EXACT},
|
{"20932", "Japanese (JIS 0208-1990 and 0121-1990)", "ujis", NULL, MADB_CS_EXACT},
|
||||||
{"20936", "Chinese Simplified (GB2312-80)", "gb2312", MADB_CS_APPROX},
|
{"20936", "Chinese Simplified (GB2312-80)", "gb2312", NULL, MADB_CS_APPROX},
|
||||||
{"20949", "Korean Wansung", "euckr", MADB_CS_APPROX},
|
{"20949", "Korean Wansung", "euckr", NULL, MADB_CS_APPROX},
|
||||||
{"21025", "EBCDIC Cyrillic Serbian-Bulgarian", NULL, MADB_CS_UNSUPPORTED},
|
{"21025", "EBCDIC Cyrillic Serbian-Bulgarian", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"21866", "Cyrillic (KOI8-U)", "koi8u", MADB_CS_EXACT},
|
{"21866", "Cyrillic (KOI8-U)", "koi8u", NULL, MADB_CS_EXACT},
|
||||||
{"28591", "Western European (ISO)", "latin1", MADB_CS_APPROX},
|
{"28591", "Western European (ISO)", "latin1", NULL, MADB_CS_APPROX},
|
||||||
{"28592", "Central European (ISO)", "latin2", MADB_CS_EXACT},
|
{"28592", "Central European (ISO)", "latin2", NULL, MADB_CS_EXACT},
|
||||||
{"28593", "Latin 3", NULL, MADB_CS_UNSUPPORTED},
|
{"28593", "Latin 3", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"28594", "Baltic", NULL, MADB_CS_UNSUPPORTED},
|
{"28594", "Baltic", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"28595", "ISO 8859-5 Cyrillic", NULL, MADB_CS_UNSUPPORTED},
|
{"28595", "ISO 8859-5 Cyrillic", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"28596", "ISO 8859-6 Arabic", NULL, MADB_CS_UNSUPPORTED},
|
{"28596", "ISO 8859-6 Arabic", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"28597", "ISO 8859-7 Greek", "greek", MADB_CS_EXACT},
|
{"28597", "ISO 8859-7 Greek", "greek", NULL, MADB_CS_EXACT},
|
||||||
{"28598", "Hebrew (ISO-Visual)", "hebrew", MADB_CS_EXACT},
|
{"28598", "Hebrew (ISO-Visual)", "hebrew", NULL, MADB_CS_EXACT},
|
||||||
{"28599", "ISO 8859-9 Turkish", "latin5", MADB_CS_EXACT},
|
{"28599", "ISO 8859-9 Turkish", "latin5", NULL, MADB_CS_EXACT},
|
||||||
{"28603", "ISO 8859-13 Estonian", "latin7", MADB_CS_EXACT},
|
{"28603", "ISO 8859-13 Estonian", "latin7", NULL, MADB_CS_EXACT},
|
||||||
{"28605", "8859-15 Latin 9", NULL, MADB_CS_UNSUPPORTED},
|
{"28605", "8859-15 Latin 9", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"29001", "Europa 3", NULL, MADB_CS_UNSUPPORTED},
|
{"29001", "Europa 3", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"38598", "ISO 8859-8 Hebrew; Hebrew (ISO-Logical)", "hebrew", MADB_CS_EXACT},
|
{"38598", "ISO 8859-8 Hebrew; Hebrew (ISO-Logical)", "hebrew", NULL, MADB_CS_EXACT},
|
||||||
{"50220", "ISO 2022 Japanese with no halfwidth Katakana", NULL, MADB_CS_UNSUPPORTED},
|
{"50220", "ISO 2022 Japanese with no halfwidth Katakana", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"50221", "ISO 2022 Japanese with halfwidth Katakana", NULL, MADB_CS_UNSUPPORTED},
|
{"50221", "ISO 2022 Japanese with halfwidth Katakana", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"50222", "ISO 2022 Japanese JIS X 0201-1989", NULL, MADB_CS_UNSUPPORTED},
|
{"50222", "ISO 2022 Japanese JIS X 0201-1989", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"50225", "ISO 2022 Korean", NULL, MADB_CS_UNSUPPORTED},
|
{"50225", "ISO 2022 Korean", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"50227", "ISO 2022 Simplified Chinese", NULL, MADB_CS_UNSUPPORTED},
|
{"50227", "ISO 2022 Simplified Chinese", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"50229", "ISO 2022 Traditional Chinese", NULL, MADB_CS_UNSUPPORTED},
|
{"50229", "ISO 2022 Traditional Chinese", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"50930", "EBCDIC Japanese (Katakana) Extended", NULL, MADB_CS_UNSUPPORTED},
|
{"50930", "EBCDIC Japanese (Katakana) Extended", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"50931", "EBCDIC US-Canada and Japanese", NULL, MADB_CS_UNSUPPORTED},
|
{"50931", "EBCDIC US-Canada and Japanese", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"50933", "EBCDIC Korean Extended and Korean", NULL, MADB_CS_UNSUPPORTED},
|
{"50933", "EBCDIC Korean Extended and Korean", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"50935", "EBCDIC Simplified Chinese Extended and Simplified Chinese", NULL, MADB_CS_UNSUPPORTED},
|
{"50935", "EBCDIC Simplified Chinese Extended and Simplified Chinese", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"50936", "EBCDIC Simplified Chinese", NULL, MADB_CS_UNSUPPORTED},
|
{"50936", "EBCDIC Simplified Chinese", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"50937", "EBCDIC US-Canada and Traditional Chinese", NULL, MADB_CS_UNSUPPORTED},
|
{"50937", "EBCDIC US-Canada and Traditional Chinese", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"50939", "EBCDIC Japanese (Latin) Extended and Japanese", NULL, MADB_CS_UNSUPPORTED},
|
{"50939", "EBCDIC Japanese (Latin) Extended and Japanese", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"51932", "EUC Japanese", "ujis", MADB_CS_EXACT},
|
{"51932", "EUC Japanese", "ujis", NULL, MADB_CS_EXACT},
|
||||||
{"51936", "EUC Simplified Chinese; Chinese Simplified (EUC)", "gb2312", MADB_CS_EXACT},
|
{"51936", "EUC Simplified Chinese; Chinese Simplified (EUC)", "gb2312", NULL, MADB_CS_EXACT},
|
||||||
{"51949", "EUC Korean", "euckr", MADB_CS_EXACT},
|
{"51949", "EUC Korean", "euckr", NULL, MADB_CS_EXACT},
|
||||||
{"51950", "EUC Traditional Chinese", "big5", MADB_CS_EXACT},
|
{"51950", "EUC Traditional Chinese", "big5", NULL, MADB_CS_EXACT},
|
||||||
{"52936", "Chinese Simplified (HZ)", NULL, MADB_CS_UNSUPPORTED},
|
{"52936", "Chinese Simplified (HZ)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"54936", "Chinese Simplified (GB18030)", NULL, MADB_CS_UNSUPPORTED},
|
{"54936", "Chinese Simplified (GB18030)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"57002", "ISCII Devanagari", NULL, MADB_CS_UNSUPPORTED},
|
{"57002", "ISCII Devanagari", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"57003", "ISCII Bengali", NULL, MADB_CS_UNSUPPORTED},
|
{"57003", "ISCII Bengali", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"57004", "ISCII Tamil", NULL, MADB_CS_UNSUPPORTED},
|
{"57004", "ISCII Tamil", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"57005", "ISCII Telugu", NULL, MADB_CS_UNSUPPORTED},
|
{"57005", "ISCII Telugu", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"57006", "ISCII Assamese", NULL, MADB_CS_UNSUPPORTED},
|
{"57006", "ISCII Assamese", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"57007", "ISCII Oriya", NULL, MADB_CS_UNSUPPORTED},
|
{"57007", "ISCII Oriya", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"57008", "ISCII Kannada", NULL, MADB_CS_UNSUPPORTED},
|
{"57008", "ISCII Kannada", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"57009", "ISCII Malayalam", NULL, MADB_CS_UNSUPPORTED},
|
{"57009", "ISCII Malayalam", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"57010", "ISCII Gujarati", NULL, MADB_CS_UNSUPPORTED},
|
{"57010", "ISCII Gujarati", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"57011", "ISCII Punjabi", NULL, MADB_CS_UNSUPPORTED},
|
{"57011", "ISCII Punjabi", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"65000", "utf-7 Unicode (UTF-7)", NULL, MADB_CS_UNSUPPORTED},
|
{"65000", "utf-7 Unicode (UTF-7)", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"65001", "utf-8 Unicode (UTF-8)", "utf8", MADB_CS_EXACT},
|
{"65001", "utf-8 Unicode (UTF-8)", "utf8", NULL, MADB_CS_EXACT},
|
||||||
/* non Windows */
|
/* non Windows */
|
||||||
#else
|
#else
|
||||||
{"ASCII", "US-ASCII", "ascii", MADB_CS_APPROX},
|
/* iconv encodings */
|
||||||
{"US-ASCII", "US-ASCII", "ascii", MADB_CS_APPROX},
|
{"ASCII", "US-ASCII", "ascii", "ASCII", MADB_CS_APPROX},
|
||||||
{"Big5", "Chinese for Taiwan Multi-byte set", "big5", MADB_CS_EXACT},
|
{"US-ASCII", "US-ASCII", "ascii", "ASCII", MADB_CS_APPROX},
|
||||||
{"CP866", "IBM 866", "cp866", MADB_CS_EXACT},
|
{"Big5", "Chinese for Taiwan Multi-byte set", "big5", "BIG5", MADB_CS_EXACT},
|
||||||
{"IBM-1252", "Catalan Spain", "cp1252", MADB_CS_EXACT},
|
{"CP866", "IBM 866", "cp866", "CP866", MADB_CS_EXACT},
|
||||||
{"ISCII-DEV", "Hindi", NULL, MADB_CS_UNSUPPORTED},
|
{"IBM-1252", "Catalan Spain", "cp1252", "CP1252", MADB_CS_EXACT},
|
||||||
{"ISO-8859-1", "ISO-8859-1", "latin1", MADB_CS_APPROX},
|
{"ISCII-DEV", "Hindi", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"ISO8859-1", "ISO-8859-1", "latin1", MADB_CS_APPROX},
|
{"ISO-8859-1", "ISO-8859-1", "latin1", "ISO_8859-1", MADB_CS_APPROX},
|
||||||
{"ISO_8859-1", "ISO-8859-1", "latin1", MADB_CS_APPROX},
|
{"ISO8859-1", "ISO-8859-1", "latin1", "ISO_8859-1", MADB_CS_APPROX},
|
||||||
{"ISO88591", "ISO-8859-1", "latin1", MADB_CS_APPROX},
|
{"ISO_8859-1", "ISO-8859-1", "latin1", "ISO_8859-1", MADB_CS_APPROX},
|
||||||
{"ISO-8859-13", "ISO-8859-13", "latin7", MADB_CS_EXACT},
|
{"ISO88591", "ISO-8859-1", "latin1", "ISO_8859-1", MADB_CS_APPROX},
|
||||||
{"ISO8859-13", "ISO-8859-13", "latin7", MADB_CS_EXACT},
|
{"ISO-8859-13", "ISO-8859-13", "latin7", "ISO_8859-13", MADB_CS_EXACT},
|
||||||
{"ISO_8859-13", "ISO-8859-13", "latin7", MADB_CS_EXACT},
|
{"ISO8859-13", "ISO-8859-13", "latin7", "ISO_8859-13", MADB_CS_EXACT},
|
||||||
{"ISO885913", "ISO-8859-13", "latin7", MADB_CS_EXACT},
|
{"ISO_8859-13", "ISO-8859-13", "latin7", "ISO_8859-13", MADB_CS_EXACT},
|
||||||
{"ISO-8859-15", "ISO-8859-15", "latin9", MADB_CS_UNSUPPORTED},
|
{"ISO885913", "ISO-8859-13", "latin7", "ISO_8859-13", MADB_CS_EXACT},
|
||||||
{"ISO8859-15", "ISO-8859-15", "latin9", MADB_CS_UNSUPPORTED},
|
{"ISO-8859-15", "ISO-8859-15", "latin9", "ISO_8859-15", MADB_CS_UNSUPPORTED},
|
||||||
{"ISO_8859-15", "ISO-8859-15", "latin9", MADB_CS_UNSUPPORTED},
|
{"ISO8859-15", "ISO-8859-15", "latin9", "ISO_8859-15", MADB_CS_UNSUPPORTED},
|
||||||
{"ISO885915", "ISO-8859-15", "latin9", MADB_CS_UNSUPPORTED},
|
{"ISO_8859-15", "ISO-8859-15", "latin9", "ISO_8859-15", MADB_CS_UNSUPPORTED},
|
||||||
{"ISO-8859-2", "ISO-8859-2", "latin2", MADB_CS_EXACT},
|
{"ISO885915", "ISO-8859-15", "latin9", "ISO_8859-15", MADB_CS_UNSUPPORTED},
|
||||||
{"ISO8859-2", "ISO-8859-2", "latin2", MADB_CS_EXACT},
|
{"ISO-8859-2", "ISO-8859-2", "latin2", "ISO_8859-2", MADB_CS_EXACT},
|
||||||
{"ISO_8859-2", "ISO-8859-2", "latin2", MADB_CS_EXACT},
|
{"ISO8859-2", "ISO-8859-2", "latin2", "ISO_8859-2", MADB_CS_EXACT},
|
||||||
{"ISO88592", "ISO-8859-2", "latin2", MADB_CS_EXACT},
|
{"ISO_8859-2", "ISO-8859-2", "latin2", "ISO_8859-2", MADB_CS_EXACT},
|
||||||
{"ISO-8859-7", "ISO-8859-7", "greek", MADB_CS_EXACT},
|
{"ISO88592", "ISO-8859-2", "latin2", "ISO_8859-2", MADB_CS_EXACT},
|
||||||
{"ISO8859-7", "ISO-8859-7", "greek", MADB_CS_EXACT},
|
{"ISO-8859-7", "ISO-8859-7", "greek", "ISO_8859-7", MADB_CS_EXACT},
|
||||||
{"ISO_8859-7", "ISO-8859-7", "greek", MADB_CS_EXACT},
|
{"ISO8859-7", "ISO-8859-7", "greek", "ISO_8859-7", MADB_CS_EXACT},
|
||||||
{"ISO88597", "ISO-8859-7", "greek", MADB_CS_EXACT},
|
{"ISO_8859-7", "ISO-8859-7", "greek", "ISO_8859-7", MADB_CS_EXACT},
|
||||||
{"ISO-8859-8", "ISO-8859-8", "hebrew", MADB_CS_EXACT},
|
{"ISO88597", "ISO-8859-7", "greek", "ISO_8859-7", MADB_CS_EXACT},
|
||||||
{"ISO8859-8", "ISO-8859-8", "hebrew", MADB_CS_EXACT},
|
{"ISO-8859-8", "ISO-8859-8", "hebrew", "ISO_8859-8", MADB_CS_EXACT},
|
||||||
{"ISO_8859-8", "ISO-8859-8", "hebrew", MADB_CS_EXACT},
|
{"ISO8859-8", "ISO-8859-8", "hebrew", "ISO_8859-8", MADB_CS_EXACT},
|
||||||
{"ISO88598", "ISO-8859-8", "hebrew", MADB_CS_EXACT},
|
{"ISO_8859-8", "ISO-8859-8", "hebrew", "ISO_8859-8", MADB_CS_EXACT},
|
||||||
{"ISO-8859-9", "ISO-8859-9", "latin5", MADB_CS_EXACT},
|
{"ISO88598", "ISO-8859-8", "hebrew", "ISO_8859-8", MADB_CS_EXACT},
|
||||||
{"ISO8859-9", "ISO-8859-9", "latin5", MADB_CS_EXACT},
|
{"ISO-8859-9", "ISO-8859-9", "latin5", "ISO_8859-9", MADB_CS_EXACT},
|
||||||
{"ISO_8859-9", "ISO-8859-9", "latin5", MADB_CS_EXACT},
|
{"ISO8859-9", "ISO-8859-9", "latin5", "ISO_8859-9", MADB_CS_EXACT},
|
||||||
{"ISO88599", "ISO-8859-9", "latin5", MADB_CS_EXACT},
|
{"ISO_8859-9", "ISO-8859-9", "latin5", "ISO_8859-9", MADB_CS_EXACT},
|
||||||
{"ISO-8859-4", "ISO-8859-4", NULL, MADB_CS_UNSUPPORTED},
|
{"ISO88599", "ISO-8859-9", "latin5", "ISO_8859-9", MADB_CS_EXACT},
|
||||||
{"ISO8859-4", "ISO-8859-4", NULL, MADB_CS_UNSUPPORTED},
|
{"ISO-8859-4", "ISO-8859-4", NULL, "ISO_8859-4", MADB_CS_UNSUPPORTED},
|
||||||
{"ISO_8859-4", "ISO-8859-4", NULL, MADB_CS_UNSUPPORTED},
|
{"ISO8859-4", "ISO-8859-4", NULL, "ISO_8859-4", MADB_CS_UNSUPPORTED},
|
||||||
{"ISO88594", "ISO-8859-4", NULL, MADB_CS_UNSUPPORTED},
|
{"ISO_8859-4", "ISO-8859-4", NULL, "ISO_8859-4", MADB_CS_UNSUPPORTED},
|
||||||
{"ISO-8859-5", "ISO-8859-5", NULL, MADB_CS_UNSUPPORTED},
|
{"ISO88594", "ISO-8859-4", NULL, "ISO_8859-4", MADB_CS_UNSUPPORTED},
|
||||||
{"ISO8859-5", "ISO-8859-5", NULL, MADB_CS_UNSUPPORTED},
|
{"ISO-8859-5", "ISO-8859-5", NULL, "ISO_8859-5", MADB_CS_UNSUPPORTED},
|
||||||
{"ISO_8859-5", "ISO-8859-5", NULL, MADB_CS_UNSUPPORTED},
|
{"ISO8859-5", "ISO-8859-5", NULL, "ISO_8859-5", MADB_CS_UNSUPPORTED},
|
||||||
{"ISO88595", "ISO-8859-5", NULL, MADB_CS_UNSUPPORTED},
|
{"ISO_8859-5", "ISO-8859-5", NULL, "ISO_8859-5", MADB_CS_UNSUPPORTED},
|
||||||
{"KOI8-R", "KOI8-R", "koi8r", MADB_CS_EXACT},
|
{"ISO88595", "ISO-8859-5", NULL, "ISO_8859-5", MADB_CS_UNSUPPORTED},
|
||||||
{"koi8r", "KOI8-R", "koi8r", MADB_CS_EXACT},
|
{"KOI8-R", "KOI8-R", "koi8r", "KOI8R", MADB_CS_EXACT},
|
||||||
{"KOI8-U", "KOI8-U", "koi8u", MADB_CS_EXACT},
|
{"koi8r", "KOI8-R", "koi8r", "KOI8R", MADB_CS_EXACT},
|
||||||
{"koi8u", "KOI8-U", "koi8u", MADB_CS_EXACT},
|
{"KOI8-U", "KOI8-U", "koi8u", "KOI8U", MADB_CS_EXACT},
|
||||||
{"koi8t", "KOI8-T", NULL, MADB_CS_UNSUPPORTED},
|
{"koi8u", "KOI8-U", "koi8u", "KOI8U", MADB_CS_EXACT},
|
||||||
{"KOI8-T", "KOI8-T", NULL, MADB_CS_UNSUPPORTED},
|
{"koi8t", "KOI8-T", NULL, "KOI8-T", MADB_CS_UNSUPPORTED},
|
||||||
{"SJIS", "SHIFT_JIS", "sjis", MADB_CS_EXACT},
|
{"KOI8-T", "KOI8-T", NULL, "KOI8-T", MADB_CS_UNSUPPORTED},
|
||||||
{"Shift-JIS", "SHIFT_JIS", "sjis", MADB_CS_EXACT},
|
{"SJIS", "SHIFT_JIS", "sjis", "SJIS", MADB_CS_EXACT},
|
||||||
{"ansi1251", "Cyrillic", "cp1251", MADB_CS_EXACT},
|
{"Shift-JIS", "SHIFT_JIS", "sjis", "SJIS", MADB_CS_EXACT},
|
||||||
{"cp1251", "Cyrillic", "cp1251", MADB_CS_EXACT},
|
{"ansi1251", "Cyrillic", "cp1251", "CP1251", MADB_CS_EXACT},
|
||||||
{"armscii8", "Armenian", "armscii8", MADB_CS_EXACT},
|
{"cp1251", "Cyrillic", "cp1251", "CP1251", MADB_CS_EXACT},
|
||||||
{"armscii-8", "Armenian", "armscii8", MADB_CS_EXACT},
|
{"armscii8", "Armenian", "armscii8", "ASMSCII-8", MADB_CS_EXACT},
|
||||||
{"big5hkscs", "Big5-HKSCS", NULL, MADB_CS_UNSUPPORTED},
|
{"armscii-8", "Armenian", "armscii8", "ASMSCII-8", MADB_CS_EXACT},
|
||||||
{"cp1255", "Hebrew", "cp1255", MADB_CS_EXACT},
|
{"big5hkscs", "Big5-HKSCS", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"eucCN", "GB-2312", "gb2312", MADB_CS_EXACT},
|
{"cp1255", "Hebrew", "cp1255", "CP1255", MADB_CS_EXACT},
|
||||||
{"eucJP", "UJIS", "ujis", MADB_CS_EXACT},
|
{"eucCN", "GB-2312", "gb2312", "GB2312", MADB_CS_EXACT},
|
||||||
{"eucKR", "EUC-KR", "euckr", MADB_CS_EXACT},
|
{"eucJP", "UJIS", "ujis", "UJIS", MADB_CS_EXACT},
|
||||||
{"euctw", "EUC-TW", NULL, MADB_CS_UNSUPPORTED},
|
{"eucKR", "EUC-KR", "euckr", "EUCKR", MADB_CS_EXACT},
|
||||||
{"gb18030", "GB 18030-2000", "gb18030", MADB_CS_UNSUPPORTED},
|
{"euctw", "EUC-TW", NULL, NULL, MADB_CS_UNSUPPORTED},
|
||||||
{"gb2312", "GB2312", "gb2312", MADB_CS_EXACT},
|
{"gb18030", "GB 18030-2000", "gb18030", "GB18030", MADB_CS_UNSUPPORTED},
|
||||||
{"gbk", "GBK", "gbk", MADB_CS_EXACT},
|
{"gb2312", "GB2312", "gb2312", "GB2312", MADB_CS_EXACT},
|
||||||
{"georgianps", "Georgian", "geostd8", MADB_CS_EXACT},
|
{"gbk", "GBK", "gbk", "GBK", MADB_CS_EXACT},
|
||||||
{"utf8", "UTF8", "utf8", MADB_CS_EXACT},
|
{"georgianps", "Georgian", "geostd8", "GEORGIAN-PS", MADB_CS_EXACT},
|
||||||
{"utf-8", "UTF8", "utf8", MADB_CS_EXACT},
|
{"utf8", "UTF8", "utf8", "UTF8", MADB_CS_EXACT},
|
||||||
|
{"utf-8", "UTF8", "utf8", "UTF8", MADB_CS_EXACT},
|
||||||
#endif
|
#endif
|
||||||
{NULL, NULL, NULL, 0}
|
{NULL, NULL, NULL, NULL, 0}
|
||||||
};
|
};
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
@@ -1113,3 +1117,29 @@ int madb_get_windows_cp(const char *charset)
|
|||||||
#endif
|
#endif
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
|
size_t convert_string(const char *from, size_t *from_len, CHARSET_INFO *from_cs,
|
||||||
|
char *to, size_t *to_len, CHARSET_INFO *to_cs)
|
||||||
|
{
|
||||||
|
iconv_t conv= 0;
|
||||||
|
size_t rc= -1;
|
||||||
|
size_t save_len= *to_len;
|
||||||
|
char to_encoding[128];
|
||||||
|
/* check if conversion is supported */
|
||||||
|
if (!from_cs || !from_cs->encoding || !from_cs->encoding[0] ||
|
||||||
|
!to_cs || !to_cs->encoding || !to_cs->encoding[0])
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
snprintf(to_encoding, 128, "%s//TRANSLIT", to_cs->encoding);
|
||||||
|
|
||||||
|
if ((conv= iconv_open(to_encoding, from_cs->encoding)) == (iconv_t)-1)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
if ((rc= iconv(conv, (char **)&from, from_len, &to, to_len)) == -1)
|
||||||
|
goto error;
|
||||||
|
rc= save_len - *to_len;
|
||||||
|
error:
|
||||||
|
if (conv != (iconv_t)-1)
|
||||||
|
iconv_close(conv);
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -19,9 +19,10 @@ ENABLE_TESTING()
|
|||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
||||||
${CMAKE_BINARY_DIR}/include
|
${CMAKE_BINARY_DIR}/include
|
||||||
${CMAKE_SOURCE_DIR}/unittest/mytap)
|
${CMAKE_SOURCE_DIR}/unittest/mytap)
|
||||||
|
ADD_DEFINITIONS(-DLIBMARIADB)
|
||||||
|
|
||||||
SET(API_TESTS "basic-t" "fetch" "charset" "logs" "cursor" "errors" "view" "ps" "ps_bugs"
|
SET(API_TESTS "basic-t" "fetch" "charset" "logs" "cursor" "errors" "view" "ps" "ps_bugs"
|
||||||
"sp" "result" "connection" "misc" "ssl" "ps_new" "sqlite3" "thread")
|
"sp" "result" "connection" "misc" "ssl" "ps_new" "sqlite3" "thread" "cs_conv")
|
||||||
|
|
||||||
FOREACH(API_TEST ${API_TESTS})
|
FOREACH(API_TEST ${API_TESTS})
|
||||||
ADD_EXECUTABLE(${API_TEST} ${API_TEST}.c)
|
ADD_EXECUTABLE(${API_TEST} ${API_TEST}.c)
|
||||||
|
128
unittest/libmariadb/cs_conv.c
Normal file
128
unittest/libmariadb/cs_conv.c
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
/*
|
||||||
|
Copyright (c) 2013 Monty Program AB. All rights reserved.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published
|
||||||
|
by the Free Software Foundation; version 2 of the License.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "my_test.h"
|
||||||
|
#include <locale.h>
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
char *cs_from;
|
||||||
|
char *cs_to;
|
||||||
|
char *hex_source;
|
||||||
|
char *source;
|
||||||
|
size_t len;
|
||||||
|
} CS_CONV;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static int test_cs_conversion(MYSQL *mysql)
|
||||||
|
{
|
||||||
|
CS_CONV cs_conv[]= { {"latin1", "utf8", NULL, "Günter André",0},
|
||||||
|
{"koi8r", "utf8", NULL, "×ÁÓÑ", 0},
|
||||||
|
{"koi8r", "utf8", NULL, "÷áóñ", 0},
|
||||||
|
{"koi8r", "utf8", NULL, "É", 0},
|
||||||
|
{"koi8r", "utf8", NULL, "Ê", 0},
|
||||||
|
{"ucs2", "utf8", "0x0041040B", "\x00\x41\x04\x0B", 4},
|
||||||
|
{"ucs2", "utf8", "0x039C03C903B4", "\x03\x9C\x03\xC9\x03\xB4",6},
|
||||||
|
{"ucs2", "utf8", "0x039C03C903B403B11F770308", "\x03\x9C\x03\xC9\x03\xB4\x03\xB1\x1F\x77\x03\x08", 0},
|
||||||
|
{"ucs2", "utf8", "0x0030", "\x00\x30", 2},
|
||||||
|
{"ucs2", "utf8", NULL, "£Ã£±", 0},
|
||||||
|
{"ucs2", "utf8", NULL, "£Ã£±", 0},
|
||||||
|
{"ucs2", "utf8", NULL, "£Ã£±", 0},
|
||||||
|
{"ucs2", "sjis", NULL, "£Ã£±", 0},
|
||||||
|
{"ucs2", "ujis", NULL, "£Ã£±", 0},
|
||||||
|
{"eucjpms", "ujis", NULL, "ï¼£ï¼", 0},
|
||||||
|
{"latin1", "sjis", NULL, "ï¼£ï¼", 0},
|
||||||
|
{"utf8", "latin1", NULL, "ï¼£ï¼", 0},
|
||||||
|
/* C8 pane not supported
|
||||||
|
{"big5", "utf8", "0xC84041", "\xC8\x40\x41", 0}, */
|
||||||
|
{"latin1", "utf8", "0xFF8F", "\xFF\x8F", 0},
|
||||||
|
{NULL, NULL, NULL}
|
||||||
|
};
|
||||||
|
int i= 0, rc;
|
||||||
|
|
||||||
|
setlocale(LC_ALL, "en_GB");
|
||||||
|
|
||||||
|
while (cs_conv[i].cs_from)
|
||||||
|
{
|
||||||
|
char query[1024];
|
||||||
|
size_t from_len, to_len= 1024;
|
||||||
|
CHARSET_INFO *cs_from, *cs_to;
|
||||||
|
MYSQL_RES *res;
|
||||||
|
MYSQL_ROW row;
|
||||||
|
char str_converted[1024];
|
||||||
|
char str_expected[1024];
|
||||||
|
memset(str_converted, 0, 1024);
|
||||||
|
memset(str_expected, 0, 1024);
|
||||||
|
|
||||||
|
FAIL_IF(!(cs_from= get_charset_by_name(cs_conv[i].cs_from)), "invalid character set");
|
||||||
|
FAIL_IF(!(cs_to= get_charset_by_name(cs_conv[i].cs_to)), "invalid character set");
|
||||||
|
|
||||||
|
|
||||||
|
snprintf(query, 1024, "SET NAMES %s", cs_conv[i].cs_to);
|
||||||
|
rc= mysql_query(mysql, query);
|
||||||
|
check_mysql_rc(rc, mysql);
|
||||||
|
|
||||||
|
snprintf(query, 1024, "SELECT CONVERT(_%s %s%s%s using %s)",
|
||||||
|
cs_conv[i].cs_from,
|
||||||
|
cs_conv[i].hex_source ? "" : "\"",
|
||||||
|
cs_conv[i].hex_source ? cs_conv[i].hex_source : cs_conv[i].source,
|
||||||
|
cs_conv[i].hex_source ? "" : "\"",
|
||||||
|
cs_conv[i].cs_to);
|
||||||
|
rc= mysql_query(mysql, query);
|
||||||
|
check_mysql_rc(rc, mysql);
|
||||||
|
|
||||||
|
res= mysql_store_result(mysql);
|
||||||
|
FAIL_IF(!res, "expected result set");
|
||||||
|
|
||||||
|
FAIL_IF(!(row= mysql_fetch_row(res)), "fetching row failed");
|
||||||
|
strcpy(str_converted, row[0]);
|
||||||
|
mysql_free_result(res);
|
||||||
|
|
||||||
|
from_len= cs_conv[i].len ? cs_conv[i].len : strlen(cs_conv[i].source);
|
||||||
|
FAIL_IF(convert_string(cs_conv[i].source, &from_len, cs_from,
|
||||||
|
str_expected, &to_len, cs_to) < 1, "conversion error occured");
|
||||||
|
|
||||||
|
if (strcmp(str_converted, str_expected))
|
||||||
|
{
|
||||||
|
diag("Error converting from %s to %s\ndb:'%s' library: '%s'",
|
||||||
|
cs_from->csname, cs_to->csname, str_converted, str_expected);
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct my_tests_st my_tests[] = {
|
||||||
|
{"test_cs_conversion", test_cs_conversion, TEST_CONNECTION_NEW, 0, NULL, NULL},
|
||||||
|
{NULL, NULL, 0, 0, NULL, 0}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
if (argc > 1)
|
||||||
|
get_options(argc, argv);
|
||||||
|
|
||||||
|
get_envvars();
|
||||||
|
|
||||||
|
run_tests(my_tests);
|
||||||
|
|
||||||
|
return(exit_status());
|
||||||
|
}
|
14
win-iconv/iconv.h
Normal file
14
win-iconv/iconv.h
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
#ifndef _LIBICONV_H
|
||||||
|
#define _LIBICONV_H
|
||||||
|
#include <stddef.h>
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
typedef void* iconv_t;
|
||||||
|
iconv_t iconv_open(const char *tocode, const char *fromcode);
|
||||||
|
int iconv_close(iconv_t cd);
|
||||||
|
size_t iconv(iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif//_LIBICONV_H
|
54
win-iconv/mlang.h
Normal file
54
win-iconv/mlang.h
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
HRESULT WINAPI ConvertINetString(
|
||||||
|
LPDWORD lpdwMode,
|
||||||
|
DWORD dwSrcEncoding,
|
||||||
|
DWORD dwDstEncoding,
|
||||||
|
LPCSTR lpSrcStr,
|
||||||
|
LPINT lpnSrcSize,
|
||||||
|
LPBYTE lpDstStr,
|
||||||
|
LPINT lpnDstSize
|
||||||
|
);
|
||||||
|
|
||||||
|
HRESULT WINAPI ConvertINetMultiByteToUnicode(
|
||||||
|
LPDWORD lpdwMode,
|
||||||
|
DWORD dwSrcEncoding,
|
||||||
|
LPCSTR lpSrcStr,
|
||||||
|
LPINT lpnMultiCharCount,
|
||||||
|
LPWSTR lpDstStr,
|
||||||
|
LPINT lpnWideCharCount
|
||||||
|
);
|
||||||
|
|
||||||
|
HRESULT WINAPI ConvertINetUnicodeToMultiByte(
|
||||||
|
LPDWORD lpdwMode,
|
||||||
|
DWORD dwEncoding,
|
||||||
|
LPCWSTR lpSrcStr,
|
||||||
|
LPINT lpnWideCharCount,
|
||||||
|
LPSTR lpDstStr,
|
||||||
|
LPINT lpnMultiCharCount
|
||||||
|
);
|
||||||
|
|
||||||
|
HRESULT WINAPI IsConvertINetStringAvailable(
|
||||||
|
DWORD dwSrcEncoding,
|
||||||
|
DWORD dwDstEncoding
|
||||||
|
);
|
||||||
|
|
||||||
|
HRESULT WINAPI LcidToRfc1766A(
|
||||||
|
LCID Locale,
|
||||||
|
LPSTR pszRfc1766,
|
||||||
|
int nChar
|
||||||
|
);
|
||||||
|
|
||||||
|
HRESULT WINAPI LcidToRfc1766W(
|
||||||
|
LCID Locale,
|
||||||
|
LPWSTR pszRfc1766,
|
||||||
|
int nChar
|
||||||
|
);
|
||||||
|
|
||||||
|
HRESULT WINAPI Rfc1766ToLcidA(
|
||||||
|
LCID *pLocale,
|
||||||
|
LPSTR pszRfc1766
|
||||||
|
);
|
||||||
|
|
||||||
|
HRESULT WINAPI Rfc1766ToLcidW(
|
||||||
|
LCID *pLocale,
|
||||||
|
LPWSTR pszRfc1766
|
||||||
|
);
|
2051
win-iconv/win_iconv.c
Normal file
2051
win-iconv/win_iconv.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user