Merge lp:~mumair/drizzle/trunk-bug-621859-v2 into lp:~drizzle-trunk/drizzle/development

Proposed by Muhammad Umair
Status: Merged
Merged at revision: 2293
Proposed branch: lp:~mumair/drizzle/trunk-bug-621859-v2
Merge into: lp:~drizzle-trunk/drizzle/development
Diff against target: 3055 lines (+898/-1040)
99 files modified
client/drizzletest.cc (+0/-1)
drizzled/charset-def.cc (+0/-1)
drizzled/charset.cc (+0/-1)
drizzled/charset.h (+823/-10)
drizzled/charset_info.h (+0/-886)
drizzled/ctype-bin.cc (+1/-1)
drizzled/ctype-mb.cc (+1/-1)
drizzled/ctype-simple.cc (+1/-1)
drizzled/ctype-uca.cc (+1/-1)
drizzled/ctype-uni.cc (+1/-1)
drizzled/ctype-utf8.cc (+1/-1)
drizzled/ctype.cc (+1/-1)
drizzled/dtcollation.cc (+0/-1)
drizzled/field.h (+2/-2)
drizzled/field/blob.h (+1/-1)
drizzled/function/cast/boolean.h (+1/-1)
drizzled/function/cast/signed.cc (+1/-1)
drizzled/function/cast/unsigned.cc (+1/-1)
drizzled/function/find_in_set.cc (+1/-1)
drizzled/function/func.h (+1/-1)
drizzled/function/locate.cc (+1/-1)
drizzled/function/math/int.cc (+1/-1)
drizzled/function/time/typecast.h (+1/-1)
drizzled/global_charset_info.h (+0/-36)
drizzled/identifier/catalog.cc (+1/-1)
drizzled/identifier/schema.cc (+1/-1)
drizzled/include.am (+0/-2)
drizzled/internal/my_access.cc (+1/-1)
drizzled/internal/my_init.cc (+0/-1)
drizzled/internal/my_sys.h (+1/-1)
drizzled/item.h (+1/-1)
drizzled/item/bin_string.h (+1/-1)
drizzled/item/copy_string.h (+1/-1)
drizzled/item/decimal.cc (+1/-1)
drizzled/item/int.cc (+1/-1)
drizzled/item/null.h (+1/-1)
drizzled/item/string.h (+1/-1)
drizzled/item/sum.h (+1/-1)
drizzled/item/uint.cc (+1/-1)
drizzled/message/schema.cc (+1/-1)
drizzled/message/statement_transform.cc (+0/-2)
drizzled/message/table.cc (+1/-2)
drizzled/my_hash.cc (+0/-1)
drizzled/option.cc (+1/-1)
drizzled/parser.h (+0/-1)
drizzled/plugin/schema_engine.cc (+0/-1)
drizzled/plugin/storage_engine.cc (+0/-1)
drizzled/plugin/table_function.cc (+1/-1)
drizzled/schema.cc (+0/-1)
drizzled/session.h (+1/-1)
drizzled/sql_base.cc (+1/-1)
drizzled/sql_locale.cc (+1/-1)
drizzled/sql_parse.cc (+1/-1)
drizzled/sql_string.cc (+0/-2)
drizzled/sql_table.cc (+0/-1)
drizzled/statement/alter_table.cc (+1/-1)
drizzled/strfunc.cc (+1/-2)
drizzled/sys_var.h (+1/-1)
drizzled/table_proto.cc (+0/-1)
drizzled/temporal.cc (+1/-1)
drizzled/time_functions.cc (+1/-1)
drizzled/type/boolean.cc (+1/-2)
drizzled/type/decimal.cc (+1/-1)
drizzled/type/time.cc (+1/-1)
drizzled/typelib.cc (+1/-1)
drizzled/tztime.cc (+1/-1)
drizzled/user_var_entry.cc (+1/-1)
drizzled/xid.cc (+0/-2)
plugin/haildb/datadict_table_message.cc (+1/-1)
plugin/haildb/haildb_engine.cc (+0/-1)
plugin/hex_functions/hex_functions.cc (+1/-1)
plugin/innobase/handler/ha_innodb.cc (+0/-1)
plugin/innobase/handler/handler0alter.cc (+1/-1)
plugin/innobase/include/create_replication.h (+1/-1)
plugin/innobase/xtrabackup/xtrabackup.cc (+0/-2)
plugin/math_functions/ord.cc (+1/-1)
plugin/md5/md5.cc (+0/-1)
plugin/memory/hp_hash.cc (+1/-1)
plugin/myisam/mi_create.cc (+1/-1)
plugin/myisam/mi_key.cc (+1/-1)
plugin/myisam/mi_locking.cc (+1/-1)
plugin/myisam/mi_open.cc (+0/-2)
plugin/myisam/mi_search.cc (+1/-1)
plugin/myisam/mi_unique.cc (+1/-1)
plugin/myisam/my_handler.cc (+1/-1)
plugin/myisam/my_handler.h (+1/-1)
plugin/pbms/src/backup_ms.cc (+1/-1)
plugin/pbms/src/cloud_ms.cc (+1/-1)
plugin/pbms/src/database_ms.cc (+1/-1)
plugin/pbms/src/metadata_ms.h (+1/-1)
plugin/pbms/src/system_table_ms.cc (+1/-1)
plugin/reverse_function/reverse_function.cc (+1/-1)
plugin/schema_engine/schema.cc (+0/-2)
plugin/storage_engine_api_tester/storage_engine_api_tester.cc (+1/-1)
plugin/string_functions/format.cc (+1/-1)
plugin/substr_functions/substr_functions.cc (+1/-1)
plugin/tableprototester/tableprototester.cc (+1/-1)
plugin/utility_functions/catalog.h (+1/-2)
plugin/uuid_function/uuid_function.cc (+1/-1)
To merge this branch: bzr merge lp:~mumair/drizzle/trunk-bug-621859-v2
Reviewer Review Type Date Requested Status
Drizzle Merge Team Pending
Review via email: mp+58586@code.launchpad.net

Description of the change

Merged charset declarations of global_charset_info.h and charset_info.h into charset.h header file.

After that I needed to remove global_charset_info.h and charset_info.h header declarations from all the drizzle code base. I wrote a script that search for global_charset_info.h in all the source code files and replace it with charset.h if that file does not already have charset.h header declaration otherwise it just remove global_charset_info.h from that particular file. I wrote a smilar scrpt for replacing charset_info.h with charset.h

I then restructured charset.h in order to make it more structural. i.e All the extern declarations are consolidated together one after the other. Similar pattern has been followed for struct declarations and functions in the charset.h header file

Plus: Fixed the minor bugs in my initial branch. Thank to Olaf, Monty Taylor and Stewar.t

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'client/drizzletest.cc'
2--- client/drizzletest.cc 2011-04-15 14:05:17 +0000
3+++ client/drizzletest.cc 2011-04-20 22:33:33 +0000
4@@ -70,7 +70,6 @@
5 #include <drizzled/gettext.h>
6
7 #include <drizzled/definitions.h>
8-#include <drizzled/charset_info.h>
9 #include <drizzled/internal/my_sys.h>
10 #include <drizzled/type/time.h>
11 #include <drizzled/charset.h>
12
13=== modified file 'drizzled/charset-def.cc'
14--- drizzled/charset-def.cc 2011-03-28 02:46:21 +0000
15+++ drizzled/charset-def.cc 2011-04-20 22:33:33 +0000
16@@ -15,7 +15,6 @@
17
18 #include <config.h>
19 #include <drizzled/charset.h>
20-#include <drizzled/charset_info.h>
21
22 namespace drizzled
23 {
24
25=== modified file 'drizzled/charset.cc'
26--- drizzled/charset.cc 2011-03-28 02:46:21 +0000
27+++ drizzled/charset.cc 2011-04-20 22:33:33 +0000
28@@ -17,7 +17,6 @@
29
30 #include <drizzled/charset.h>
31 #include <drizzled/error.h>
32-#include <drizzled/charset_info.h>
33 #include <drizzled/internal/m_string.h>
34 #include <drizzled/configmake.h>
35 #include <vector>
36
37=== modified file 'drizzled/charset.h'
38--- drizzled/charset.h 2011-03-28 02:46:21 +0000
39+++ drizzled/charset.h 2011-04-20 22:33:33 +0000
40@@ -17,36 +17,309 @@
41 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
42 */
43
44+/*
45+ Header File that defines all the charset declarations being used in Drizzle source code
46+*/
47+
48 #pragma once
49
50+#include <sys/types.h>
51 #include <cstddef>
52+#include <drizzled/visibility.h>
53 #include <drizzled/definitions.h>
54
55-#include <drizzled/visibility.h>
56-
57 namespace drizzled
58 {
59
60-struct charset_info_st;
61+#define MY_CS_NAME_SIZE 32
62+#define MY_CS_CTYPE_TABLE_SIZE 257
63+#define MY_CS_TO_LOWER_TABLE_SIZE 256
64+#define MY_CS_TO_UPPER_TABLE_SIZE 256
65+#define MY_CS_SORT_ORDER_TABLE_SIZE 256
66+#define MY_CS_TO_UNI_TABLE_SIZE 256
67+#define CHARSET_DIR "charsets/"
68+#define my_wc_t unsigned long
69+/* wm_wc and wc_mb return codes */
70+#define MY_CS_ILSEQ 0 /* Wrong by sequence: wb_wc */
71+#define MY_CS_ILUNI 0 /* Cannot encode Unicode to charset: wc_mb */
72+#define MY_CS_TOOSMALL -101 /* Need at least one byte: wc_mb and mb_wc */
73+#define MY_CS_TOOSMALL2 -102 /* Need at least two bytes: wc_mb and mb_wc */
74+#define MY_CS_TOOSMALL3 -103 /* Need at least three bytes: wc_mb and mb_wc */
75+/* These following three are currently not really used */
76+#define MY_CS_TOOSMALL4 -104 /* Need at least 4 bytes: wc_mb and mb_wc */
77+#define MY_CS_TOOSMALL5 -105 /* Need at least 5 bytes: wc_mb and mb_wc */
78+#define MY_CS_TOOSMALL6 -106 /* Need at least 6 bytes: wc_mb and mb_wc */
79+#define MY_SEQ_INTTAIL 1
80+#define MY_SEQ_SPACES 2
81+#define MY_CS_COMPILED 1 /* compiled-in sets */
82+#define MY_CS_CONFIG 2 /* sets that have a *.conf file */
83+#define MY_CS_INDEX 4 /* sets listed in the Index file */
84+#define MY_CS_LOADED 8 /* sets that are currently loaded */
85+#define MY_CS_BINSORT 16 /* if binary sort order */
86+#define MY_CS_PRIMARY 32 /* if primary collation */
87+#define MY_CS_STRNXFRM 64 /* if strnxfrm is used for sort */
88+#define MY_CS_UNICODE 128 /* is a charset is full unicode */
89+#define MY_CS_READY 256 /* if a charset is initialized */
90+#define MY_CS_AVAILABLE 512 /* If either compiled-in or loaded*/
91+#define MY_CS_CSSORT 1024 /* if case sensitive sort order */
92+#define MY_CS_HIDDEN 2048 /* don't display in SHOW */
93+#define MY_CS_NONASCII 8192 /* if not ASCII-compatible */
94+#define MY_CHARSET_UNDEFINED 0
95+/* Flags for strxfrm */
96+#define MY_STRXFRM_LEVEL1 0x00000001 /* for primary weights */
97+#define MY_STRXFRM_LEVEL2 0x00000002 /* for secondary weights */
98+#define MY_STRXFRM_LEVEL3 0x00000004 /* for tertiary weights */
99+#define MY_STRXFRM_LEVEL4 0x00000008 /* fourth level weights */
100+#define MY_STRXFRM_LEVEL5 0x00000010 /* fifth level weights */
101+#define MY_STRXFRM_LEVEL6 0x00000020 /* sixth level weights */
102+#define MY_STRXFRM_LEVEL_ALL 0x0000003F /* Bit OR for the above six */
103+#define MY_STRXFRM_NLEVELS 6 /* Number of possible levels*/
104+#define MY_STRXFRM_PAD_WITH_SPACE 0x00000040 /* if pad result with spaces */
105+#define MY_STRXFRM_UNUSED_00000080 0x00000080 /* for future extensions */
106+#define MY_STRXFRM_DESC_LEVEL1 0x00000100 /* if desc order for level1 */
107+#define MY_STRXFRM_DESC_LEVEL2 0x00000200 /* if desc order for level2 */
108+#define MY_STRXFRM_DESC_LEVEL3 0x00000300 /* if desc order for level3 */
109+#define MY_STRXFRM_DESC_LEVEL4 0x00000800 /* if desc order for level4 */
110+#define MY_STRXFRM_DESC_LEVEL5 0x00001000 /* if desc order for level5 */
111+#define MY_STRXFRM_DESC_LEVEL6 0x00002000 /* if desc order for level6 */
112+#define MY_STRXFRM_DESC_SHIFT 8
113+#define MY_STRXFRM_UNUSED_00004000 0x00004000 /* for future extensions */
114+#define MY_STRXFRM_UNUSED_00008000 0x00008000 /* for future extensions */
115+#define MY_STRXFRM_REVERSE_LEVEL1 0x00010000 /* if reverse order for level1 */
116+#define MY_STRXFRM_REVERSE_LEVEL2 0x00020000 /* if reverse order for level2 */
117+#define MY_STRXFRM_REVERSE_LEVEL3 0x00040000 /* if reverse order for level3 */
118+#define MY_STRXFRM_REVERSE_LEVEL4 0x00080000 /* if reverse order for level4 */
119+#define MY_STRXFRM_REVERSE_LEVEL5 0x00100000 /* if reverse order for level5 */
120+#define MY_STRXFRM_REVERSE_LEVEL6 0x00200000 /* if reverse order for level6 */
121+#define MY_STRXFRM_REVERSE_SHIFT 16
122+#define ILLEGAL_CHARSET_INFO_NUMBER (UINT32_MAX)
123+#define MY_UTF8MB4 "utf8"
124+#define my_charset_utf8_general_ci ::drizzled::my_charset_utf8mb4_general_ci
125+#define my_charset_utf8_bin ::drizzled::my_charset_utf8mb4_bin
126+#define _MY_U 01 /* Upper case */
127+#define _MY_L 02 /* Lower case */
128+#define _MY_NMR 04 /* Numeral (digit) */
129+#define _MY_SPC 010 /* Spacing character */
130+#define _MY_PNT 020 /* Punctuation */
131+#define _MY_CTR 040 /* Control character */
132+#define _MY_B 0100 /* Blank */
133+#define _MY_X 0200 /* heXadecimal digit */
134+
135+/* Some typedef to make it easy for C++ to make function pointers */
136+typedef int (*my_charset_conv_mb_wc)(const struct charset_info_st * const, my_wc_t *,
137+ const unsigned char *, const unsigned char *);
138+typedef int (*my_charset_conv_wc_mb)(const struct charset_info_st * const, my_wc_t,
139+ unsigned char *, unsigned char *);
140+typedef size_t (*my_charset_conv_case)(const struct charset_info_st * const,
141+ char *, size_t, char *, size_t);
142+struct charset_info_st;
143+typedef struct unicase_info_st
144+{
145+ uint16_t toupper;
146+ uint16_t tolower;
147+ uint16_t sort;
148+} MY_UNICASE_INFO;
149+
150+typedef struct uni_ctype_st
151+{
152+ unsigned char pctype;
153+ unsigned char *ctype;
154+} MY_UNI_CTYPE;
155+
156+/* A helper function for "need at least n bytes" */
157+inline static int my_cs_toosmalln(int n)
158+{
159+ return -100-n;
160+}
161+
162+typedef struct my_uni_idx_st
163+{
164+ uint16_t from;
165+ uint16_t to;
166+ unsigned char *tab;
167+} MY_UNI_IDX;
168+
169+typedef struct
170+{
171+ uint32_t beg;
172+ uint32_t end;
173+ uint32_t mb_len;
174+} my_match_t;
175+
176+enum my_lex_states
177+{
178+ MY_LEX_START, MY_LEX_CHAR, MY_LEX_IDENT,
179+ MY_LEX_IDENT_SEP, MY_LEX_IDENT_START,
180+ MY_LEX_REAL, MY_LEX_HEX_NUMBER, MY_LEX_BIN_NUMBER,
181+ MY_LEX_CMP_OP, MY_LEX_LONG_CMP_OP, MY_LEX_STRING, MY_LEX_COMMENT, MY_LEX_END,
182+ MY_LEX_OPERATOR_OR_IDENT, MY_LEX_NUMBER_IDENT, MY_LEX_INT_OR_REAL,
183+ MY_LEX_REAL_OR_POINT, MY_LEX_BOOL, MY_LEX_EOL, MY_LEX_ESCAPE,
184+ MY_LEX_LONG_COMMENT, MY_LEX_END_LONG_COMMENT, MY_LEX_SEMICOLON,
185+ MY_LEX_SET_VAR, MY_LEX_USER_END, MY_LEX_HOSTNAME, MY_LEX_SKIP,
186+ MY_LEX_USER_VARIABLE_DELIMITER, MY_LEX_SYSTEM_VAR,
187+ MY_LEX_IDENT_OR_KEYWORD,
188+ MY_LEX_IDENT_OR_HEX, MY_LEX_IDENT_OR_BIN,
189+ MY_LEX_STRING_OR_DELIMITER
190+};
191+
192+struct charset_info_st;
193+
194+/* See strings/charset_info_st.txt for information about this structure */
195+typedef struct my_collation_handler_st
196+{
197+ bool (*init)(struct charset_info_st *, unsigned char *(*alloc)(size_t));
198+ /* Collation routines */
199+ int (*strnncoll)(const struct charset_info_st * const,
200+ const unsigned char *, size_t, const unsigned char *, size_t, bool);
201+ int (*strnncollsp)(const struct charset_info_st * const,
202+ const unsigned char *, size_t, const unsigned char *, size_t,
203+ bool diff_if_only_endspace_difference);
204+ size_t (*strnxfrm)(const struct charset_info_st * const,
205+ unsigned char *dst, size_t dstlen, uint32_t nweights,
206+ const unsigned char *src, size_t srclen, uint32_t flags);
207+ size_t (*strnxfrmlen)(const struct charset_info_st * const, size_t);
208+ bool (*like_range)(const struct charset_info_st * const,
209+ const char *s, size_t s_length,
210+ char escape, char w_one, char w_many,
211+ size_t res_length,
212+ char *min_str, char *max_str,
213+ size_t *min_len, size_t *max_len);
214+ int (*wildcmp)(const struct charset_info_st * const,
215+ const char *str,const char *str_end,
216+ const char *wildstr,const char *wildend,
217+ int escape,int w_one, int w_many);
218+
219+ int (*strcasecmp)(const struct charset_info_st * const, const char *, const char *);
220+
221+ uint32_t (*instr)(const struct charset_info_st * const,
222+ const char *b, size_t b_length,
223+ const char *s, size_t s_length,
224+ my_match_t *match, uint32_t nmatch);
225+
226+ /* Hash calculation */
227+ void (*hash_sort)(const struct charset_info_st *cs, const unsigned char *key, size_t len,
228+ uint32_t *nr1, uint32_t *nr2);
229+ bool (*propagate)(const struct charset_info_st *cs, const unsigned char *str, size_t len);
230+} MY_COLLATION_HANDLER;
231+
232+/* See strings/charset_info_st.txt about information on this structure */
233+typedef struct my_charset_handler_st
234+{
235+ bool (*init)(struct charset_info_st *, unsigned char *(*alloc)(size_t));
236+ /* Multibyte routines */
237+ uint32_t (*ismbchar)(const struct charset_info_st * const, const char *, const char *);
238+ uint32_t (*mbcharlen)(const struct charset_info_st * const, uint32_t c);
239+ size_t (*numchars)(const struct charset_info_st * const, const char *b, const char *e);
240+ size_t (*charpos)(const struct charset_info_st * const, const char *b, const char *e,
241+ size_t pos);
242+ size_t (*well_formed_len)(const struct charset_info_st * const,
243+ const char *b,const char *e,
244+ size_t nchars, int *error);
245+ size_t (*lengthsp)(const struct charset_info_st * const, const char *ptr, size_t length);
246+ size_t (*numcells)(const struct charset_info_st * const, const char *b, const char *e);
247+
248+ /* Unicode conversion */
249+ my_charset_conv_mb_wc mb_wc;
250+ my_charset_conv_wc_mb wc_mb;
251+
252+ /* CTYPE scanner */
253+ int (*ctype)(const struct charset_info_st *cs, int *ctype,
254+ const unsigned char *s, const unsigned char *e);
255+
256+ /* Functions for case and sort conversion */
257+ size_t (*caseup_str)(const struct charset_info_st * const, char *);
258+ size_t (*casedn_str)(const struct charset_info_st * const, char *);
259+
260+ my_charset_conv_case caseup;
261+ my_charset_conv_case casedn;
262+
263+ /* Charset dependant snprintf() */
264+ size_t (*snprintf)(const struct charset_info_st * const, char *to, size_t n,
265+ const char *fmt,
266+ ...)
267+#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
268+ __attribute__((format(printf, 4, 5)))
269+#endif
270+ ;
271+ size_t (*long10_to_str)(const struct charset_info_st * const, char *to, size_t n,
272+ int radix, long int val);
273+ size_t (*int64_t10_to_str)(const struct charset_info_st * const, char *to, size_t n,
274+ int radix, int64_t val);
275+
276+ void (*fill)(const struct charset_info_st * const, char *to, size_t len, int fill);
277+
278+ /* String-to-number conversion routines */
279+ long (*strntol)(const struct charset_info_st * const, const char *s, size_t l,
280+ int base, char **e, int *err);
281+ unsigned long (*strntoul)(const struct charset_info_st * const, const char *s, size_t l,
282+ int base, char **e, int *err);
283+ int64_t (*strntoll)(const struct charset_info_st * const, const char *s, size_t l,
284+ int base, char **e, int *err);
285+ uint64_t (*strntoull)(const struct charset_info_st * const, const char *s, size_t l,
286+ int base, char **e, int *err);
287+ double (*strntod)(const struct charset_info_st * const, char *s, size_t l, char **e,
288+ int *err);
289+ int64_t (*strtoll10)(const struct charset_info_st *cs,
290+ const char *nptr, char **endptr, int *error);
291+ uint64_t (*strntoull10rnd)(const struct charset_info_st *cs,
292+ const char *str, size_t length,
293+ int unsigned_fl,
294+ char **endptr, int *error);
295+ size_t (*scan)(const struct charset_info_st * const, const char *b, const char *e,
296+ int sq);
297+} MY_CHARSET_HANDLER;
298+
299+
300+/* See strings/charset_info_st.txt about information on this structure */
301+struct charset_info_st
302+{
303+ uint32_t number;
304+ uint32_t primary_number;
305+ uint32_t binary_number;
306+ uint32_t state;
307+ const char *csname;
308+ const char *name;
309+ const char *comment;
310+ const char *tailoring;
311+ unsigned char *ctype;
312+ unsigned char *to_lower;
313+ unsigned char *to_upper;
314+ unsigned char *sort_order;
315+ uint16_t *contractions;
316+ uint16_t **sort_order_big;
317+ uint16_t *tab_to_uni;
318+ MY_UNI_IDX *tab_from_uni;
319+ MY_UNICASE_INFO **caseinfo;
320+ unsigned char *state_map;
321+ unsigned char *ident_map;
322+ uint32_t strxfrm_multiply;
323+ unsigned char caseup_multiply;
324+ unsigned char casedn_multiply;
325+ uint32_t mbminlen;
326+ uint32_t mbmaxlen;
327+ uint16_t min_sort_char;
328+ uint16_t max_sort_char; /* For LIKE optimization */
329+ unsigned char pad_char;
330+ bool escape_with_backslash_is_dangerous;
331+ unsigned char levels_for_compare;
332+ unsigned char levels_for_order;
333+
334+ MY_CHARSET_HANDLER *cset;
335+ MY_COLLATION_HANDLER *coll;
336+
337+};
338
339 extern DRIZZLED_API charset_info_st *all_charsets[256];
340 extern charset_info_st compiled_charsets[];
341-
342 extern uint32_t get_charset_number(const char *cs_name, uint32_t cs_flags);
343 extern uint32_t get_collation_number(const char *name);
344 extern const char *get_charset_name(uint32_t cs_number);
345-
346-DRIZZLED_API const charset_info_st *get_charset(uint32_t cs_number);
347-DRIZZLED_API const charset_info_st *get_charset_by_name(const char *cs_name);
348-DRIZZLED_API const charset_info_st *get_charset_by_csname(const char *cs_name, uint32_t cs_flags);
349-
350 extern bool resolve_charset(const char *cs_name,
351 const charset_info_st *default_cs,
352 const charset_info_st **cs);
353 extern bool resolve_collation(const char *cl_name,
354 const charset_info_st *default_cl,
355 const charset_info_st **cl);
356-
357 extern void free_charsets(void);
358 extern char *get_charsets_dir(char *buf);
359 extern bool my_charset_same(const charset_info_st *cs1, const charset_info_st *cs2);
360@@ -58,6 +331,546 @@
361 extern size_t escape_quotes_for_drizzle(const charset_info_st *charset_info,
362 char *to, size_t to_length,
363 const char *from, size_t length);
364+extern DRIZZLED_API const charset_info_st *default_charset_info;
365+extern DRIZZLED_API const charset_info_st *system_charset_info;
366+extern const charset_info_st *files_charset_info;
367+extern const charset_info_st *table_alias_charset;
368+extern MY_UNICASE_INFO *my_unicase_default[256];
369+extern MY_UNICASE_INFO *my_unicase_turkish[256];
370+extern MY_UNI_CTYPE my_uni_ctype[256];
371+extern MY_COLLATION_HANDLER my_collation_mb_bin_handler;
372+extern MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler;
373+extern MY_COLLATION_HANDLER my_collation_ucs2_uca_handler;
374+extern DRIZZLED_API charset_info_st my_charset_bin;
375+extern DRIZZLED_API charset_info_st my_charset_utf8mb4_bin;
376+extern DRIZZLED_API charset_info_st my_charset_utf8mb4_general_ci;
377+extern DRIZZLED_API charset_info_st my_charset_utf8mb4_unicode_ci;
378+size_t my_strnxfrmlen_simple(const charset_info_st * const, size_t);
379+extern int my_strnncollsp_simple(const charset_info_st * const, const unsigned char *, size_t,
380+ const unsigned char *, size_t,
381+ bool diff_if_only_endspace_difference);
382+extern size_t my_lengthsp_8bit(const charset_info_st * const cs, const char *ptr, size_t length);
383+extern uint32_t my_instr_simple(const charset_info_st * const,
384+ const char *b, size_t b_length,
385+ const char *s, size_t s_length,
386+ my_match_t *match, uint32_t nmatch);
387+extern MY_CHARSET_HANDLER my_charset_8bit_handler;
388+extern MY_CHARSET_HANDLER my_charset_ucs2_handler;
389+extern size_t my_caseup_str_mb(const charset_info_st * const, char *);
390+extern size_t my_casedn_str_mb(const charset_info_st * const, char *);
391+extern size_t my_caseup_mb(const charset_info_st * const, char *src, size_t srclen,
392+ char *dst, size_t dstlen);
393+extern size_t my_casedn_mb(const charset_info_st * const, char *src, size_t srclen,
394+ char *dst, size_t dstlen);
395+extern int my_strcasecmp_mb(const charset_info_st * const cs, const char *s, const char *t);
396+extern bool my_parse_charset_xml(const char *bug, size_t len,
397+ int (*add)(charset_info_st *cs));
398+
399+DRIZZLED_API const charset_info_st *get_charset(uint32_t cs_number);
400+DRIZZLED_API const charset_info_st *get_charset_by_name(const char *cs_name);
401+DRIZZLED_API const charset_info_st *get_charset_by_csname(const char *cs_name, uint32_t cs_flags);
402+
403+/* Functions for 8bit */
404+int my_mb_ctype_8bit(const charset_info_st * const,int *, const unsigned char *,const unsigned char *);
405+int my_mb_ctype_mb(const charset_info_st * const,int *, const unsigned char *,const unsigned char *);
406+
407+size_t my_scan_8bit(const charset_info_st * const cs, const char *b, const char *e, int sq);
408+
409+size_t my_snprintf_8bit(const charset_info_st * const, char *to, size_t n,
410+ const char *fmt, ...)
411+ __attribute__((format(printf, 4, 5)));
412+
413+long my_strntol_8bit(const charset_info_st * const, const char *s, size_t l, int base,
414+ char **e, int *err);
415+unsigned long my_strntoul_8bit(const charset_info_st * const, const char *s, size_t l, int base,
416+ char **e, int *err);
417+int64_t my_strntoll_8bit(const charset_info_st * const, const char *s, size_t l, int base,
418+ char **e, int *err);
419+uint64_t my_strntoull_8bit(const charset_info_st * const, const char *s, size_t l, int base,
420+ char **e, int *err);
421+double my_strntod_8bit(const charset_info_st * const, char *s, size_t l,char **e,
422+ int *err);
423+size_t my_long10_to_str_8bit(const charset_info_st * const, char *to, size_t l, int radix,
424+ long int val);
425+size_t my_int64_t10_to_str_8bit(const charset_info_st * const, char *to, size_t l, int radix,
426+ int64_t val);
427+int64_t my_strtoll10_8bit(const charset_info_st * const cs,
428+ const char *nptr, char **endptr, int *error);
429+int64_t my_strtoll10_ucs2(charset_info_st *cs,
430+ const char *nptr, char **endptr, int *error);
431+
432+uint64_t my_strntoull10rnd_8bit(const charset_info_st * const cs,
433+ const char *str, size_t length, int
434+ unsigned_fl, char **endptr, int *error);
435+uint64_t my_strntoull10rnd_ucs2(charset_info_st *cs,
436+ const char *str, size_t length,
437+ int unsigned_fl, char **endptr, int *error);
438+
439+void my_fill_8bit(const charset_info_st * const cs, char* to, size_t l, int fill);
440+
441+bool my_like_range_simple(const charset_info_st * const cs,
442+ const char *ptr, size_t ptr_length,
443+ char escape, char w_one, char w_many,
444+ size_t res_length,
445+ char *min_str, char *max_str,
446+ size_t *min_length, size_t *max_length);
447+
448+bool my_like_range_mb(const charset_info_st * const cs,
449+ const char *ptr, size_t ptr_length,
450+ char escape, char w_one, char w_many,
451+ size_t res_length,
452+ char *min_str, char *max_str,
453+ size_t *min_length, size_t *max_length);
454+
455+bool my_like_range_ucs2(const charset_info_st * const cs,
456+ const char *ptr, size_t ptr_length,
457+ char escape, char w_one, char w_many,
458+ size_t res_length,
459+ char *min_str, char *max_str,
460+ size_t *min_length, size_t *max_length);
461+
462+bool my_like_range_utf16(const charset_info_st * const cs,
463+ const char *ptr, size_t ptr_length,
464+ char escape, char w_one, char w_many,
465+ size_t res_length,
466+ char *min_str, char *max_str,
467+ size_t *min_length, size_t *max_length);
468+
469+bool my_like_range_utf32(const charset_info_st * const cs,
470+ const char *ptr, size_t ptr_length,
471+ char escape, char w_one, char w_many,
472+ size_t res_length,
473+ char *min_str, char *max_str,
474+ size_t *min_length, size_t *max_length);
475+
476+
477+int my_wildcmp_8bit(const charset_info_st * const,
478+ const char *str,const char *str_end,
479+ const char *wildstr,const char *wildend,
480+ int escape, int w_one, int w_many);
481+
482+int my_wildcmp_bin(const charset_info_st * const,
483+ const char *str,const char *str_end,
484+ const char *wildstr,const char *wildend,
485+ int escape, int w_one, int w_many);
486+
487+size_t my_numchars_8bit(const charset_info_st * const, const char *b, const char *e);
488+size_t my_numcells_8bit(const charset_info_st * const, const char *b, const char *e);
489+size_t my_charpos_8bit(const charset_info_st * const, const char *b, const char *e, size_t pos);
490+size_t my_well_formed_len_8bit(const charset_info_st * const, const char *b, const char *e,
491+ size_t pos, int *error);
492+typedef unsigned char *(*cs_alloc_func)(size_t);
493+bool my_coll_init_simple(charset_info_st *cs, cs_alloc_func alloc);
494+bool my_cset_init_8bit(charset_info_st *cs, cs_alloc_func alloc);
495+uint32_t my_mbcharlen_8bit(const charset_info_st * const, uint32_t c);
496+
497+/* Functions for multibyte charsets */
498+int my_wildcmp_mb(const charset_info_st * const,
499+ const char *str,const char *str_end,
500+ const char *wildstr,const char *wildend,
501+ int escape, int w_one, int w_many);
502+size_t my_numchars_mb(const charset_info_st * const, const char *b, const char *e);
503+size_t my_numcells_mb(const charset_info_st * const, const char *b, const char *e);
504+size_t my_charpos_mb(const charset_info_st * const, const char *b, const char *e, size_t pos);
505+size_t my_well_formed_len_mb(const charset_info_st * const, const char *b, const char *e,
506+ size_t pos, int *error);
507+uint32_t my_instr_mb(const charset_info_st * const,
508+ const char *b, size_t b_length,
509+ const char *s, size_t s_length,
510+ my_match_t *match, uint32_t nmatch);
511+
512+int my_strnncoll_mb_bin(const charset_info_st * const cs,
513+ const unsigned char *s, size_t slen,
514+ const unsigned char *t, size_t tlen,
515+ bool t_is_prefix);
516+
517+int my_strnncollsp_mb_bin(const charset_info_st * const cs,
518+ const unsigned char *a, size_t a_length,
519+ const unsigned char *b, size_t b_length,
520+ bool diff_if_only_endspace_difference);
521+
522+int my_wildcmp_mb_bin(const charset_info_st * const cs,
523+ const char *str,const char *str_end,
524+ const char *wildstr,const char *wildend,
525+ int escape, int w_one, int w_many);
526+
527+int my_strcasecmp_mb_bin(const charset_info_st * const, const char *s, const char *t);
528+
529+void my_hash_sort_mb_bin(const charset_info_st * const,
530+ const unsigned char *key, size_t len, uint32_t *nr1, uint32_t *nr2);
531+
532+size_t my_strnxfrm_mb(const charset_info_st * const,
533+ unsigned char *dst, size_t dstlen, uint32_t nweights,
534+ const unsigned char *src, size_t srclen, uint32_t flags);
535+
536+int my_wildcmp_unicode(const charset_info_st * const cs,
537+ const char *str, const char *str_end,
538+ const char *wildstr, const char *wildend,
539+ int escape, int w_one, int w_many,
540+ MY_UNICASE_INFO **weights);
541+
542+bool my_propagate_simple(const charset_info_st * const cs, const unsigned char *str, size_t len);
543+bool my_propagate_complex(const charset_info_st * const cs, const unsigned char *str, size_t len);
544+
545+
546+uint32_t my_strxfrm_flag_normalize(uint32_t flags, uint32_t nlevels);
547+void my_strxfrm_desc_and_reverse(unsigned char *str, unsigned char *strend,
548+ uint32_t flags, uint32_t level);
549+size_t my_strxfrm_pad_desc_and_reverse(const charset_info_st * const cs,
550+ unsigned char *str, unsigned char *frmend, unsigned char *strend,
551+ uint32_t nweights, uint32_t flags, uint32_t level);
552+
553+bool my_charset_is_ascii_compatible(const charset_info_st * const cs);
554+
555+/*
556+ Compare 0-terminated UTF8 strings.
557+
558+ SYNOPSIS
559+ my_strcasecmp_utf8mb3()
560+ cs character set handler
561+ s First 0-terminated string to compare
562+ t Second 0-terminated string to compare
563+
564+ IMPLEMENTATION
565+
566+ RETURN
567+ - negative number if s < t
568+ - positive number if s > t
569+ - 0 is the strings are equal
570+*/
571+int my_wc_mb_filename(const charset_info_st * const,
572+ my_wc_t wc, unsigned char *s, unsigned char *e);
573+
574+int my_mb_wc_filename(const charset_info_st * const,
575+ my_wc_t *pwc, const unsigned char *s, const unsigned char *e);
576+
577+
578+unsigned int my_ismbchar_utf8mb4(const charset_info_st * const cs, const char *b, const char *e);
579+unsigned int my_mbcharlen_utf8mb4(const charset_info_st * const, uint32_t c);
580+
581+size_t my_strnxfrmlen_utf8mb4(const charset_info_st * const, size_t len);
582+size_t
583+my_strnxfrm_utf8mb4(const charset_info_st * const cs,
584+ unsigned char *dst, size_t dstlen, uint32_t nweights,
585+ const unsigned char *src, size_t srclen, uint32_t flags);
586+
587+int my_wildcmp_utf8mb4(const charset_info_st * const cs,
588+ const char *str, const char *strend,
589+ const char *wildstr, const char *wildend,
590+ int escape, int w_one, int w_many);
591+int my_strnncollsp_utf8mb4(const charset_info_st * const cs,
592+ const unsigned char *s, size_t slen,
593+ const unsigned char *t, size_t tlen,
594+ bool diff_if_only_endspace_difference);
595+int my_strcasecmp_utf8mb4(const charset_info_st * const cs,
596+ const char *s, const char *t);
597+
598+int my_strnncoll_utf8mb4(const charset_info_st * const cs,
599+ const unsigned char *s, size_t slen,
600+ const unsigned char *t, size_t tlen,
601+ bool t_is_prefix);
602+
603+int my_mb_wc_utf8mb4(const charset_info_st * const cs,
604+ my_wc_t * pwc, const unsigned char *s, const unsigned char *e);
605+
606+int my_wc_mb_utf8mb4(const charset_info_st * const cs,
607+ my_wc_t wc, unsigned char *r, unsigned char *e);
608+
609+size_t my_caseup_str_utf8mb4(const charset_info_st * const cs, char *src);
610+size_t my_casedn_str_utf8mb4(const charset_info_st * const cs, char *src);
611+
612+size_t my_caseup_utf8mb4(const charset_info_st * const cs, char *src, size_t srclen,
613+ char *dst, size_t dstlen);
614+size_t my_casedn_utf8mb4(const charset_info_st * const cs,
615+ char *src, size_t srclen,
616+ char *dst, size_t dstlen);
617+
618+
619+bool my_coll_init_uca(charset_info_st *cs, cs_alloc_func alloc);
620+
621+int my_strnncoll_any_uca(const charset_info_st * const cs,
622+ const unsigned char *s, size_t slen,
623+ const unsigned char *t, size_t tlen,
624+ bool t_is_prefix);
625+
626+int my_strnncollsp_any_uca(const charset_info_st * const cs,
627+ const unsigned char *s, size_t slen,
628+ const unsigned char *t, size_t tlen,
629+ bool diff_if_only_endspace_difference);
630+
631+void my_hash_sort_any_uca(const charset_info_st * const cs,
632+ const unsigned char *s, size_t slen,
633+ uint32_t *n1, uint32_t *n2);
634+
635+size_t my_strnxfrm_any_uca(const charset_info_st * const cs,
636+ unsigned char *dst, size_t dstlen, uint32_t nweights,
637+ const unsigned char *src, size_t srclen,
638+ uint32_t flags);
639+
640+int my_wildcmp_uca(const charset_info_st * const cs,
641+ const char *str,const char *str_end,
642+ const char *wildstr,const char *wildend,
643+ int escape, int w_one, int w_many);
644+
645+int my_strnncoll_8bit_bin(const charset_info_st * const,
646+ const unsigned char *s, size_t slen,
647+ const unsigned char *t, size_t tlen,
648+ bool t_is_prefix);
649+int my_strnncollsp_8bit_bin(const charset_info_st * const,
650+ const unsigned char *a, size_t a_length,
651+ const unsigned char *b, size_t b_length,
652+ bool diff_if_only_endspace_difference);
653+size_t my_case_str_bin(const charset_info_st * const, char *);
654+size_t my_case_bin(const charset_info_st * const, char *,
655+ size_t srclen, char *, size_t);
656+int my_strcasecmp_bin(const charset_info_st * const,
657+ const char *s, const char *t);
658+size_t my_strnxfrm_8bit_bin(const charset_info_st * const cs,
659+ unsigned char * dst, size_t dstlen, uint32_t nweights,
660+ const unsigned char *src, size_t srclen, uint32_t flags);
661+uint32_t my_instr_bin(const charset_info_st * const,
662+ const char *b, size_t b_length,
663+ const char *s, size_t s_length,
664+ my_match_t *match, uint32_t nmatch);
665+size_t my_lengthsp_binary(const charset_info_st * const,
666+ const char *, size_t length);
667+int my_mb_wc_bin(const charset_info_st * const,
668+ my_wc_t *wc, const unsigned char *str,
669+ const unsigned char *end);
670+int my_wc_mb_bin(const charset_info_st * const, my_wc_t wc,
671+ unsigned char *str, unsigned char *end);
672+void my_hash_sort_8bit_bin(const charset_info_st * const,
673+ const unsigned char *key, size_t len,
674+ uint32_t *nr1, uint32_t *nr2);
675+bool my_coll_init_8bit_bin(charset_info_st *cs,
676+ cs_alloc_func);
677+int my_strnncoll_binary(const charset_info_st * const,
678+ const unsigned char *s, size_t slen,
679+ const unsigned char *t, size_t tlen,
680+ bool t_is_prefix);
681+int my_strnncollsp_binary(const charset_info_st * const cs,
682+ const unsigned char *s, size_t slen,
683+ const unsigned char *t, size_t tlen,
684+ bool);
685+
686+inline static bool my_isascii(char c)
687+{
688+ return (!(c & ~0177));
689+}
690+
691+inline static char my_toascii(char c)
692+{
693+ return (c & 0177);
694+}
695+
696+inline static char my_tocntrl(char c)
697+{
698+ return (c & 31);
699+}
700+
701+inline static char my_toprint(char c)
702+{
703+ return (c | 64);
704+}
705+
706+inline static char my_toupper(const charset_info_st *s, unsigned char c)
707+{
708+ return s->to_upper[c];
709+}
710+
711+inline static char my_tolower(const charset_info_st *s, unsigned char c)
712+{
713+ return s->to_lower[c];
714+}
715+
716+inline static bool my_isalpha(const charset_info_st *s, unsigned char c)
717+{
718+ return (s->ctype+1)[c] & (_MY_U | _MY_L);
719+}
720+
721+inline static bool my_isupper(const charset_info_st *s, unsigned char c)
722+{
723+ return (s->ctype+1)[c] & _MY_U;
724+}
725+
726+inline static bool my_islower(const charset_info_st *s, unsigned char c)
727+{
728+ return (s->ctype+1)[c] & _MY_L;
729+}
730+
731+inline static bool my_isdigit(const charset_info_st *s, unsigned char c)
732+{
733+ return (s->ctype+1)[c] & _MY_NMR;
734+}
735+
736+inline static bool my_isxdigit(const charset_info_st *s, unsigned char c)
737+{
738+ return (s->ctype+1)[c] & _MY_X;
739+}
740+
741+inline static bool my_isalnum(const charset_info_st *s, unsigned char c)
742+{
743+ return (s->ctype+1)[c] & (_MY_U | _MY_L | _MY_NMR);
744+}
745+
746+inline static bool my_isspace(const charset_info_st *s, unsigned char c)
747+{
748+ return (s->ctype+1)[c] & _MY_SPC;
749+}
750+
751+inline static bool my_ispunct(const charset_info_st *s, unsigned char c)
752+{
753+ return (s->ctype+1)[c] & _MY_PNT;
754+}
755+
756+inline static bool my_isprint(const charset_info_st *s, unsigned char c)
757+{
758+ return (s->ctype+1)[c] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR | _MY_B);
759+}
760+
761+inline static bool my_isgraph(const charset_info_st *s, unsigned char c)
762+{
763+ return (s->ctype+1)[c] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR);
764+}
765+
766+inline static bool my_iscntrl(const charset_info_st *s, unsigned char c)
767+{
768+ return (s->ctype+1)[c] & _MY_CTR;
769+}
770+
771+/* Some macros that should be cleaned up a little */
772+inline static bool my_isvar(const charset_info_st *s, char c)
773+{
774+ return my_isalnum(s,c) || (c) == '_';
775+}
776+
777+inline static bool my_isvar_start(const charset_info_st *s, char c)
778+{
779+ return my_isalpha(s,c) || (c) == '_';
780+}
781+
782+inline static bool my_binary_compare(const charset_info_st *s)
783+{
784+ return s->state & MY_CS_BINSORT;
785+}
786+
787+inline static bool use_strnxfrm(const charset_info_st *s)
788+{
789+ return s->state & MY_CS_STRNXFRM;
790+}
791+
792+inline static size_t my_strnxfrm(const charset_info_st *cs,
793+ unsigned char *dst,
794+ const size_t dstlen,
795+ const unsigned char *src,
796+ const uint32_t srclen)
797+{
798+ return (cs->coll->strnxfrm(cs, dst, dstlen, dstlen, src, srclen, MY_STRXFRM_PAD_WITH_SPACE));
799+}
800+
801+inline static int my_strnncoll(const charset_info_st *cs,
802+ const unsigned char *s,
803+ const size_t slen,
804+ const unsigned char *t,
805+ const size_t tlen)
806+{
807+ return (cs->coll->strnncoll(cs, s, slen, t, tlen, 0));
808+}
809+
810+inline static bool my_like_range(const charset_info_st *cs,
811+ const char *ptr, const size_t ptrlen,
812+ const char escape,
813+ const char w_one,
814+ const char w_many,
815+ const size_t reslen,
816+ char *minstr, char *maxstr,
817+ size_t *minlen, size_t *maxlen)
818+{
819+ return (cs->coll->like_range(cs, ptr, ptrlen, escape, w_one, w_many, reslen,
820+ minstr, maxstr, minlen, maxlen));
821+}
822+
823+inline static int my_wildcmp(const charset_info_st *cs,
824+ const char *str, const char *strend,
825+ const char *w_str, const char *w_strend,
826+ const int escape,
827+ const int w_one, const int w_many)
828+{
829+ return (cs->coll->wildcmp(cs, str, strend, w_str, w_strend, escape, w_one, w_many));
830+}
831+
832+inline static int my_strcasecmp(const charset_info_st *cs, const char *s, const char *t)
833+{
834+ return (cs->coll->strcasecmp(cs, s, t));
835+}
836+
837+template <typename CHAR_T>
838+inline static size_t my_charpos(const charset_info_st *cs,
839+ const CHAR_T *b, const CHAR_T* e, size_t num)
840+{
841+ return cs->cset->charpos(cs, reinterpret_cast<const char*>(b), reinterpret_cast<const char*>(e), num);
842+}
843+
844+inline static bool use_mb(const charset_info_st *cs)
845+{
846+ return cs->cset->ismbchar != NULL;
847+}
848+
849+inline static unsigned int my_ismbchar(const charset_info_st *cs, const char *a, const char *b)
850+{
851+ return cs->cset->ismbchar(cs, a, b);
852+}
853+
854+inline static unsigned int my_mbcharlen(const charset_info_st *cs, uint32_t c)
855+{
856+ return cs->cset->mbcharlen(cs, c);
857+}
858+
859+
860+inline static size_t my_caseup_str(const charset_info_st *cs, char *src)
861+{
862+ return cs->cset->caseup_str(cs, src);
863+}
864+
865+inline static size_t my_casedn_str(const charset_info_st *cs, char *src)
866+{
867+ return cs->cset->casedn_str(cs, src);
868+}
869+
870+inline static long my_strntol(const charset_info_st *cs,
871+ const char* s, const size_t l, const int base, char **e, int *err)
872+{
873+ return (cs->cset->strntol(cs, s, l, base, e, err));
874+}
875+
876+inline static unsigned long my_strntoul(const charset_info_st *cs,
877+ const char* s, const size_t l, const int base,
878+ char **e, int *err)
879+{
880+ return (cs->cset->strntoul(cs, s, l, base, e, err));
881+}
882+
883+inline static int64_t my_strntoll(const charset_info_st *cs,
884+ const char* s, const size_t l, const int base, char **e, int *err)
885+{
886+ return (cs->cset->strntoll(cs, s, l, base, e, err));
887+}
888+
889+inline static int64_t my_strntoull(const charset_info_st *cs,
890+ const char* s, const size_t l, const int base,
891+ char **e, int *err)
892+{
893+ return (cs->cset->strntoull(cs, s, l, base, e, err));
894+}
895+
896+
897+inline static double my_strntod(const charset_info_st *cs,
898+ char* s, const size_t l, char **e, int *err)
899+{
900+ return (cs->cset->strntod(cs, s, l, e, err));
901+}
902+
903+int make_escape_code(const charset_info_st * const cs, const char *escape);
904
905 } /* namespace drizzled */
906
907
908=== removed file 'drizzled/charset_info.h'
909--- drizzled/charset_info.h 2011-04-16 12:24:04 +0000
910+++ drizzled/charset_info.h 1970-01-01 00:00:00 +0000
911@@ -1,886 +0,0 @@
912-/* Copyright (C) 2000 MySQL AB
913-
914- This program is free software; you can redistribute it and/or modify
915- it under the terms of the GNU General Public License as published by
916- the Free Software Foundation; version 2 of the License.
917-
918- This program is distributed in the hope that it will be useful,
919- but WITHOUT ANY WARRANTY; without even the implied warranty of
920- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
921- GNU General Public License for more details.
922-
923- You should have received a copy of the GNU General Public License
924- along with this program; if not, write to the Free Software
925- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
926-
927-/*
928- A better inplementation of the UNIX ctype(3) library.
929-*/
930-
931-#pragma once
932-
933-#include <sys/types.h>
934-#include <cstddef>
935-
936-#include <drizzled/visibility.h>
937-
938-namespace drizzled
939-{
940-
941-#define MY_CS_NAME_SIZE 32
942-#define MY_CS_CTYPE_TABLE_SIZE 257
943-#define MY_CS_TO_LOWER_TABLE_SIZE 256
944-#define MY_CS_TO_UPPER_TABLE_SIZE 256
945-#define MY_CS_SORT_ORDER_TABLE_SIZE 256
946-#define MY_CS_TO_UNI_TABLE_SIZE 256
947-
948-#define CHARSET_DIR "charsets/"
949-
950-#define my_wc_t unsigned long
951-
952-typedef struct unicase_info_st
953-{
954- uint16_t toupper;
955- uint16_t tolower;
956- uint16_t sort;
957-} MY_UNICASE_INFO;
958-
959-
960-extern MY_UNICASE_INFO *my_unicase_default[256];
961-extern MY_UNICASE_INFO *my_unicase_turkish[256];
962-
963-typedef struct uni_ctype_st
964-{
965- unsigned char pctype;
966- unsigned char *ctype;
967-} MY_UNI_CTYPE;
968-
969-extern MY_UNI_CTYPE my_uni_ctype[256];
970-
971-/* wm_wc and wc_mb return codes */
972-#define MY_CS_ILSEQ 0 /* Wrong by sequence: wb_wc */
973-#define MY_CS_ILUNI 0 /* Cannot encode Unicode to charset: wc_mb */
974-#define MY_CS_TOOSMALL -101 /* Need at least one byte: wc_mb and mb_wc */
975-#define MY_CS_TOOSMALL2 -102 /* Need at least two bytes: wc_mb and mb_wc */
976-#define MY_CS_TOOSMALL3 -103 /* Need at least three bytes: wc_mb and mb_wc */
977-/* These following three are currently not really used */
978-#define MY_CS_TOOSMALL4 -104 /* Need at least 4 bytes: wc_mb and mb_wc */
979-#define MY_CS_TOOSMALL5 -105 /* Need at least 5 bytes: wc_mb and mb_wc */
980-#define MY_CS_TOOSMALL6 -106 /* Need at least 6 bytes: wc_mb and mb_wc */
981-
982-/* A helper function for "need at least n bytes" */
983-inline static int my_cs_toosmalln(int n)
984-{
985- return -100-n;
986-}
987-
988-#define MY_SEQ_INTTAIL 1
989-#define MY_SEQ_SPACES 2
990-
991- /* My charsets_list flags */
992-#define MY_CS_COMPILED 1 /* compiled-in sets */
993-#define MY_CS_CONFIG 2 /* sets that have a *.conf file */
994-#define MY_CS_INDEX 4 /* sets listed in the Index file */
995-#define MY_CS_LOADED 8 /* sets that are currently loaded */
996-#define MY_CS_BINSORT 16 /* if binary sort order */
997-#define MY_CS_PRIMARY 32 /* if primary collation */
998-#define MY_CS_STRNXFRM 64 /* if strnxfrm is used for sort */
999-#define MY_CS_UNICODE 128 /* is a charset is full unicode */
1000-#define MY_CS_READY 256 /* if a charset is initialized */
1001-#define MY_CS_AVAILABLE 512 /* If either compiled-in or loaded*/
1002-#define MY_CS_CSSORT 1024 /* if case sensitive sort order */
1003-#define MY_CS_HIDDEN 2048 /* don't display in SHOW */
1004-#define MY_CS_NONASCII 8192 /* if not ASCII-compatible */
1005-#define MY_CHARSET_UNDEFINED 0
1006-
1007-/* Flags for strxfrm */
1008-#define MY_STRXFRM_LEVEL1 0x00000001 /* for primary weights */
1009-#define MY_STRXFRM_LEVEL2 0x00000002 /* for secondary weights */
1010-#define MY_STRXFRM_LEVEL3 0x00000004 /* for tertiary weights */
1011-#define MY_STRXFRM_LEVEL4 0x00000008 /* fourth level weights */
1012-#define MY_STRXFRM_LEVEL5 0x00000010 /* fifth level weights */
1013-#define MY_STRXFRM_LEVEL6 0x00000020 /* sixth level weights */
1014-#define MY_STRXFRM_LEVEL_ALL 0x0000003F /* Bit OR for the above six */
1015-#define MY_STRXFRM_NLEVELS 6 /* Number of possible levels*/
1016-
1017-#define MY_STRXFRM_PAD_WITH_SPACE 0x00000040 /* if pad result with spaces */
1018-#define MY_STRXFRM_UNUSED_00000080 0x00000080 /* for future extensions */
1019-
1020-#define MY_STRXFRM_DESC_LEVEL1 0x00000100 /* if desc order for level1 */
1021-#define MY_STRXFRM_DESC_LEVEL2 0x00000200 /* if desc order for level2 */
1022-#define MY_STRXFRM_DESC_LEVEL3 0x00000300 /* if desc order for level3 */
1023-#define MY_STRXFRM_DESC_LEVEL4 0x00000800 /* if desc order for level4 */
1024-#define MY_STRXFRM_DESC_LEVEL5 0x00001000 /* if desc order for level5 */
1025-#define MY_STRXFRM_DESC_LEVEL6 0x00002000 /* if desc order for level6 */
1026-#define MY_STRXFRM_DESC_SHIFT 8
1027-
1028-#define MY_STRXFRM_UNUSED_00004000 0x00004000 /* for future extensions */
1029-#define MY_STRXFRM_UNUSED_00008000 0x00008000 /* for future extensions */
1030-
1031-#define MY_STRXFRM_REVERSE_LEVEL1 0x00010000 /* if reverse order for level1 */
1032-#define MY_STRXFRM_REVERSE_LEVEL2 0x00020000 /* if reverse order for level2 */
1033-#define MY_STRXFRM_REVERSE_LEVEL3 0x00040000 /* if reverse order for level3 */
1034-#define MY_STRXFRM_REVERSE_LEVEL4 0x00080000 /* if reverse order for level4 */
1035-#define MY_STRXFRM_REVERSE_LEVEL5 0x00100000 /* if reverse order for level5 */
1036-#define MY_STRXFRM_REVERSE_LEVEL6 0x00200000 /* if reverse order for level6 */
1037-#define MY_STRXFRM_REVERSE_SHIFT 16
1038-
1039-
1040-typedef struct my_uni_idx_st
1041-{
1042- uint16_t from;
1043- uint16_t to;
1044- unsigned char *tab;
1045-} MY_UNI_IDX;
1046-
1047-typedef struct
1048-{
1049- uint32_t beg;
1050- uint32_t end;
1051- uint32_t mb_len;
1052-} my_match_t;
1053-
1054-enum my_lex_states
1055-{
1056- MY_LEX_START, MY_LEX_CHAR, MY_LEX_IDENT,
1057- MY_LEX_IDENT_SEP, MY_LEX_IDENT_START,
1058- MY_LEX_REAL, MY_LEX_HEX_NUMBER, MY_LEX_BIN_NUMBER,
1059- MY_LEX_CMP_OP, MY_LEX_LONG_CMP_OP, MY_LEX_STRING, MY_LEX_COMMENT, MY_LEX_END,
1060- MY_LEX_OPERATOR_OR_IDENT, MY_LEX_NUMBER_IDENT, MY_LEX_INT_OR_REAL,
1061- MY_LEX_REAL_OR_POINT, MY_LEX_BOOL, MY_LEX_EOL, MY_LEX_ESCAPE,
1062- MY_LEX_LONG_COMMENT, MY_LEX_END_LONG_COMMENT, MY_LEX_SEMICOLON,
1063- MY_LEX_SET_VAR, MY_LEX_USER_END, MY_LEX_HOSTNAME, MY_LEX_SKIP,
1064- MY_LEX_USER_VARIABLE_DELIMITER, MY_LEX_SYSTEM_VAR,
1065- MY_LEX_IDENT_OR_KEYWORD,
1066- MY_LEX_IDENT_OR_HEX, MY_LEX_IDENT_OR_BIN,
1067- MY_LEX_STRING_OR_DELIMITER
1068-};
1069-
1070-struct charset_info_st;
1071-
1072-
1073-/* See strings/charset_info_st.txt for information about this structure */
1074-typedef struct my_collation_handler_st
1075-{
1076- bool (*init)(struct charset_info_st *, unsigned char *(*alloc)(size_t));
1077- /* Collation routines */
1078- int (*strnncoll)(const struct charset_info_st * const,
1079- const unsigned char *, size_t, const unsigned char *, size_t, bool);
1080- int (*strnncollsp)(const struct charset_info_st * const,
1081- const unsigned char *, size_t, const unsigned char *, size_t,
1082- bool diff_if_only_endspace_difference);
1083- size_t (*strnxfrm)(const struct charset_info_st * const,
1084- unsigned char *dst, size_t dstlen, uint32_t nweights,
1085- const unsigned char *src, size_t srclen, uint32_t flags);
1086- size_t (*strnxfrmlen)(const struct charset_info_st * const, size_t);
1087- bool (*like_range)(const struct charset_info_st * const,
1088- const char *s, size_t s_length,
1089- char escape, char w_one, char w_many,
1090- size_t res_length,
1091- char *min_str, char *max_str,
1092- size_t *min_len, size_t *max_len);
1093- int (*wildcmp)(const struct charset_info_st * const,
1094- const char *str,const char *str_end,
1095- const char *wildstr,const char *wildend,
1096- int escape,int w_one, int w_many);
1097-
1098- int (*strcasecmp)(const struct charset_info_st * const, const char *, const char *);
1099-
1100- uint32_t (*instr)(const struct charset_info_st * const,
1101- const char *b, size_t b_length,
1102- const char *s, size_t s_length,
1103- my_match_t *match, uint32_t nmatch);
1104-
1105- /* Hash calculation */
1106- void (*hash_sort)(const struct charset_info_st *cs, const unsigned char *key, size_t len,
1107- uint32_t *nr1, uint32_t *nr2);
1108- bool (*propagate)(const struct charset_info_st *cs, const unsigned char *str, size_t len);
1109-} MY_COLLATION_HANDLER;
1110-
1111-extern MY_COLLATION_HANDLER my_collation_mb_bin_handler;
1112-extern MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler;
1113-extern MY_COLLATION_HANDLER my_collation_ucs2_uca_handler;
1114-
1115-/* Some typedef to make it easy for C++ to make function pointers */
1116-typedef int (*my_charset_conv_mb_wc)(const struct charset_info_st * const, my_wc_t *,
1117- const unsigned char *, const unsigned char *);
1118-typedef int (*my_charset_conv_wc_mb)(const struct charset_info_st * const, my_wc_t,
1119- unsigned char *, unsigned char *);
1120-typedef size_t (*my_charset_conv_case)(const struct charset_info_st * const,
1121- char *, size_t, char *, size_t);
1122-
1123-
1124-/* See strings/charset_info_st.txt about information on this structure */
1125-typedef struct my_charset_handler_st
1126-{
1127- bool (*init)(struct charset_info_st *, unsigned char *(*alloc)(size_t));
1128- /* Multibyte routines */
1129- uint32_t (*ismbchar)(const struct charset_info_st * const, const char *, const char *);
1130- uint32_t (*mbcharlen)(const struct charset_info_st * const, uint32_t c);
1131- size_t (*numchars)(const struct charset_info_st * const, const char *b, const char *e);
1132- size_t (*charpos)(const struct charset_info_st * const, const char *b, const char *e,
1133- size_t pos);
1134- size_t (*well_formed_len)(const struct charset_info_st * const,
1135- const char *b,const char *e,
1136- size_t nchars, int *error);
1137- size_t (*lengthsp)(const struct charset_info_st * const, const char *ptr, size_t length);
1138- size_t (*numcells)(const struct charset_info_st * const, const char *b, const char *e);
1139-
1140- /* Unicode conversion */
1141- my_charset_conv_mb_wc mb_wc;
1142- my_charset_conv_wc_mb wc_mb;
1143-
1144- /* CTYPE scanner */
1145- int (*ctype)(const struct charset_info_st *cs, int *ctype,
1146- const unsigned char *s, const unsigned char *e);
1147-
1148- /* Functions for case and sort conversion */
1149- size_t (*caseup_str)(const struct charset_info_st * const, char *);
1150- size_t (*casedn_str)(const struct charset_info_st * const, char *);
1151-
1152- my_charset_conv_case caseup;
1153- my_charset_conv_case casedn;
1154-
1155- /* Charset dependant snprintf() */
1156- size_t (*snprintf)(const struct charset_info_st * const, char *to, size_t n,
1157- const char *fmt,
1158- ...)
1159-#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
1160- __attribute__((format(printf, 4, 5)))
1161-#endif
1162- ;
1163- size_t (*long10_to_str)(const struct charset_info_st * const, char *to, size_t n,
1164- int radix, long int val);
1165- size_t (*int64_t10_to_str)(const struct charset_info_st * const, char *to, size_t n,
1166- int radix, int64_t val);
1167-
1168- void (*fill)(const struct charset_info_st * const, char *to, size_t len, int fill);
1169-
1170- /* String-to-number conversion routines */
1171- long (*strntol)(const struct charset_info_st * const, const char *s, size_t l,
1172- int base, char **e, int *err);
1173- unsigned long (*strntoul)(const struct charset_info_st * const, const char *s, size_t l,
1174- int base, char **e, int *err);
1175- int64_t (*strntoll)(const struct charset_info_st * const, const char *s, size_t l,
1176- int base, char **e, int *err);
1177- uint64_t (*strntoull)(const struct charset_info_st * const, const char *s, size_t l,
1178- int base, char **e, int *err);
1179- double (*strntod)(const struct charset_info_st * const, char *s, size_t l, char **e,
1180- int *err);
1181- int64_t (*strtoll10)(const struct charset_info_st *cs,
1182- const char *nptr, char **endptr, int *error);
1183- uint64_t (*strntoull10rnd)(const struct charset_info_st *cs,
1184- const char *str, size_t length,
1185- int unsigned_fl,
1186- char **endptr, int *error);
1187- size_t (*scan)(const struct charset_info_st * const, const char *b, const char *e,
1188- int sq);
1189-} MY_CHARSET_HANDLER;
1190-
1191-extern MY_CHARSET_HANDLER my_charset_8bit_handler;
1192-extern MY_CHARSET_HANDLER my_charset_ucs2_handler;
1193-
1194-
1195-/* See strings/charset_info_st.txt about information on this structure */
1196-struct charset_info_st
1197-{
1198- uint32_t number;
1199- uint32_t primary_number;
1200- uint32_t binary_number;
1201- uint32_t state;
1202- const char *csname;
1203- const char *name;
1204- const char *comment;
1205- const char *tailoring;
1206- unsigned char *ctype;
1207- unsigned char *to_lower;
1208- unsigned char *to_upper;
1209- unsigned char *sort_order;
1210- uint16_t *contractions;
1211- uint16_t **sort_order_big;
1212- uint16_t *tab_to_uni;
1213- MY_UNI_IDX *tab_from_uni;
1214- MY_UNICASE_INFO **caseinfo;
1215- unsigned char *state_map;
1216- unsigned char *ident_map;
1217- uint32_t strxfrm_multiply;
1218- unsigned char caseup_multiply;
1219- unsigned char casedn_multiply;
1220- uint32_t mbminlen;
1221- uint32_t mbmaxlen;
1222- uint16_t min_sort_char;
1223- uint16_t max_sort_char; /* For LIKE optimization */
1224- unsigned char pad_char;
1225- bool escape_with_backslash_is_dangerous;
1226- unsigned char levels_for_compare;
1227- unsigned char levels_for_order;
1228-
1229- MY_CHARSET_HANDLER *cset;
1230- MY_COLLATION_HANDLER *coll;
1231-
1232-};
1233-
1234-#define ILLEGAL_CHARSET_INFO_NUMBER (UINT32_MAX)
1235-
1236-
1237-extern DRIZZLED_API charset_info_st my_charset_bin;
1238-extern DRIZZLED_API charset_info_st my_charset_utf8mb4_bin;
1239-extern DRIZZLED_API charset_info_st my_charset_utf8mb4_general_ci;
1240-extern DRIZZLED_API charset_info_st my_charset_utf8mb4_unicode_ci;
1241-
1242-#define MY_UTF8MB4 "utf8"
1243-#define my_charset_utf8_general_ci ::drizzled::my_charset_utf8mb4_general_ci
1244-#define my_charset_utf8_bin ::drizzled::my_charset_utf8mb4_bin
1245-
1246-
1247-/* declarations for simple charsets */
1248-size_t my_strnxfrmlen_simple(const charset_info_st * const, size_t);
1249-
1250-extern int my_strnncollsp_simple(const charset_info_st * const, const unsigned char *, size_t,
1251- const unsigned char *, size_t,
1252- bool diff_if_only_endspace_difference);
1253-
1254-extern size_t my_lengthsp_8bit(const charset_info_st * const cs, const char *ptr, size_t length);
1255-
1256-extern uint32_t my_instr_simple(const charset_info_st * const,
1257- const char *b, size_t b_length,
1258- const char *s, size_t s_length,
1259- my_match_t *match, uint32_t nmatch);
1260-
1261-
1262-/* Functions for 8bit */
1263-int my_mb_ctype_8bit(const charset_info_st * const,int *, const unsigned char *,const unsigned char *);
1264-int my_mb_ctype_mb(const charset_info_st * const,int *, const unsigned char *,const unsigned char *);
1265-
1266-size_t my_scan_8bit(const charset_info_st * const cs, const char *b, const char *e, int sq);
1267-
1268-size_t my_snprintf_8bit(const charset_info_st * const, char *to, size_t n,
1269- const char *fmt, ...)
1270- __attribute__((format(printf, 4, 5)));
1271-
1272-long my_strntol_8bit(const charset_info_st * const, const char *s, size_t l, int base,
1273- char **e, int *err);
1274-unsigned long my_strntoul_8bit(const charset_info_st * const, const char *s, size_t l, int base,
1275- char **e, int *err);
1276-int64_t my_strntoll_8bit(const charset_info_st * const, const char *s, size_t l, int base,
1277- char **e, int *err);
1278-uint64_t my_strntoull_8bit(const charset_info_st * const, const char *s, size_t l, int base,
1279- char **e, int *err);
1280-double my_strntod_8bit(const charset_info_st * const, char *s, size_t l,char **e,
1281- int *err);
1282-size_t my_long10_to_str_8bit(const charset_info_st * const, char *to, size_t l, int radix,
1283- long int val);
1284-size_t my_int64_t10_to_str_8bit(const charset_info_st * const, char *to, size_t l, int radix,
1285- int64_t val);
1286-
1287-int64_t my_strtoll10_8bit(const charset_info_st * const cs,
1288- const char *nptr, char **endptr, int *error);
1289-int64_t my_strtoll10_ucs2(charset_info_st *cs,
1290- const char *nptr, char **endptr, int *error);
1291-
1292-uint64_t my_strntoull10rnd_8bit(const charset_info_st * const cs,
1293- const char *str, size_t length, int
1294- unsigned_fl, char **endptr, int *error);
1295-uint64_t my_strntoull10rnd_ucs2(charset_info_st *cs,
1296- const char *str, size_t length,
1297- int unsigned_fl, char **endptr, int *error);
1298-
1299-void my_fill_8bit(const charset_info_st * const cs, char* to, size_t l, int fill);
1300-
1301-bool my_like_range_simple(const charset_info_st * const cs,
1302- const char *ptr, size_t ptr_length,
1303- char escape, char w_one, char w_many,
1304- size_t res_length,
1305- char *min_str, char *max_str,
1306- size_t *min_length, size_t *max_length);
1307-
1308-bool my_like_range_mb(const charset_info_st * const cs,
1309- const char *ptr, size_t ptr_length,
1310- char escape, char w_one, char w_many,
1311- size_t res_length,
1312- char *min_str, char *max_str,
1313- size_t *min_length, size_t *max_length);
1314-
1315-bool my_like_range_ucs2(const charset_info_st * const cs,
1316- const char *ptr, size_t ptr_length,
1317- char escape, char w_one, char w_many,
1318- size_t res_length,
1319- char *min_str, char *max_str,
1320- size_t *min_length, size_t *max_length);
1321-
1322-bool my_like_range_utf16(const charset_info_st * const cs,
1323- const char *ptr, size_t ptr_length,
1324- char escape, char w_one, char w_many,
1325- size_t res_length,
1326- char *min_str, char *max_str,
1327- size_t *min_length, size_t *max_length);
1328-
1329-bool my_like_range_utf32(const charset_info_st * const cs,
1330- const char *ptr, size_t ptr_length,
1331- char escape, char w_one, char w_many,
1332- size_t res_length,
1333- char *min_str, char *max_str,
1334- size_t *min_length, size_t *max_length);
1335-
1336-
1337-int my_wildcmp_8bit(const charset_info_st * const,
1338- const char *str,const char *str_end,
1339- const char *wildstr,const char *wildend,
1340- int escape, int w_one, int w_many);
1341-
1342-int my_wildcmp_bin(const charset_info_st * const,
1343- const char *str,const char *str_end,
1344- const char *wildstr,const char *wildend,
1345- int escape, int w_one, int w_many);
1346-
1347-size_t my_numchars_8bit(const charset_info_st * const, const char *b, const char *e);
1348-size_t my_numcells_8bit(const charset_info_st * const, const char *b, const char *e);
1349-size_t my_charpos_8bit(const charset_info_st * const, const char *b, const char *e, size_t pos);
1350-size_t my_well_formed_len_8bit(const charset_info_st * const, const char *b, const char *e,
1351- size_t pos, int *error);
1352-typedef unsigned char *(*cs_alloc_func)(size_t);
1353-bool my_coll_init_simple(charset_info_st *cs, cs_alloc_func alloc);
1354-bool my_cset_init_8bit(charset_info_st *cs, cs_alloc_func alloc);
1355-uint32_t my_mbcharlen_8bit(const charset_info_st * const, uint32_t c);
1356-
1357-
1358-/* Functions for multibyte charsets */
1359-extern size_t my_caseup_str_mb(const charset_info_st * const, char *);
1360-extern size_t my_casedn_str_mb(const charset_info_st * const, char *);
1361-extern size_t my_caseup_mb(const charset_info_st * const, char *src, size_t srclen,
1362- char *dst, size_t dstlen);
1363-extern size_t my_casedn_mb(const charset_info_st * const, char *src, size_t srclen,
1364- char *dst, size_t dstlen);
1365-extern int my_strcasecmp_mb(const charset_info_st * const cs, const char *s, const char *t);
1366-
1367-int my_wildcmp_mb(const charset_info_st * const,
1368- const char *str,const char *str_end,
1369- const char *wildstr,const char *wildend,
1370- int escape, int w_one, int w_many);
1371-size_t my_numchars_mb(const charset_info_st * const, const char *b, const char *e);
1372-size_t my_numcells_mb(const charset_info_st * const, const char *b, const char *e);
1373-size_t my_charpos_mb(const charset_info_st * const, const char *b, const char *e, size_t pos);
1374-size_t my_well_formed_len_mb(const charset_info_st * const, const char *b, const char *e,
1375- size_t pos, int *error);
1376-uint32_t my_instr_mb(const charset_info_st * const,
1377- const char *b, size_t b_length,
1378- const char *s, size_t s_length,
1379- my_match_t *match, uint32_t nmatch);
1380-
1381-int my_strnncoll_mb_bin(const charset_info_st * const cs,
1382- const unsigned char *s, size_t slen,
1383- const unsigned char *t, size_t tlen,
1384- bool t_is_prefix);
1385-
1386-int my_strnncollsp_mb_bin(const charset_info_st * const cs,
1387- const unsigned char *a, size_t a_length,
1388- const unsigned char *b, size_t b_length,
1389- bool diff_if_only_endspace_difference);
1390-
1391-int my_wildcmp_mb_bin(const charset_info_st * const cs,
1392- const char *str,const char *str_end,
1393- const char *wildstr,const char *wildend,
1394- int escape, int w_one, int w_many);
1395-
1396-int my_strcasecmp_mb_bin(const charset_info_st * const, const char *s, const char *t);
1397-
1398-void my_hash_sort_mb_bin(const charset_info_st * const,
1399- const unsigned char *key, size_t len, uint32_t *nr1, uint32_t *nr2);
1400-
1401-size_t my_strnxfrm_mb(const charset_info_st * const,
1402- unsigned char *dst, size_t dstlen, uint32_t nweights,
1403- const unsigned char *src, size_t srclen, uint32_t flags);
1404-
1405-int my_wildcmp_unicode(const charset_info_st * const cs,
1406- const char *str, const char *str_end,
1407- const char *wildstr, const char *wildend,
1408- int escape, int w_one, int w_many,
1409- MY_UNICASE_INFO **weights);
1410-
1411-extern bool my_parse_charset_xml(const char *bug, size_t len,
1412- int (*add)(charset_info_st *cs));
1413-
1414-bool my_propagate_simple(const charset_info_st * const cs, const unsigned char *str, size_t len);
1415-bool my_propagate_complex(const charset_info_st * const cs, const unsigned char *str, size_t len);
1416-
1417-
1418-uint32_t my_strxfrm_flag_normalize(uint32_t flags, uint32_t nlevels);
1419-void my_strxfrm_desc_and_reverse(unsigned char *str, unsigned char *strend,
1420- uint32_t flags, uint32_t level);
1421-size_t my_strxfrm_pad_desc_and_reverse(const charset_info_st * const cs,
1422- unsigned char *str, unsigned char *frmend, unsigned char *strend,
1423- uint32_t nweights, uint32_t flags, uint32_t level);
1424-
1425-bool my_charset_is_ascii_compatible(const charset_info_st * const cs);
1426-
1427-/*
1428- Compare 0-terminated UTF8 strings.
1429-
1430- SYNOPSIS
1431- my_strcasecmp_utf8mb3()
1432- cs character set handler
1433- s First 0-terminated string to compare
1434- t Second 0-terminated string to compare
1435-
1436- IMPLEMENTATION
1437-
1438- RETURN
1439- - negative number if s < t
1440- - positive number if s > t
1441- - 0 is the strings are equal
1442-*/
1443-int
1444-my_wc_mb_filename(const charset_info_st * const,
1445- my_wc_t wc, unsigned char *s, unsigned char *e);
1446-
1447-int
1448-my_mb_wc_filename(const charset_info_st * const,
1449- my_wc_t *pwc, const unsigned char *s, const unsigned char *e);
1450-
1451-
1452-unsigned int my_ismbchar_utf8mb4(const charset_info_st * const cs, const char *b, const char *e);
1453-unsigned int my_mbcharlen_utf8mb4(const charset_info_st * const, uint32_t c);
1454-
1455-size_t my_strnxfrmlen_utf8mb4(const charset_info_st * const, size_t len);
1456-size_t
1457-my_strnxfrm_utf8mb4(const charset_info_st * const cs,
1458- unsigned char *dst, size_t dstlen, uint32_t nweights,
1459- const unsigned char *src, size_t srclen, uint32_t flags);
1460-
1461-int
1462-my_wildcmp_utf8mb4(const charset_info_st * const cs,
1463- const char *str, const char *strend,
1464- const char *wildstr, const char *wildend,
1465- int escape, int w_one, int w_many);
1466-int
1467-my_strnncollsp_utf8mb4(const charset_info_st * const cs,
1468- const unsigned char *s, size_t slen,
1469- const unsigned char *t, size_t tlen,
1470- bool diff_if_only_endspace_difference);
1471-int my_strcasecmp_utf8mb4(const charset_info_st * const cs,
1472- const char *s, const char *t);
1473-
1474-int
1475-my_strnncoll_utf8mb4(const charset_info_st * const cs,
1476- const unsigned char *s, size_t slen,
1477- const unsigned char *t, size_t tlen,
1478- bool t_is_prefix);
1479-
1480-int
1481-my_mb_wc_utf8mb4(const charset_info_st * const cs,
1482- my_wc_t * pwc, const unsigned char *s, const unsigned char *e);
1483-
1484-int
1485-my_wc_mb_utf8mb4(const charset_info_st * const cs,
1486- my_wc_t wc, unsigned char *r, unsigned char *e);
1487-
1488-size_t my_caseup_str_utf8mb4(const charset_info_st * const cs, char *src);
1489-size_t my_casedn_str_utf8mb4(const charset_info_st * const cs, char *src);
1490-
1491-size_t
1492-my_caseup_utf8mb4(const charset_info_st * const cs, char *src, size_t srclen,
1493- char *dst, size_t dstlen);
1494-size_t
1495-my_casedn_utf8mb4(const charset_info_st * const cs,
1496- char *src, size_t srclen,
1497- char *dst, size_t dstlen);
1498-
1499-
1500-bool my_coll_init_uca(charset_info_st *cs, cs_alloc_func alloc);
1501-
1502-int my_strnncoll_any_uca(const charset_info_st * const cs,
1503- const unsigned char *s, size_t slen,
1504- const unsigned char *t, size_t tlen,
1505- bool t_is_prefix);
1506-
1507-int my_strnncollsp_any_uca(const charset_info_st * const cs,
1508- const unsigned char *s, size_t slen,
1509- const unsigned char *t, size_t tlen,
1510- bool diff_if_only_endspace_difference);
1511-
1512-void my_hash_sort_any_uca(const charset_info_st * const cs,
1513- const unsigned char *s, size_t slen,
1514- uint32_t *n1, uint32_t *n2);
1515-
1516-size_t my_strnxfrm_any_uca(const charset_info_st * const cs,
1517- unsigned char *dst, size_t dstlen, uint32_t nweights,
1518- const unsigned char *src, size_t srclen,
1519- uint32_t flags);
1520-
1521-int my_wildcmp_uca(const charset_info_st * const cs,
1522- const char *str,const char *str_end,
1523- const char *wildstr,const char *wildend,
1524- int escape, int w_one, int w_many);
1525-
1526-int my_strnncoll_8bit_bin(const charset_info_st * const,
1527- const unsigned char *s, size_t slen,
1528- const unsigned char *t, size_t tlen,
1529- bool t_is_prefix);
1530-int my_strnncollsp_8bit_bin(const charset_info_st * const,
1531- const unsigned char *a, size_t a_length,
1532- const unsigned char *b, size_t b_length,
1533- bool diff_if_only_endspace_difference);
1534-size_t my_case_str_bin(const charset_info_st * const, char *);
1535-size_t my_case_bin(const charset_info_st * const, char *,
1536- size_t srclen, char *, size_t);
1537-int my_strcasecmp_bin(const charset_info_st * const,
1538- const char *s, const char *t);
1539-size_t
1540-my_strnxfrm_8bit_bin(const charset_info_st * const cs,
1541- unsigned char * dst, size_t dstlen, uint32_t nweights,
1542- const unsigned char *src, size_t srclen, uint32_t flags);
1543-uint32_t my_instr_bin(const charset_info_st * const,
1544- const char *b, size_t b_length,
1545- const char *s, size_t s_length,
1546- my_match_t *match, uint32_t nmatch);
1547-size_t my_lengthsp_binary(const charset_info_st * const,
1548- const char *, size_t length);
1549-int my_mb_wc_bin(const charset_info_st * const,
1550- my_wc_t *wc, const unsigned char *str,
1551- const unsigned char *end);
1552-int my_wc_mb_bin(const charset_info_st * const, my_wc_t wc,
1553- unsigned char *str, unsigned char *end);
1554-void my_hash_sort_8bit_bin(const charset_info_st * const,
1555- const unsigned char *key, size_t len,
1556- uint32_t *nr1, uint32_t *nr2);
1557-int my_strnncoll_binary(const charset_info_st * const,
1558- const unsigned char *s, size_t slen,
1559- const unsigned char *t, size_t tlen,
1560- bool t_is_prefix);
1561-int my_strnncollsp_binary(const charset_info_st * const cs,
1562- const unsigned char *s, size_t slen,
1563- const unsigned char *t, size_t tlen,
1564- bool);
1565-
1566-
1567-#define _MY_U 01 /* Upper case */
1568-#define _MY_L 02 /* Lower case */
1569-#define _MY_NMR 04 /* Numeral (digit) */
1570-#define _MY_SPC 010 /* Spacing character */
1571-#define _MY_PNT 020 /* Punctuation */
1572-#define _MY_CTR 040 /* Control character */
1573-#define _MY_B 0100 /* Blank */
1574-#define _MY_X 0200 /* heXadecimal digit */
1575-
1576-
1577-inline static bool my_isascii(char c)
1578-{
1579- return (!(c & ~0177));
1580-}
1581-
1582-inline static char my_toascii(char c)
1583-{
1584- return (c & 0177);
1585-}
1586-
1587-inline static char my_tocntrl(char c)
1588-{
1589- return (c & 31);
1590-}
1591-
1592-inline static char my_toprint(char c)
1593-{
1594- return (c | 64);
1595-}
1596-
1597-inline static char my_toupper(const charset_info_st *s, unsigned char c)
1598-{
1599- return s->to_upper[c];
1600-}
1601-
1602-inline static char my_tolower(const charset_info_st *s, unsigned char c)
1603-{
1604- return s->to_lower[c];
1605-}
1606-
1607-inline static bool my_isalpha(const charset_info_st *s, unsigned char c)
1608-{
1609- return (s->ctype+1)[c] & (_MY_U | _MY_L);
1610-}
1611-
1612-inline static bool my_isupper(const charset_info_st *s, unsigned char c)
1613-{
1614- return (s->ctype+1)[c] & _MY_U;
1615-}
1616-
1617-inline static bool my_islower(const charset_info_st *s, unsigned char c)
1618-{
1619- return (s->ctype+1)[c] & _MY_L;
1620-}
1621-
1622-inline static bool my_isdigit(const charset_info_st *s, unsigned char c)
1623-{
1624- return (s->ctype+1)[c] & _MY_NMR;
1625-}
1626-
1627-inline static bool my_isxdigit(const charset_info_st *s, unsigned char c)
1628-{
1629- return (s->ctype+1)[c] & _MY_X;
1630-}
1631-
1632-inline static bool my_isalnum(const charset_info_st *s, unsigned char c)
1633-{
1634- return (s->ctype+1)[c] & (_MY_U | _MY_L | _MY_NMR);
1635-}
1636-
1637-inline static bool my_isspace(const charset_info_st *s, unsigned char c)
1638-{
1639- return (s->ctype+1)[c] & _MY_SPC;
1640-}
1641-
1642-inline static bool my_ispunct(const charset_info_st *s, unsigned char c)
1643-{
1644- return (s->ctype+1)[c] & _MY_PNT;
1645-}
1646-
1647-inline static bool my_isprint(const charset_info_st *s, unsigned char c)
1648-{
1649- return (s->ctype+1)[c] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR | _MY_B);
1650-}
1651-
1652-inline static bool my_isgraph(const charset_info_st *s, unsigned char c)
1653-{
1654- return (s->ctype+1)[c] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR);
1655-}
1656-
1657-inline static bool my_iscntrl(const charset_info_st *s, unsigned char c)
1658-{
1659- return (s->ctype+1)[c] & _MY_CTR;
1660-}
1661-
1662-/* Some macros that should be cleaned up a little */
1663-inline static bool my_isvar(const charset_info_st *s, char c)
1664-{
1665- return my_isalnum(s,c) || (c) == '_';
1666-}
1667-
1668-inline static bool my_isvar_start(const charset_info_st *s, char c)
1669-{
1670- return my_isalpha(s,c) || (c) == '_';
1671-}
1672-
1673-inline static bool my_binary_compare(const charset_info_st *s)
1674-{
1675- return s->state & MY_CS_BINSORT;
1676-}
1677-
1678-inline static bool use_strnxfrm(const charset_info_st *s)
1679-{
1680- return s->state & MY_CS_STRNXFRM;
1681-}
1682-
1683-inline static size_t my_strnxfrm(const charset_info_st *cs,
1684- unsigned char *dst,
1685- const size_t dstlen,
1686- const unsigned char *src,
1687- const uint32_t srclen)
1688-{
1689- return (cs->coll->strnxfrm(cs, dst, dstlen, dstlen, src, srclen, MY_STRXFRM_PAD_WITH_SPACE));
1690-}
1691-
1692-inline static int my_strnncoll(const charset_info_st *cs,
1693- const unsigned char *s,
1694- const size_t slen,
1695- const unsigned char *t,
1696- const size_t tlen)
1697-{
1698- return (cs->coll->strnncoll(cs, s, slen, t, tlen, 0));
1699-}
1700-
1701-inline static bool my_like_range(const charset_info_st *cs,
1702- const char *ptr, const size_t ptrlen,
1703- const char escape,
1704- const char w_one,
1705- const char w_many,
1706- const size_t reslen,
1707- char *minstr, char *maxstr,
1708- size_t *minlen, size_t *maxlen)
1709-{
1710- return (cs->coll->like_range(cs, ptr, ptrlen, escape, w_one, w_many, reslen,
1711- minstr, maxstr, minlen, maxlen));
1712-}
1713-
1714-inline static int my_wildcmp(const charset_info_st *cs,
1715- const char *str, const char *strend,
1716- const char *w_str, const char *w_strend,
1717- const int escape,
1718- const int w_one, const int w_many)
1719-{
1720- return (cs->coll->wildcmp(cs, str, strend, w_str, w_strend, escape, w_one, w_many));
1721-}
1722-
1723-inline static int my_strcasecmp(const charset_info_st *cs, const char *s, const char *t)
1724-{
1725- return (cs->coll->strcasecmp(cs, s, t));
1726-}
1727-
1728-template <typename CHAR_T>
1729-inline static size_t my_charpos(const charset_info_st *cs,
1730- const CHAR_T *b, const CHAR_T* e, size_t num)
1731-{
1732- return cs->cset->charpos(cs, reinterpret_cast<const char*>(b), reinterpret_cast<const char*>(e), num);
1733-}
1734-
1735-inline static bool use_mb(const charset_info_st *cs)
1736-{
1737- return cs->cset->ismbchar != NULL;
1738-}
1739-
1740-inline static unsigned int my_ismbchar(const charset_info_st *cs, const char *a, const char *b)
1741-{
1742- return cs->cset->ismbchar(cs, a, b);
1743-}
1744-
1745-inline static unsigned int my_mbcharlen(const charset_info_st *cs, uint32_t c)
1746-{
1747- return cs->cset->mbcharlen(cs, c);
1748-}
1749-
1750-
1751-inline static size_t my_caseup_str(const charset_info_st *cs, char *src)
1752-{
1753- return cs->cset->caseup_str(cs, src);
1754-}
1755-
1756-inline static size_t my_casedn_str(const charset_info_st *cs, char *src)
1757-{
1758- return cs->cset->casedn_str(cs, src);
1759-}
1760-
1761-inline static long my_strntol(const charset_info_st *cs,
1762- const char* s, const size_t l, const int base, char **e, int *err)
1763-{
1764- return (cs->cset->strntol(cs, s, l, base, e, err));
1765-}
1766-
1767-inline static unsigned long my_strntoul(const charset_info_st *cs,
1768- const char* s, const size_t l, const int base,
1769- char **e, int *err)
1770-{
1771- return (cs->cset->strntoul(cs, s, l, base, e, err));
1772-}
1773-
1774-inline static int64_t my_strntoll(const charset_info_st *cs,
1775- const char* s, const size_t l, const int base, char **e, int *err)
1776-{
1777- return (cs->cset->strntoll(cs, s, l, base, e, err));
1778-}
1779-
1780-inline static int64_t my_strntoull(const charset_info_st *cs,
1781- const char* s, const size_t l, const int base,
1782- char **e, int *err)
1783-{
1784- return (cs->cset->strntoull(cs, s, l, base, e, err));
1785-}
1786-
1787-
1788-inline static double my_strntod(const charset_info_st *cs,
1789- char* s, const size_t l, char **e, int *err)
1790-{
1791- return (cs->cset->strntod(cs, s, l, e, err));
1792-}
1793-
1794-int make_escape_code(const charset_info_st * const cs, const char *escape);
1795-
1796-} /* namespace drizzled */
1797-
1798
1799=== modified file 'drizzled/ctype-bin.cc'
1800--- drizzled/ctype-bin.cc 2011-04-16 12:24:04 +0000
1801+++ drizzled/ctype-bin.cc 2011-04-20 22:33:33 +0000
1802@@ -21,7 +21,7 @@
1803 #include <config.h>
1804 #include <drizzled/definitions.h>
1805 #include <drizzled/internal/m_string.h>
1806-#include <drizzled/charset_info.h>
1807+#include <drizzled/charset.h>
1808
1809 #include <algorithm>
1810
1811
1812=== modified file 'drizzled/ctype-mb.cc'
1813--- drizzled/ctype-mb.cc 2011-03-28 02:46:21 +0000
1814+++ drizzled/ctype-mb.cc 2011-04-20 22:33:33 +0000
1815@@ -16,7 +16,7 @@
1816 #include <config.h>
1817
1818 #include <drizzled/internal/m_string.h>
1819-#include <drizzled/charset_info.h>
1820+#include <drizzled/charset.h>
1821
1822 #include <algorithm>
1823
1824
1825=== modified file 'drizzled/ctype-simple.cc'
1826--- drizzled/ctype-simple.cc 2011-03-28 02:46:21 +0000
1827+++ drizzled/ctype-simple.cc 2011-04-20 22:33:33 +0000
1828@@ -16,7 +16,7 @@
1829 #include <config.h>
1830
1831 #include <drizzled/internal/m_string.h>
1832-#include <drizzled/charset_info.h>
1833+#include <drizzled/charset.h>
1834 #include <cerrno>
1835 #include <cstdio>
1836 #include <cstdlib>
1837
1838=== modified file 'drizzled/ctype-uca.cc'
1839--- drizzled/ctype-uca.cc 2011-03-28 02:46:21 +0000
1840+++ drizzled/ctype-uca.cc 2011-04-20 22:33:33 +0000
1841@@ -33,7 +33,7 @@
1842
1843
1844 #include <config.h>
1845-#include <drizzled/charset_info.h>
1846+#include <drizzled/charset.h>
1847 #include <drizzled/internal/m_string.h>
1848 #include <stdio.h>
1849
1850
1851=== modified file 'drizzled/ctype-uni.cc'
1852--- drizzled/ctype-uni.cc 2011-02-17 00:14:13 +0000
1853+++ drizzled/ctype-uni.cc 2011-04-20 22:33:33 +0000
1854@@ -15,7 +15,7 @@
1855
1856 #include <config.h>
1857 #include <cstddef>
1858-#include <drizzled/charset_info.h>
1859+#include <drizzled/charset.h>
1860
1861 namespace drizzled
1862 {
1863
1864=== modified file 'drizzled/ctype-utf8.cc'
1865--- drizzled/ctype-utf8.cc 2011-03-28 02:46:21 +0000
1866+++ drizzled/ctype-utf8.cc 2011-04-20 22:33:33 +0000
1867@@ -21,7 +21,7 @@
1868 #include <config.h>
1869
1870 #include <drizzled/internal/m_string.h>
1871-#include <drizzled/charset_info.h>
1872+#include <drizzled/charset.h>
1873 #include <errno.h>
1874
1875 #include <algorithm>
1876
1877=== modified file 'drizzled/ctype.cc'
1878--- drizzled/ctype.cc 2011-03-28 02:46:21 +0000
1879+++ drizzled/ctype.cc 2011-04-20 22:33:33 +0000
1880@@ -15,7 +15,7 @@
1881
1882 #include <config.h>
1883 #include <drizzled/internal/m_string.h>
1884-#include <drizzled/charset_info.h>
1885+#include <drizzled/charset.h>
1886
1887 namespace drizzled
1888 {
1889
1890=== modified file 'drizzled/dtcollation.cc'
1891--- drizzled/dtcollation.cc 2011-03-28 02:46:21 +0000
1892+++ drizzled/dtcollation.cc 2011-04-20 22:33:33 +0000
1893@@ -22,7 +22,6 @@
1894
1895 #include <drizzled/definitions.h>
1896 #include <drizzled/internal/my_sys.h>
1897-#include <drizzled/charset_info.h>
1898 #include <drizzled/error.h>
1899 #include <drizzled/function/str/conv_charset.h>
1900 #include <drizzled/session.h>
1901
1902=== modified file 'drizzled/field.h'
1903--- drizzled/field.h 2011-03-29 12:04:36 +0000
1904+++ drizzled/field.h 2011-04-20 22:33:33 +0000
1905@@ -32,9 +32,9 @@
1906 #include <drizzled/key_map.h>
1907 #include <drizzled/sql_list.h>
1908 #include <drizzled/structs.h>
1909-#include <drizzled/charset_info.h>
1910+#include <drizzled/charset.h>
1911 #include <drizzled/item_result.h>
1912-#include <drizzled/charset_info.h>
1913+#include <drizzled/charset.h>
1914
1915 #include <string>
1916 #include <vector>
1917
1918=== modified file 'drizzled/field/blob.h'
1919--- drizzled/field/blob.h 2011-03-28 02:46:21 +0000
1920+++ drizzled/field/blob.h 2011-04-20 22:33:33 +0000
1921@@ -22,7 +22,7 @@
1922
1923 #include <drizzled/field/str.h>
1924
1925-#include <drizzled/global_charset_info.h>
1926+#include <drizzled/charset.h>
1927
1928 #include <string>
1929
1930
1931=== modified file 'drizzled/function/cast/boolean.h'
1932--- drizzled/function/cast/boolean.h 2011-03-14 05:40:28 +0000
1933+++ drizzled/function/cast/boolean.h 2011-04-20 22:33:33 +0000
1934@@ -20,7 +20,7 @@
1935
1936 #pragma once
1937
1938-#include <drizzled/charset_info.h>
1939+#include <drizzled/charset.h>
1940 #include <drizzled/function/str/strfunc.h>
1941
1942 namespace drizzled {
1943
1944=== modified file 'drizzled/function/cast/signed.cc'
1945--- drizzled/function/cast/signed.cc 2011-03-03 08:29:06 +0000
1946+++ drizzled/function/cast/signed.cc 2011-04-20 22:33:33 +0000
1947@@ -20,7 +20,7 @@
1948
1949 #include <config.h>
1950
1951-#include <drizzled/charset_info.h>
1952+#include <drizzled/charset.h>
1953 #include <drizzled/error.h>
1954 #include <drizzled/function/cast/signed.h>
1955 #include <drizzled/lex_string.h>
1956
1957=== modified file 'drizzled/function/cast/unsigned.cc'
1958--- drizzled/function/cast/unsigned.cc 2011-03-03 08:29:06 +0000
1959+++ drizzled/function/cast/unsigned.cc 2011-04-20 22:33:33 +0000
1960@@ -20,7 +20,7 @@
1961
1962 #include <config.h>
1963
1964-#include <drizzled/charset_info.h>
1965+#include <drizzled/charset.h>
1966 #include <drizzled/error.h>
1967 #include <drizzled/function/cast/unsigned.h>
1968 #include <drizzled/lex_string.h>
1969
1970=== modified file 'drizzled/function/find_in_set.cc'
1971--- drizzled/function/find_in_set.cc 2011-03-28 02:46:21 +0000
1972+++ drizzled/function/find_in_set.cc 2011-04-20 22:33:33 +0000
1973@@ -19,7 +19,7 @@
1974
1975 #include <config.h>
1976
1977-#include <drizzled/charset_info.h>
1978+#include <drizzled/charset.h>
1979 #include <drizzled/function/find_in_set.h>
1980
1981 /* Search after a string in a string of strings separated by ',' */
1982
1983=== modified file 'drizzled/function/func.h'
1984--- drizzled/function/func.h 2011-03-14 05:40:28 +0000
1985+++ drizzled/function/func.h 2011-04-20 22:33:33 +0000
1986@@ -23,7 +23,7 @@
1987
1988 /// TODO: Rename this file - func.h is stupid.
1989
1990-#include <drizzled/charset_info.h>
1991+#include <drizzled/charset.h>
1992 #include <drizzled/item.h>
1993 #include <drizzled/item/bin_string.h>
1994 #include <drizzled/lex_string.h>
1995
1996=== modified file 'drizzled/function/locate.cc'
1997--- drizzled/function/locate.cc 2011-03-03 08:29:06 +0000
1998+++ drizzled/function/locate.cc 2011-04-20 22:33:33 +0000
1999@@ -19,7 +19,7 @@
2000
2001 #include <config.h>
2002
2003-#include <drizzled/charset_info.h>
2004+#include <drizzled/charset.h>
2005 #include <drizzled/function/locate.h>
2006 #include <drizzled/lex_string.h>
2007
2008
2009=== modified file 'drizzled/function/math/int.cc'
2010--- drizzled/function/math/int.cc 2011-02-17 00:14:13 +0000
2011+++ drizzled/function/math/int.cc 2011-04-20 22:33:33 +0000
2012@@ -23,7 +23,7 @@
2013
2014 #include <drizzled/sql_string.h>
2015 #include <drizzled/function/math/int.h>
2016-#include <drizzled/charset_info.h>
2017+#include <drizzled/charset.h>
2018
2019 namespace drizzled
2020 {
2021
2022=== modified file 'drizzled/function/time/typecast.h'
2023--- drizzled/function/time/typecast.h 2011-03-28 02:46:21 +0000
2024+++ drizzled/function/time/typecast.h 2011-04-20 22:33:33 +0000
2025@@ -19,7 +19,7 @@
2026
2027 #pragma once
2028
2029-#include <drizzled/charset_info.h>
2030+#include <drizzled/charset.h>
2031 #include <drizzled/field.h>
2032 #include <drizzled/function/str/strfunc.h>
2033 #include <drizzled/temporal.h>
2034
2035=== removed file 'drizzled/global_charset_info.h'
2036--- drizzled/global_charset_info.h 2011-03-28 21:40:10 +0000
2037+++ drizzled/global_charset_info.h 1970-01-01 00:00:00 +0000
2038@@ -1,36 +0,0 @@
2039-/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2040- * vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
2041- *
2042- * Copyright (C) 2009 Sun Microsystems, Inc.
2043- *
2044- * This program is free software; you can redistribute it and/or modify
2045- * it under the terms of the GNU General Public License as published by
2046- * the Free Software Foundation; version 2 of the License.
2047- *
2048- * This program is distributed in the hope that it will be useful,
2049- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2050- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2051- * GNU General Public License for more details.
2052- *
2053- * You should have received a copy of the GNU General Public License
2054- * along with this program; if not, write to the Free Software
2055- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
2056- */
2057-
2058-
2059-#pragma once
2060-
2061-#include <drizzled/visibility.h>
2062-
2063-namespace drizzled {
2064-
2065-/*
2066- External variables
2067-*/
2068-extern DRIZZLED_API const charset_info_st *default_charset_info;
2069-extern DRIZZLED_API const charset_info_st *system_charset_info;
2070-extern const charset_info_st *files_charset_info;
2071-extern const charset_info_st *table_alias_charset;
2072-
2073-} /* namespace drizzled */
2074-
2075
2076=== modified file 'drizzled/identifier/catalog.cc'
2077--- drizzled/identifier/catalog.cc 2011-03-28 14:13:55 +0000
2078+++ drizzled/identifier/catalog.cc 2011-04-20 22:33:33 +0000
2079@@ -28,7 +28,7 @@
2080
2081 #include <drizzled/util/tablename_to_filename.h>
2082 #include <drizzled/util/backtrace.h>
2083-#include <drizzled/charset_info.h>
2084+#include <drizzled/charset.h>
2085
2086 #include <algorithm>
2087 #include <sstream>
2088
2089=== modified file 'drizzled/identifier/schema.cc'
2090--- drizzled/identifier/schema.cc 2011-03-29 09:53:56 +0000
2091+++ drizzled/identifier/schema.cc 2011-04-20 22:33:33 +0000
2092@@ -28,7 +28,7 @@
2093 #include <drizzled/catalog/local.h>
2094 #include <drizzled/util/tablename_to_filename.h>
2095 #include <drizzled/util/backtrace.h>
2096-#include <drizzled/charset_info.h>
2097+#include <drizzled/charset.h>
2098
2099 #include <algorithm>
2100 #include <sstream>
2101
2102=== modified file 'drizzled/include.am'
2103--- drizzled/include.am 2011-04-11 16:57:51 +0000
2104+++ drizzled/include.am 2011-04-20 22:33:33 +0000
2105@@ -58,7 +58,6 @@
2106 drizzled/catalog/instance.h \
2107 drizzled/catalog/local.h \
2108 drizzled/charset.h \
2109- drizzled/charset_info.h \
2110 drizzled/check_stack_overrun.h \
2111 drizzled/common.h \
2112 drizzled/common_fwd.h \
2113@@ -217,7 +216,6 @@
2114 drizzled/generator/table.h \
2115 drizzled/gettext.h \
2116 drizzled/global_buffer.h \
2117- drizzled/global_charset_info.h \
2118 drizzled/ha_data.h \
2119 drizzled/ha_statistics.h \
2120 drizzled/handler_structs.h \
2121
2122=== modified file 'drizzled/internal/my_access.cc'
2123--- drizzled/internal/my_access.cc 2011-03-18 06:14:52 +0000
2124+++ drizzled/internal/my_access.cc 2011-04-20 22:33:33 +0000
2125@@ -15,7 +15,7 @@
2126
2127 #include <config.h>
2128
2129-#include <drizzled/charset_info.h>
2130+#include <drizzled/charset.h>
2131 #include <drizzled/internal/my_sys.h>
2132 #include <drizzled/internal/m_string.h>
2133
2134
2135=== modified file 'drizzled/internal/my_init.cc'
2136--- drizzled/internal/my_init.cc 2011-04-18 16:12:36 +0000
2137+++ drizzled/internal/my_init.cc 2011-04-20 22:33:33 +0000
2138@@ -19,7 +19,6 @@
2139 #include "my_static.h"
2140 #include <drizzled/error.h>
2141 #include <drizzled/internal/m_string.h>
2142-#include <drizzled/charset_info.h>
2143 #include <drizzled/charset.h>
2144 #include <cstdio>
2145 #include <cstdlib>
2146
2147=== modified file 'drizzled/internal/my_sys.h'
2148--- drizzled/internal/my_sys.h 2011-03-28 14:13:55 +0000
2149+++ drizzled/internal/my_sys.h 2011-04-20 22:33:33 +0000
2150@@ -34,7 +34,7 @@
2151 #include <drizzled/definitions.h>
2152 #include <drizzled/internal/my_pthread.h>
2153
2154-#include <drizzled/charset_info.h> /* for charset_info_st */
2155+#include <drizzled/charset.h> /* for charset_info_st */
2156 #include <stdarg.h>
2157
2158 #ifndef errno /* did we already get it? */
2159
2160=== modified file 'drizzled/item.h'
2161--- drizzled/item.h 2011-03-28 21:40:10 +0000
2162+++ drizzled/item.h 2011-04-20 22:33:33 +0000
2163@@ -22,7 +22,7 @@
2164 #pragma once
2165
2166 #include <drizzled/dtcollation.h>
2167-#include <drizzled/global_charset_info.h>
2168+#include <drizzled/charset.h>
2169 #include <drizzled/item_result.h>
2170 #include <drizzled/memory/sql_alloc.h>
2171 #include <drizzled/sql_list.h>
2172
2173=== modified file 'drizzled/item/bin_string.h'
2174--- drizzled/item/bin_string.h 2011-03-14 05:40:28 +0000
2175+++ drizzled/item/bin_string.h 2011-04-20 22:33:33 +0000
2176@@ -19,7 +19,7 @@
2177
2178 #pragma once
2179
2180-#include <drizzled/charset_info.h>
2181+#include <drizzled/charset.h>
2182 #include <drizzled/item/hex_string.h>
2183
2184 #include <drizzled/visibility.h>
2185
2186=== modified file 'drizzled/item/copy_string.h'
2187--- drizzled/item/copy_string.h 2011-03-14 05:40:28 +0000
2188+++ drizzled/item/copy_string.h 2011-04-20 22:33:33 +0000
2189@@ -19,7 +19,7 @@
2190
2191 #pragma once
2192
2193-#include <drizzled/charset_info.h>
2194+#include <drizzled/charset.h>
2195 #include <drizzled/item/field.h>
2196 #include <drizzled/item/ident.h>
2197
2198
2199=== modified file 'drizzled/item/decimal.cc'
2200--- drizzled/item/decimal.cc 2011-03-28 02:46:21 +0000
2201+++ drizzled/item/decimal.cc 2011-04-20 22:33:33 +0000
2202@@ -19,7 +19,7 @@
2203
2204 #include <config.h>
2205
2206-#include <drizzled/charset_info.h>
2207+#include <drizzled/charset.h>
2208 #include <drizzled/field.h>
2209 #include <drizzled/item/decimal.h>
2210
2211
2212=== modified file 'drizzled/item/int.cc'
2213--- drizzled/item/int.cc 2011-03-03 08:29:06 +0000
2214+++ drizzled/item/int.cc 2011-04-20 22:33:33 +0000
2215@@ -19,7 +19,7 @@
2216
2217 #include <config.h>
2218
2219-#include <drizzled/charset_info.h>
2220+#include <drizzled/charset.h>
2221 #include <drizzled/field.h>
2222 #include <drizzled/internal/m_string.h>
2223 #include <drizzled/item/int.h>
2224
2225=== modified file 'drizzled/item/null.h'
2226--- drizzled/item/null.h 2011-03-28 02:46:21 +0000
2227+++ drizzled/item/null.h 2011-04-20 22:33:33 +0000
2228@@ -19,7 +19,7 @@
2229
2230 #pragma once
2231
2232-#include <drizzled/charset_info.h>
2233+#include <drizzled/charset.h>
2234 #include <drizzled/item/basic_constant.h>
2235
2236 namespace drizzled
2237
2238=== modified file 'drizzled/item/string.h'
2239--- drizzled/item/string.h 2011-03-28 02:46:21 +0000
2240+++ drizzled/item/string.h 2011-04-20 22:33:33 +0000
2241@@ -20,7 +20,7 @@
2242 #pragma once
2243
2244 #include <drizzled/item/basic_constant.h>
2245-#include <drizzled/charset_info.h>
2246+#include <drizzled/charset.h>
2247
2248 namespace drizzled
2249 {
2250
2251=== modified file 'drizzled/item/sum.h'
2252--- drizzled/item/sum.h 2011-03-29 10:48:07 +0000
2253+++ drizzled/item/sum.h 2011-04-20 22:33:33 +0000
2254@@ -26,7 +26,7 @@
2255 #include <drizzled/item.h>
2256 #include <drizzled/item/field.h>
2257 #include <drizzled/item/bin_string.h>
2258-#include <drizzled/charset_info.h>
2259+#include <drizzled/charset.h>
2260
2261 namespace drizzled {
2262
2263
2264=== modified file 'drizzled/item/uint.cc'
2265--- drizzled/item/uint.cc 2011-03-03 08:29:06 +0000
2266+++ drizzled/item/uint.cc 2011-04-20 22:33:33 +0000
2267@@ -19,7 +19,7 @@
2268
2269 #include <config.h>
2270
2271-#include <drizzled/charset_info.h>
2272+#include <drizzled/charset.h>
2273 #include <drizzled/item/uint.h>
2274
2275 namespace drizzled
2276
2277=== modified file 'drizzled/message/schema.cc'
2278--- drizzled/message/schema.cc 2011-03-23 23:44:48 +0000
2279+++ drizzled/message/schema.cc 2011-04-20 22:33:33 +0000
2280@@ -26,7 +26,7 @@
2281 #include <drizzled/show.h>
2282 #include <drizzled/message/schema.h>
2283 #include <drizzled/session.h>
2284-#include <drizzled/charset_info.h>
2285+#include <drizzled/charset.h>
2286
2287 #include <drizzled/catalog/local.h>
2288
2289
2290=== modified file 'drizzled/message/statement_transform.cc'
2291--- drizzled/message/statement_transform.cc 2011-04-04 21:37:55 +0000
2292+++ drizzled/message/statement_transform.cc 2011-04-20 22:33:33 +0000
2293@@ -34,8 +34,6 @@
2294 #include <boost/lexical_cast.hpp>
2295
2296 #include <drizzled/charset.h>
2297-#include <drizzled/charset_info.h>
2298-#include <drizzled/global_charset_info.h>
2299 #include <drizzled/message.h>
2300 #include <drizzled/message/statement_transform.h>
2301 #include <drizzled/message/transaction.pb.h>
2302
2303=== modified file 'drizzled/message/table.cc'
2304--- drizzled/message/table.cc 2011-03-23 23:52:54 +0000
2305+++ drizzled/message/table.cc 2011-04-20 22:33:33 +0000
2306@@ -21,8 +21,7 @@
2307
2308 #include <config.h>
2309 #include <drizzled/message/table.h>
2310-#include <drizzled/charset_info.h>
2311-#include <drizzled/global_charset_info.h>
2312+#include <drizzled/charset.h>
2313 #include <drizzled/catalog/local.h>
2314
2315 namespace drizzled {
2316
2317=== modified file 'drizzled/my_hash.cc'
2318--- drizzled/my_hash.cc 2011-04-16 12:24:04 +0000
2319+++ drizzled/my_hash.cc 2011-04-20 22:33:33 +0000
2320@@ -24,7 +24,6 @@
2321 #include <config.h>
2322 #include <drizzled/my_hash.h>
2323 #include <drizzled/charset.h>
2324-#include <drizzled/charset_info.h>
2325 #include <vector>
2326
2327 namespace drizzled {
2328
2329=== modified file 'drizzled/option.cc'
2330--- drizzled/option.cc 2011-04-13 22:53:17 +0000
2331+++ drizzled/option.cc 2011-04-20 22:33:33 +0000
2332@@ -15,7 +15,7 @@
2333
2334 #include <config.h>
2335 #include <drizzled/definitions.h>
2336-#include <drizzled/charset_info.h>
2337+#include <drizzled/charset.h>
2338 #include <drizzled/internal/my_sys.h>
2339 #include <drizzled/gettext.h>
2340
2341
2342=== modified file 'drizzled/parser.h'
2343--- drizzled/parser.h 2011-04-04 21:37:55 +0000
2344+++ drizzled/parser.h 2011-04-20 22:33:33 +0000
2345@@ -47,7 +47,6 @@
2346 #include <drizzled/function/time/timestamp_diff.h>
2347 #include <drizzled/function/time/typecast.h>
2348 #include <drizzled/function/time/year.h>
2349-#include <drizzled/global_charset_info.h>
2350 #include <drizzled/internal/m_string.h>
2351 #include <drizzled/item/boolean.h>
2352 #include <drizzled/item/cmpfunc.h>
2353
2354=== modified file 'drizzled/plugin/schema_engine.cc'
2355--- drizzled/plugin/schema_engine.cc 2011-04-13 10:38:28 +0000
2356+++ drizzled/plugin/schema_engine.cc 2011-04-20 22:33:33 +0000
2357@@ -21,7 +21,6 @@
2358
2359 #include <drizzled/session.h>
2360 #include <drizzled/sql_base.h>
2361-#include <drizzled/global_charset_info.h>
2362 #include <drizzled/charset.h>
2363 #include <drizzled/transaction_services.h>
2364 #include <drizzled/open_tables_state.h>
2365
2366=== modified file 'drizzled/plugin/storage_engine.cc'
2367--- drizzled/plugin/storage_engine.cc 2011-04-09 16:11:46 +0000
2368+++ drizzled/plugin/storage_engine.cc 2011-04-20 22:33:33 +0000
2369@@ -45,7 +45,6 @@
2370 #include <drizzled/errmsg_print.h>
2371 #include <drizzled/xid.h>
2372 #include <drizzled/sql_table.h>
2373-#include <drizzled/global_charset_info.h>
2374 #include <drizzled/charset.h>
2375 #include <drizzled/internal/my_sys.h>
2376 #include <drizzled/table_proto.h>
2377
2378=== modified file 'drizzled/plugin/table_function.cc'
2379--- drizzled/plugin/table_function.cc 2011-04-08 12:15:12 +0000
2380+++ drizzled/plugin/table_function.cc 2011-04-20 22:33:33 +0000
2381@@ -21,7 +21,7 @@
2382
2383 #include <drizzled/current_session.h>
2384 #include <drizzled/gettext.h>
2385-#include <drizzled/global_charset_info.h>
2386+#include <drizzled/charset.h>
2387 #include <drizzled/plugin/table_function.h>
2388 #include <drizzled/session.h>
2389 #include <drizzled/show.h>
2390
2391=== modified file 'drizzled/schema.cc'
2392--- drizzled/schema.cc 2011-03-23 14:35:15 +0000
2393+++ drizzled/schema.cc 2011-04-20 22:33:33 +0000
2394@@ -38,7 +38,6 @@
2395 #include <drizzled/sql_table.h>
2396 #include <drizzled/plugin/storage_engine.h>
2397 #include <drizzled/plugin/authorization.h>
2398-#include <drizzled/global_charset_info.h>
2399 #include <drizzled/pthread_globals.h>
2400 #include <drizzled/charset.h>
2401 #include <drizzled/internal/my_sys.h>
2402
2403=== modified file 'drizzled/session.h'
2404--- drizzled/session.h 2011-04-15 01:14:05 +0000
2405+++ drizzled/session.h 2011-04-20 22:33:33 +0000
2406@@ -33,7 +33,7 @@
2407 #include <sys/resource.h>
2408 #include <sys/time.h>
2409
2410-#include <drizzled/global_charset_info.h>
2411+#include <drizzled/charset.h>
2412 #include <drizzled/base.h>
2413 #include <drizzled/error.h>
2414 #include <drizzled/lock.h>
2415
2416=== modified file 'drizzled/sql_base.cc'
2417--- drizzled/sql_base.cc 2011-04-14 19:00:59 +0000
2418+++ drizzled/sql_base.cc 2011-04-20 22:33:33 +0000
2419@@ -48,7 +48,7 @@
2420 #include <drizzled/field/epoch.h>
2421 #include <drizzled/field/null.h>
2422 #include <drizzled/sql_table.h>
2423-#include <drizzled/global_charset_info.h>
2424+#include <drizzled/charset.h>
2425 #include <drizzled/pthread_globals.h>
2426 #include <drizzled/internal/iocache.h>
2427 #include <drizzled/drizzled.h>
2428
2429=== modified file 'drizzled/sql_locale.cc'
2430--- drizzled/sql_locale.cc 2011-03-26 17:26:44 +0000
2431+++ drizzled/sql_locale.cc 2011-04-20 22:33:33 +0000
2432@@ -21,7 +21,7 @@
2433 #include <cassert>
2434 #include <drizzled/sql_locale.h>
2435 #include <drizzled/typelib.h>
2436-#include <drizzled/charset_info.h>
2437+#include <drizzled/charset.h>
2438 #include <drizzled/definitions.h>
2439
2440 namespace drizzled {
2441
2442=== modified file 'drizzled/sql_parse.cc'
2443--- drizzled/sql_parse.cc 2011-04-13 21:42:45 +0000
2444+++ drizzled/sql_parse.cc 2011-04-20 22:33:33 +0000
2445@@ -40,7 +40,7 @@
2446 #include <drizzled/statement.h>
2447 #include <drizzled/statement/alter_table.h>
2448 #include <drizzled/probes.h>
2449-#include <drizzled/global_charset_info.h>
2450+#include <drizzled/charset.h>
2451 #include <drizzled/plugin/logging.h>
2452 #include <drizzled/plugin/query_rewrite.h>
2453 #include <drizzled/plugin/query_cache.h>
2454
2455=== modified file 'drizzled/sql_string.cc'
2456--- drizzled/sql_string.cc 2011-04-15 12:46:31 +0000
2457+++ drizzled/sql_string.cc 2011-04-20 22:33:33 +0000
2458@@ -21,9 +21,7 @@
2459 #include <drizzled/internal/my_sys.h>
2460 #include <drizzled/internal/m_string.h>
2461 #include <drizzled/memory/root.h>
2462-#include <drizzled/charset_info.h>
2463 #include <drizzled/charset.h>
2464-#include <drizzled/global_charset_info.h>
2465
2466 #include <algorithm>
2467
2468
2469=== modified file 'drizzled/sql_table.cc'
2470--- drizzled/sql_table.cc 2011-04-13 13:04:50 +0000
2471+++ drizzled/sql_table.cc 2011-04-20 22:33:33 +0000
2472@@ -35,7 +35,6 @@
2473 #include <drizzled/plugin/client.h>
2474 #include <drizzled/identifier.h>
2475 #include <drizzled/internal/m_string.h>
2476-#include <drizzled/global_charset_info.h>
2477 #include <drizzled/charset.h>
2478 #include <drizzled/definition/cache.h>
2479 #include <drizzled/system_variables.h>
2480
2481=== modified file 'drizzled/statement/alter_table.cc'
2482--- drizzled/statement/alter_table.cc 2011-04-13 10:38:28 +0000
2483+++ drizzled/statement/alter_table.cc 2011-04-20 22:33:33 +0000
2484@@ -28,7 +28,7 @@
2485 #include <drizzled/lock.h>
2486 #include <drizzled/session.h>
2487 #include <drizzled/statement/alter_table.h>
2488-#include <drizzled/global_charset_info.h>
2489+#include <drizzled/charset.h>
2490 #include <drizzled/gettext.h>
2491 #include <drizzled/data_home.h>
2492 #include <drizzled/sql_table.h>
2493
2494=== modified file 'drizzled/strfunc.cc'
2495--- drizzled/strfunc.cc 2011-04-13 14:47:23 +0000
2496+++ drizzled/strfunc.cc 2011-04-20 22:33:33 +0000
2497@@ -17,8 +17,7 @@
2498 #include <config.h>
2499
2500 #include <drizzled/typelib.h>
2501-#include <drizzled/charset_info.h>
2502-#include <drizzled/global_charset_info.h>
2503+#include <drizzled/charset.h>
2504
2505 namespace drizzled {
2506
2507
2508=== modified file 'drizzled/sys_var.h'
2509--- drizzled/sys_var.h 2011-03-28 23:48:44 +0000
2510+++ drizzled/sys_var.h 2011-04-20 22:33:33 +0000
2511@@ -28,7 +28,7 @@
2512 #include <drizzled/show_type.h>
2513 #include <drizzled/item_result.h>
2514 #include <drizzled/base.h>
2515-#include <drizzled/global_charset_info.h>
2516+#include <drizzled/charset.h>
2517 #include <drizzled/lex_string.h>
2518 #include <drizzled/visibility.h>
2519
2520
2521=== modified file 'drizzled/table_proto.cc'
2522--- drizzled/table_proto.cc 2011-03-28 02:46:21 +0000
2523+++ drizzled/table_proto.cc 2011-04-20 22:33:33 +0000
2524@@ -18,7 +18,6 @@
2525 #include <drizzled/session.h>
2526 #include <drizzled/unireg.h>
2527 #include <drizzled/sql_table.h>
2528-#include <drizzled/global_charset_info.h>
2529 #include <drizzled/message/statement_transform.h>
2530
2531 #include <drizzled/plugin/storage_engine.h>
2532
2533=== modified file 'drizzled/temporal.cc'
2534--- drizzled/temporal.cc 2011-03-10 15:44:28 +0000
2535+++ drizzled/temporal.cc 2011-04-20 22:33:33 +0000
2536@@ -36,7 +36,7 @@
2537
2538 #include <config.h>
2539
2540-#include <drizzled/charset_info.h>
2541+#include <drizzled/charset.h>
2542 #include <drizzled/type/decimal.h>
2543 #include <drizzled/calendar.h>
2544 #include <drizzled/temporal.h>
2545
2546=== modified file 'drizzled/time_functions.cc'
2547--- drizzled/time_functions.cc 2011-03-28 02:46:21 +0000
2548+++ drizzled/time_functions.cc 2011-04-20 22:33:33 +0000
2549@@ -26,7 +26,7 @@
2550 #include <drizzled/tztime.h>
2551 #include <drizzled/session.h>
2552 #include <drizzled/time_functions.h>
2553-#include <drizzled/charset_info.h>
2554+#include <drizzled/charset.h>
2555 #include <drizzled/system_variables.h>
2556
2557 namespace drizzled {
2558
2559=== modified file 'drizzled/type/boolean.cc'
2560--- drizzled/type/boolean.cc 2011-02-17 00:14:13 +0000
2561+++ drizzled/type/boolean.cc 2011-04-20 22:33:33 +0000
2562@@ -22,8 +22,7 @@
2563
2564 #include <drizzled/sql_string.h>
2565 #include <drizzled/type/boolean.h>
2566-#include <drizzled/global_charset_info.h>
2567-#include <drizzled/charset_info.h>
2568+#include <drizzled/charset.h>
2569
2570 namespace drizzled
2571 {
2572
2573=== modified file 'drizzled/type/decimal.cc'
2574--- drizzled/type/decimal.cc 2011-04-14 21:56:22 +0000
2575+++ drizzled/type/decimal.cc 2011-04-20 22:33:33 +0000
2576@@ -107,7 +107,7 @@
2577
2578 #include <drizzled/definitions.h>
2579 #include <drizzled/internal/m_string.h>
2580-#include <drizzled/charset_info.h>
2581+#include <drizzled/charset.h>
2582 #include <drizzled/type/decimal.h>
2583
2584 #include <plugin/myisam/myisampack.h>
2585
2586=== modified file 'drizzled/type/time.cc'
2587--- drizzled/type/time.cc 2011-02-17 00:14:13 +0000
2588+++ drizzled/type/time.cc 2011-04-20 22:33:33 +0000
2589@@ -20,7 +20,7 @@
2590 #include <drizzled/util/gmtime.h>
2591
2592 #include <drizzled/internal/m_string.h>
2593-#include <drizzled/charset_info.h>
2594+#include <drizzled/charset.h>
2595 #include <drizzled/util/test.h>
2596 #include <drizzled/definitions.h>
2597 #include <drizzled/sql_string.h>
2598
2599=== modified file 'drizzled/typelib.cc'
2600--- drizzled/typelib.cc 2011-04-15 14:23:21 +0000
2601+++ drizzled/typelib.cc 2011-04-20 22:33:33 +0000
2602@@ -20,7 +20,7 @@
2603 #include <stdio.h>
2604
2605 #include <drizzled/internal/m_string.h>
2606-#include <drizzled/charset_info.h>
2607+#include <drizzled/charset.h>
2608 #include <drizzled/memory/root.h>
2609 #include <drizzled/typelib.h>
2610
2611
2612=== modified file 'drizzled/tztime.cc'
2613--- drizzled/tztime.cc 2011-04-16 13:00:30 +0000
2614+++ drizzled/tztime.cc 2011-04-20 22:33:33 +0000
2615@@ -24,7 +24,7 @@
2616 #include <drizzled/gettext.h>
2617 #include <drizzled/session.h>
2618 #include <drizzled/time_functions.h>
2619-#include <drizzled/charset_info.h>
2620+#include <drizzled/charset.h>
2621
2622 namespace drizzled {
2623
2624
2625=== modified file 'drizzled/user_var_entry.cc'
2626--- drizzled/user_var_entry.cc 2011-03-28 02:46:21 +0000
2627+++ drizzled/user_var_entry.cc 2011-04-20 22:33:33 +0000
2628@@ -23,7 +23,7 @@
2629 #include <drizzled/internal/m_string.h>
2630 #include <drizzled/user_var_entry.h>
2631 #include <drizzled/type/decimal.h>
2632-#include <drizzled/charset_info.h>
2633+#include <drizzled/charset.h>
2634
2635 namespace drizzled {
2636
2637
2638=== modified file 'drizzled/xid.cc'
2639--- drizzled/xid.cc 2011-04-13 16:14:00 +0000
2640+++ drizzled/xid.cc 2011-04-20 22:33:33 +0000
2641@@ -22,8 +22,6 @@
2642
2643 #include <drizzled/xid.h>
2644 #include <drizzled/charset.h>
2645-#include <drizzled/global_charset_info.h>
2646-#include <drizzled/charset_info.h>
2647
2648 namespace drizzled {
2649
2650
2651=== modified file 'plugin/haildb/datadict_table_message.cc'
2652--- plugin/haildb/datadict_table_message.cc 2011-02-17 00:14:13 +0000
2653+++ plugin/haildb/datadict_table_message.cc 2011-04-20 22:33:33 +0000
2654@@ -22,7 +22,7 @@
2655
2656 #include "haildb_engine.h"
2657
2658-#include <drizzled/charset_info.h>
2659+#include <drizzled/charset.h>
2660 #include <drizzled/message/table.pb.h>
2661
2662 using namespace drizzled;
2663
2664=== modified file 'plugin/haildb/haildb_engine.cc'
2665--- plugin/haildb/haildb_engine.cc 2011-03-29 18:35:14 +0000
2666+++ plugin/haildb/haildb_engine.cc 2011-04-20 22:33:33 +0000
2667@@ -91,7 +91,6 @@
2668 #include <drizzled/message/table.pb.h>
2669 #include <drizzled/internal/m_string.h>
2670
2671-#include <drizzled/global_charset_info.h>
2672
2673 #include "haildb_datadict_dump_func.h"
2674 #include "config_table_function.h"
2675
2676=== modified file 'plugin/hex_functions/hex_functions.cc'
2677--- plugin/hex_functions/hex_functions.cc 2011-04-14 21:56:22 +0000
2678+++ plugin/hex_functions/hex_functions.cc 2011-04-20 22:33:33 +0000
2679@@ -19,7 +19,7 @@
2680
2681 #include <config.h>
2682
2683-#include <drizzled/charset_info.h>
2684+#include <drizzled/charset.h>
2685 #include <drizzled/function/str/strfunc.h>
2686 #include <drizzled/internal/m_string.h>
2687 #include <drizzled/plugin/function.h>
2688
2689=== modified file 'plugin/innobase/handler/ha_innodb.cc'
2690--- plugin/innobase/handler/ha_innodb.cc 2011-04-15 14:40:55 +0000
2691+++ plugin/innobase/handler/ha_innodb.cc 2011-04-20 22:33:33 +0000
2692@@ -45,7 +45,6 @@
2693
2694 #include <drizzled/error.h>
2695 #include <drizzled/errmsg_print.h>
2696-#include <drizzled/charset_info.h>
2697 #include <drizzled/internal/m_string.h>
2698 #include <drizzled/internal/my_sys.h>
2699 #include <drizzled/plugin.h>
2700
2701=== modified file 'plugin/innobase/handler/handler0alter.cc'
2702--- plugin/innobase/handler/handler0alter.cc 2011-02-17 00:14:13 +0000
2703+++ plugin/innobase/handler/handler0alter.cc 2011-04-20 22:33:33 +0000
2704@@ -23,7 +23,7 @@
2705
2706 #include <config.h>
2707 #include <drizzled/error.h>
2708-#include <drizzled/charset_info.h>
2709+#include <drizzled/charset.h>
2710 #include <drizzled/field.h>
2711 #include <drizzled/table.h>
2712 #include <drizzled/field/varstring.h>
2713
2714=== modified file 'plugin/innobase/include/create_replication.h'
2715--- plugin/innobase/include/create_replication.h 2011-03-14 05:40:28 +0000
2716+++ plugin/innobase/include/create_replication.h 2011-04-20 22:33:33 +0000
2717@@ -34,7 +34,7 @@
2718
2719 #include <drizzled/message/table.pb.h>
2720 #include <drizzled/table.h>
2721-#include <drizzled/charset_info.h>
2722+#include <drizzled/charset.h>
2723
2724 struct read_replication_state_st {
2725 mtr_t mtr;
2726
2727=== modified file 'plugin/innobase/xtrabackup/xtrabackup.cc'
2728--- plugin/innobase/xtrabackup/xtrabackup.cc 2011-04-02 07:33:46 +0000
2729+++ plugin/innobase/xtrabackup/xtrabackup.cc 2011-04-20 22:33:33 +0000
2730@@ -29,9 +29,7 @@
2731 #include <config.h>
2732 #include <string>
2733 #include <drizzled/internal/my_sys.h>
2734-#include <drizzled/charset_info.h>
2735 #include <drizzled/charset.h>
2736-#include <drizzled/global_charset_info.h> // for default_charset_info
2737 #include <drizzled/gettext.h>
2738 #include <drizzled/constrained_value.h>
2739 #include <drizzled/configmake.h>
2740
2741=== modified file 'plugin/math_functions/ord.cc'
2742--- plugin/math_functions/ord.cc 2011-02-17 00:14:13 +0000
2743+++ plugin/math_functions/ord.cc 2011-04-20 22:33:33 +0000
2744@@ -21,7 +21,7 @@
2745
2746 #include "ord.h"
2747
2748-#include <drizzled/charset_info.h>
2749+#include <drizzled/charset.h>
2750 #include <drizzled/type/decimal.h>
2751
2752 namespace drizzled
2753
2754=== modified file 'plugin/md5/md5.cc'
2755--- plugin/md5/md5.cc 2011-04-15 11:25:25 +0000
2756+++ plugin/md5/md5.cc 2011-04-20 22:33:33 +0000
2757@@ -22,7 +22,6 @@
2758 #include <gcrypt.h>
2759
2760 #include <drizzled/charset.h>
2761-#include <drizzled/charset_info.h>
2762 #include <drizzled/function/str/strfunc.h>
2763 #include <drizzled/item/func.h>
2764 #include <drizzled/plugin/function.h>
2765
2766=== modified file 'plugin/memory/hp_hash.cc'
2767--- plugin/memory/hp_hash.cc 2011-03-28 14:13:55 +0000
2768+++ plugin/memory/hp_hash.cc 2011-04-20 22:33:33 +0000
2769@@ -17,7 +17,7 @@
2770
2771 #include "heap_priv.h"
2772 #include <drizzled/error_t.h>
2773-#include <drizzled/charset_info.h>
2774+#include <drizzled/charset.h>
2775 #include <drizzled/util/test.h>
2776
2777 #include <math.h>
2778
2779=== modified file 'plugin/myisam/mi_create.cc'
2780--- plugin/myisam/mi_create.cc 2011-02-17 00:14:13 +0000
2781+++ plugin/myisam/mi_create.cc 2011-04-20 22:33:33 +0000
2782@@ -20,7 +20,7 @@
2783 #include <drizzled/internal/my_sys.h>
2784
2785 #include <drizzled/util/test.h>
2786-#include <drizzled/global_charset_info.h>
2787+#include <drizzled/charset.h>
2788 #include <drizzled/error.h>
2789
2790 #include <cassert>
2791
2792=== modified file 'plugin/myisam/mi_key.cc'
2793--- plugin/myisam/mi_key.cc 2011-03-28 02:46:21 +0000
2794+++ plugin/myisam/mi_key.cc 2011-04-20 22:33:33 +0000
2795@@ -16,7 +16,7 @@
2796 /* Functions to handle keys */
2797
2798 #include "myisam_priv.h"
2799-#include <drizzled/charset_info.h>
2800+#include <drizzled/charset.h>
2801 #ifdef HAVE_IEEEFP_H
2802 #include <ieeefp.h>
2803 #endif
2804
2805=== modified file 'plugin/myisam/mi_locking.cc'
2806--- plugin/myisam/mi_locking.cc 2011-03-29 09:33:49 +0000
2807+++ plugin/myisam/mi_locking.cc 2011-04-20 22:33:33 +0000
2808@@ -21,7 +21,7 @@
2809 */
2810
2811 #include "myisam_priv.h"
2812-#include <drizzled/charset_info.h>
2813+#include <drizzled/charset.h>
2814 #include <drizzled/util/test.h>
2815
2816 using namespace std;
2817
2818=== modified file 'plugin/myisam/mi_open.cc'
2819--- plugin/myisam/mi_open.cc 2011-03-29 20:45:43 +0000
2820+++ plugin/myisam/mi_open.cc 2011-04-20 22:33:33 +0000
2821@@ -23,10 +23,8 @@
2822 #include <boost/scoped_ptr.hpp>
2823 #include <boost/scoped_array.hpp>
2824
2825-#include <drizzled/charset_info.h>
2826 #include <drizzled/internal/m_string.h>
2827 #include <drizzled/util/test.h>
2828-#include <drizzled/global_charset_info.h>
2829 #include <drizzled/charset.h>
2830 #include <drizzled/memory/multi_malloc.h>
2831 #include <drizzled/identifier.h>
2832
2833=== modified file 'plugin/myisam/mi_search.cc'
2834--- plugin/myisam/mi_search.cc 2011-02-17 00:14:13 +0000
2835+++ plugin/myisam/mi_search.cc 2011-04-20 22:33:33 +0000
2836@@ -16,7 +16,7 @@
2837 /* key handling functions */
2838
2839 #include "myisam_priv.h"
2840-#include <drizzled/charset_info.h>
2841+#include <drizzled/charset.h>
2842 #include <drizzled/internal/m_string.h>
2843 #include <drizzled/util/test.h>
2844
2845
2846=== modified file 'plugin/myisam/mi_unique.cc'
2847--- plugin/myisam/mi_unique.cc 2011-03-28 06:10:45 +0000
2848+++ plugin/myisam/mi_unique.cc 2011-04-20 22:33:33 +0000
2849@@ -16,7 +16,7 @@
2850 /* Functions to check if a row is unique */
2851
2852 #include "myisam_priv.h"
2853-#include <drizzled/charset_info.h>
2854+#include <drizzled/charset.h>
2855
2856 using namespace drizzled;
2857
2858
2859=== modified file 'plugin/myisam/my_handler.cc'
2860--- plugin/myisam/my_handler.cc 2011-03-28 02:46:21 +0000
2861+++ plugin/myisam/my_handler.cc 2011-04-20 22:33:33 +0000
2862@@ -19,7 +19,7 @@
2863
2864 #include <config.h>
2865
2866-#include <drizzled/charset_info.h>
2867+#include <drizzled/charset.h>
2868 #include <drizzled/base.h>
2869 #include <plugin/myisam/my_handler.h>
2870 #include <drizzled/internal/my_sys.h>
2871
2872=== modified file 'plugin/myisam/my_handler.h'
2873--- plugin/myisam/my_handler.h 2011-03-28 02:46:21 +0000
2874+++ plugin/myisam/my_handler.h 2011-04-20 22:33:33 +0000
2875@@ -17,7 +17,7 @@
2876
2877 #pragma once
2878
2879-#include <drizzled/charset_info.h>
2880+#include <drizzled/charset.h>
2881 #include <plugin/myisam/myisampack.h>
2882
2883 /*
2884
2885=== modified file 'plugin/pbms/src/backup_ms.cc'
2886--- plugin/pbms/src/backup_ms.cc 2011-02-21 16:33:37 +0000
2887+++ plugin/pbms/src/backup_ms.cc 2011-04-20 22:33:33 +0000
2888@@ -38,7 +38,7 @@
2889 #include <drizzled/session.h>
2890 #include <drizzled/table.h>
2891 #include <drizzled/message/table.pb.h>
2892-#include <drizzled/charset_info.h>
2893+#include <drizzled/charset.h>
2894 #include <drizzled/table_proto.h>
2895 #include <drizzled/field.h>
2896 #include <drizzled/field/varstring.h>
2897
2898=== modified file 'plugin/pbms/src/cloud_ms.cc'
2899--- plugin/pbms/src/cloud_ms.cc 2011-02-17 00:14:13 +0000
2900+++ plugin/pbms/src/cloud_ms.cc 2011-04-20 22:33:33 +0000
2901@@ -26,7 +26,7 @@
2902 #include <drizzled/session.h>
2903 #include <drizzled/table.h>
2904 #include <drizzled/message/table.pb.h>
2905-#include <drizzled/charset_info.h>
2906+#include <drizzled/charset.h>
2907 #include <drizzled/table_proto.h>
2908 #include <drizzled/session.h>
2909 #include <drizzled/field.h>
2910
2911=== modified file 'plugin/pbms/src/database_ms.cc'
2912--- plugin/pbms/src/database_ms.cc 2011-02-21 16:33:37 +0000
2913+++ plugin/pbms/src/database_ms.cc 2011-04-20 22:33:33 +0000
2914@@ -33,7 +33,7 @@
2915 #include <drizzled/session.h>
2916 #include <drizzled/table.h>
2917 #include <drizzled/message/table.pb.h>
2918-#include <drizzled/charset_info.h>
2919+#include <drizzled/charset.h>
2920 #include <drizzled/table_proto.h>
2921 #include <drizzled/field.h>
2922 #endif
2923
2924=== modified file 'plugin/pbms/src/metadata_ms.h'
2925--- plugin/pbms/src/metadata_ms.h 2011-03-14 05:40:28 +0000
2926+++ plugin/pbms/src/metadata_ms.h 2011-04-20 22:33:33 +0000
2927@@ -31,7 +31,7 @@
2928
2929 #ifdef DRIZZLED
2930 #include <drizzled/internal/m_string.h>
2931-#include <drizzled/charset_info.h>
2932+#include <drizzled/charset.h>
2933 #else
2934 #include "m_ctype.h"
2935 #endif
2936
2937=== modified file 'plugin/pbms/src/system_table_ms.cc'
2938--- plugin/pbms/src/system_table_ms.cc 2011-02-21 16:33:37 +0000
2939+++ plugin/pbms/src/system_table_ms.cc 2011-04-20 22:33:33 +0000
2940@@ -36,7 +36,7 @@
2941 #include <drizzled/field/blob.h>
2942
2943 #include <drizzled/message/table.pb.h>
2944-#include <drizzled/charset_info.h>
2945+#include <drizzled/charset.h>
2946 #include <drizzled/table_proto.h>
2947 #endif
2948
2949
2950=== modified file 'plugin/reverse_function/reverse_function.cc'
2951--- plugin/reverse_function/reverse_function.cc 2011-02-17 00:14:13 +0000
2952+++ plugin/reverse_function/reverse_function.cc 2011-04-20 22:33:33 +0000
2953@@ -22,7 +22,7 @@
2954
2955 #include <drizzled/plugin/function.h>
2956 #include <drizzled/function/str/strfunc.h>
2957-#include <drizzled/charset_info.h>
2958+#include <drizzled/charset.h>
2959
2960 using namespace drizzled;
2961
2962
2963=== modified file 'plugin/schema_engine/schema.cc'
2964--- plugin/schema_engine/schema.cc 2011-03-29 09:53:56 +0000
2965+++ plugin/schema_engine/schema.cc 2011-04-20 22:33:33 +0000
2966@@ -24,9 +24,7 @@
2967 #include <plugin/schema_engine/schema.h>
2968 #include <drizzled/schema.h>
2969 #include <drizzled/sql_table.h>
2970-#include <drizzled/global_charset_info.h>
2971 #include <drizzled/charset.h>
2972-#include <drizzled/charset_info.h>
2973 #include <drizzled/cursor.h>
2974 #include <drizzled/data_home.h>
2975
2976
2977=== modified file 'plugin/storage_engine_api_tester/storage_engine_api_tester.cc'
2978--- plugin/storage_engine_api_tester/storage_engine_api_tester.cc 2011-03-28 17:36:12 +0000
2979+++ plugin/storage_engine_api_tester/storage_engine_api_tester.cc 2011-04-20 22:33:33 +0000
2980@@ -27,7 +27,7 @@
2981 #include <drizzled/message/table.pb.h>
2982 #include <drizzled/internal/m_string.h>
2983
2984-#include <drizzled/global_charset_info.h>
2985+#include <drizzled/charset.h>
2986
2987 #include <boost/unordered_map.hpp>
2988
2989
2990=== modified file 'plugin/string_functions/format.cc'
2991--- plugin/string_functions/format.cc 2011-03-03 08:29:06 +0000
2992+++ plugin/string_functions/format.cc 2011-04-20 22:33:33 +0000
2993@@ -22,7 +22,7 @@
2994
2995 #include <limits>
2996
2997-#include <drizzled/charset_info.h>
2998+#include <drizzled/charset.h>
2999 #include <drizzled/type/decimal.h>
3000 #include <drizzled/table.h>
3001
3002
3003=== modified file 'plugin/substr_functions/substr_functions.cc'
3004--- plugin/substr_functions/substr_functions.cc 2011-02-17 00:14:13 +0000
3005+++ plugin/substr_functions/substr_functions.cc 2011-04-20 22:33:33 +0000
3006@@ -22,7 +22,7 @@
3007
3008 #include <algorithm>
3009
3010-#include <drizzled/charset_info.h>
3011+#include <drizzled/charset.h>
3012 #include <drizzled/function/str/strfunc.h>
3013 #include <drizzled/plugin/function.h>
3014
3015
3016=== modified file 'plugin/tableprototester/tableprototester.cc'
3017--- plugin/tableprototester/tableprototester.cc 2011-03-28 17:36:12 +0000
3018+++ plugin/tableprototester/tableprototester.cc 2011-04-20 22:33:33 +0000
3019@@ -27,7 +27,7 @@
3020 #include <fstream>
3021
3022 #include <drizzled/error.h>
3023-#include <drizzled/global_charset_info.h>
3024+#include <drizzled/charset.h>
3025 #include <drizzled/internal/m_string.h>
3026 #include <drizzled/internal/my_pthread.h>
3027 #include <drizzled/message/table.h>
3028
3029=== modified file 'plugin/utility_functions/catalog.h'
3030--- plugin/utility_functions/catalog.h 2011-03-14 05:40:28 +0000
3031+++ plugin/utility_functions/catalog.h 2011-04-20 22:33:33 +0000
3032@@ -20,9 +20,8 @@
3033
3034 #pragma once
3035
3036-#include <drizzled/charset_info.h>
3037+#include <drizzled/charset.h>
3038 #include <drizzled/function/str/strfunc.h>
3039-#include <drizzled/global_charset_info.h>
3040
3041 namespace drizzled
3042 {
3043
3044=== modified file 'plugin/uuid_function/uuid_function.cc'
3045--- plugin/uuid_function/uuid_function.cc 2011-02-17 00:14:13 +0000
3046+++ plugin/uuid_function/uuid_function.cc 2011-04-20 22:33:33 +0000
3047@@ -20,7 +20,7 @@
3048
3049 #include <config.h>
3050
3051-#include <drizzled/charset_info.h>
3052+#include <drizzled/charset.h>
3053 #include <drizzled/function/str/strfunc.h>
3054 #include <drizzled/item/func.h>
3055 #include <drizzled/plugin/function.h>