mysql2 0.2.24 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +12 -0
- data/.rspec +2 -0
- data/.rvmrc +1 -0
- data/CHANGELOG.md +148 -0
- data/Gemfile +3 -0
- data/README.rdoc +257 -0
- data/Rakefile +5 -0
- data/benchmark/active_record.rb +51 -0
- data/benchmark/active_record_threaded.rb +42 -0
- data/benchmark/allocations.rb +33 -0
- data/benchmark/escape.rb +36 -0
- data/benchmark/query_with_mysql_casting.rb +80 -0
- data/benchmark/query_without_mysql_casting.rb +47 -0
- data/benchmark/sequel.rb +37 -0
- data/benchmark/setup_db.rb +119 -0
- data/benchmark/threaded.rb +44 -0
- data/ext/mysql2/client.c +272 -849
- data/ext/mysql2/client.h +12 -27
- data/ext/mysql2/extconf.rb +14 -72
- data/ext/mysql2/mysql2_ext.h +4 -7
- data/ext/mysql2/result.c +123 -319
- data/ext/mysql2/result.h +1 -4
- data/lib/active_record/connection_adapters/em_mysql2_adapter.rb +64 -0
- data/lib/active_record/fiber_patches.rb +104 -0
- data/lib/mysql2.rb +5 -20
- data/lib/mysql2/client.rb +200 -50
- data/lib/mysql2/em.rb +3 -13
- data/lib/mysql2/em_fiber.rb +31 -0
- data/lib/mysql2/error.rb +6 -71
- data/lib/mysql2/version.rb +2 -2
- data/mysql2.gemspec +32 -0
- data/spec/em/em_fiber_spec.rb +22 -0
- data/spec/em/em_spec.rb +9 -74
- data/spec/mysql2/client_spec.rb +126 -593
- data/spec/mysql2/error_spec.rb +44 -58
- data/spec/mysql2/result_spec.rb +85 -257
- data/spec/spec_helper.rb +3 -24
- data/tasks/benchmarks.rake +20 -0
- data/tasks/compile.rake +71 -0
- data/tasks/rspec.rake +16 -0
- data/tasks/vendor_mysql.rake +40 -0
- metadata +179 -92
- checksums.yaml +0 -7
- data/README.md +0 -524
- data/ext/mysql2/infile.c +0 -122
- data/ext/mysql2/infile.h +0 -1
- data/ext/mysql2/mysql_enc_name_to_ruby.h +0 -168
- data/ext/mysql2/mysql_enc_to_ruby.h +0 -246
- data/ext/mysql2/wait_for_single_fd.h +0 -36
- data/lib/active_record/connection_adapters/mysql2_adapter.rb +0 -635
- data/lib/arel/engines/sql/compilers/mysql2_compiler.rb +0 -11
- data/lib/mysql2/console.rb +0 -5
- data/spec/configuration.yml.example +0 -17
- data/spec/my.cnf.example +0 -9
- data/spec/test_data +0 -1
- data/support/mysql_enc_to_ruby.rb +0 -82
- data/support/ruby_enc_to_mysql.rb +0 -61
data/ext/mysql2/infile.c
DELETED
@@ -1,122 +0,0 @@
|
|
1
|
-
#include <mysql2_ext.h>
|
2
|
-
|
3
|
-
#include <errno.h>
|
4
|
-
#ifndef _MSC_VER
|
5
|
-
#include <unistd.h>
|
6
|
-
#endif
|
7
|
-
#include <fcntl.h>
|
8
|
-
|
9
|
-
#define ERROR_LEN 1024
|
10
|
-
typedef struct
|
11
|
-
{
|
12
|
-
int fd;
|
13
|
-
char *filename;
|
14
|
-
char error[ERROR_LEN];
|
15
|
-
mysql_client_wrapper *wrapper;
|
16
|
-
} mysql2_local_infile_data;
|
17
|
-
|
18
|
-
/* MySQL calls this function when a user begins a LOAD DATA LOCAL INFILE query.
|
19
|
-
*
|
20
|
-
* Allocate a data struct and pass it back through the data pointer.
|
21
|
-
*
|
22
|
-
* Returns:
|
23
|
-
* 0 on success
|
24
|
-
* 1 on error
|
25
|
-
*/
|
26
|
-
static int
|
27
|
-
mysql2_local_infile_init(void **ptr, const char *filename, void *userdata)
|
28
|
-
{
|
29
|
-
mysql2_local_infile_data *data = malloc(sizeof(mysql2_local_infile_data));
|
30
|
-
if (!data) return 1;
|
31
|
-
|
32
|
-
*ptr = data;
|
33
|
-
data->error[0] = 0;
|
34
|
-
data->wrapper = userdata;
|
35
|
-
|
36
|
-
data->filename = strdup(filename);
|
37
|
-
if (!data->filename) {
|
38
|
-
snprintf(data->error, ERROR_LEN, "%s: %s", strerror(errno), filename);
|
39
|
-
return 1;
|
40
|
-
}
|
41
|
-
|
42
|
-
data->fd = open(filename, O_RDONLY);
|
43
|
-
if (data->fd < 0) {
|
44
|
-
snprintf(data->error, ERROR_LEN, "%s: %s", strerror(errno), filename);
|
45
|
-
return 1;
|
46
|
-
}
|
47
|
-
|
48
|
-
return 0;
|
49
|
-
}
|
50
|
-
|
51
|
-
/* MySQL calls this function to read data from the local file.
|
52
|
-
*
|
53
|
-
* Returns:
|
54
|
-
* > 0 number of bytes read
|
55
|
-
* == 0 end of file
|
56
|
-
* < 0 error
|
57
|
-
*/
|
58
|
-
static int
|
59
|
-
mysql2_local_infile_read(void *ptr, char *buf, uint buf_len)
|
60
|
-
{
|
61
|
-
int count;
|
62
|
-
mysql2_local_infile_data *data = (mysql2_local_infile_data *)ptr;
|
63
|
-
|
64
|
-
count = (int)read(data->fd, buf, buf_len);
|
65
|
-
if (count < 0) {
|
66
|
-
snprintf(data->error, ERROR_LEN, "%s: %s", strerror(errno), data->filename);
|
67
|
-
}
|
68
|
-
|
69
|
-
return count;
|
70
|
-
}
|
71
|
-
|
72
|
-
/* MySQL calls this function when we're done with the LOCAL INFILE query.
|
73
|
-
*
|
74
|
-
* ptr will be null if the init function failed.
|
75
|
-
*/
|
76
|
-
static void
|
77
|
-
mysql2_local_infile_end(void *ptr)
|
78
|
-
{
|
79
|
-
mysql2_local_infile_data *data = (mysql2_local_infile_data *)ptr;
|
80
|
-
if (data) {
|
81
|
-
if (data->fd >= 0)
|
82
|
-
close(data->fd);
|
83
|
-
if (data->filename)
|
84
|
-
free(data->filename);
|
85
|
-
free(data);
|
86
|
-
}
|
87
|
-
}
|
88
|
-
|
89
|
-
/* MySQL calls this function if any of the functions above returned an error.
|
90
|
-
*
|
91
|
-
* This function is called even if init failed, with whatever ptr value
|
92
|
-
* init has set, regardless of the return value of the init function.
|
93
|
-
*
|
94
|
-
* Returns:
|
95
|
-
* Error message number (see http://dev.mysql.com/doc/refman/5.0/en/error-messages-client.html)
|
96
|
-
*/
|
97
|
-
static int
|
98
|
-
mysql2_local_infile_error(void *ptr, char *error_msg, uint error_msg_len)
|
99
|
-
{
|
100
|
-
mysql2_local_infile_data *data = (mysql2_local_infile_data *) ptr;
|
101
|
-
|
102
|
-
if (data) {
|
103
|
-
snprintf(error_msg, error_msg_len, "%s", data->error);
|
104
|
-
return CR_UNKNOWN_ERROR;
|
105
|
-
}
|
106
|
-
|
107
|
-
snprintf(error_msg, error_msg_len, "Out of memory");
|
108
|
-
return CR_OUT_OF_MEMORY;
|
109
|
-
}
|
110
|
-
|
111
|
-
/* Tell MySQL Client to use our own local_infile functions.
|
112
|
-
* This is both due to bugginess in the default handlers,
|
113
|
-
* and to improve the Rubyness of the handlers here.
|
114
|
-
*/
|
115
|
-
void mysql2_set_local_infile(MYSQL *mysql, void *userdata)
|
116
|
-
{
|
117
|
-
mysql_set_local_infile_handler(mysql,
|
118
|
-
mysql2_local_infile_init,
|
119
|
-
mysql2_local_infile_read,
|
120
|
-
mysql2_local_infile_end,
|
121
|
-
mysql2_local_infile_error, userdata);
|
122
|
-
}
|
data/ext/mysql2/infile.h
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
void mysql2_set_local_infile(MYSQL *mysql, void *userdata);
|
@@ -1,168 +0,0 @@
|
|
1
|
-
/* C code produced by gperf version 3.0.3 */
|
2
|
-
/* Command-line: gperf */
|
3
|
-
/* Computed positions: -k'1,3,$' */
|
4
|
-
|
5
|
-
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
|
6
|
-
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
|
7
|
-
&& (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
|
8
|
-
&& ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
|
9
|
-
&& ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
|
10
|
-
&& ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
|
11
|
-
&& ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
|
12
|
-
&& ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
|
13
|
-
&& ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
|
14
|
-
&& ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
|
15
|
-
&& ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
|
16
|
-
&& ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
|
17
|
-
&& ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
|
18
|
-
&& ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
|
19
|
-
&& ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
|
20
|
-
&& ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
|
21
|
-
&& ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
|
22
|
-
&& ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
|
23
|
-
&& ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
|
24
|
-
&& ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
|
25
|
-
&& ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
|
26
|
-
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
|
27
|
-
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
|
28
|
-
/* The character set is not based on ISO-646. */
|
29
|
-
error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
|
30
|
-
#endif
|
31
|
-
|
32
|
-
struct mysql2_mysql_enc_name_to_rb_map { const char *name; const char *rb_name; };
|
33
|
-
/* maximum key range = 66, duplicates = 0 */
|
34
|
-
|
35
|
-
#ifdef __GNUC__
|
36
|
-
__inline
|
37
|
-
#else
|
38
|
-
#ifdef __cplusplus
|
39
|
-
inline
|
40
|
-
#endif
|
41
|
-
#endif
|
42
|
-
static unsigned int
|
43
|
-
mysql2_mysql_enc_name_to_rb_hash (str, len)
|
44
|
-
register const char *str;
|
45
|
-
register unsigned int len;
|
46
|
-
{
|
47
|
-
static const unsigned char asso_values[] =
|
48
|
-
{
|
49
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
50
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
51
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
52
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
53
|
-
69, 69, 69, 69, 69, 69, 69, 69, 40, 5,
|
54
|
-
0, 69, 0, 40, 25, 20, 10, 55, 69, 69,
|
55
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
56
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
57
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
58
|
-
69, 69, 69, 69, 69, 69, 69, 35, 5, 0,
|
59
|
-
10, 0, 20, 0, 5, 5, 69, 0, 10, 15,
|
60
|
-
0, 0, 69, 69, 25, 5, 5, 0, 69, 30,
|
61
|
-
69, 0, 69, 69, 69, 69, 69, 69, 69, 69,
|
62
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
63
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
64
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
65
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
66
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
67
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
68
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
69
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
70
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
71
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
72
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
73
|
-
69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
|
74
|
-
69, 69, 69, 69, 69, 69
|
75
|
-
};
|
76
|
-
return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]];
|
77
|
-
}
|
78
|
-
|
79
|
-
#ifdef __GNUC__
|
80
|
-
__inline
|
81
|
-
#ifdef __GNUC_STDC_INLINE__
|
82
|
-
__attribute__ ((__gnu_inline__))
|
83
|
-
#endif
|
84
|
-
#endif
|
85
|
-
const struct mysql2_mysql_enc_name_to_rb_map *
|
86
|
-
mysql2_mysql_enc_name_to_rb (str, len)
|
87
|
-
register const char *str;
|
88
|
-
register unsigned int len;
|
89
|
-
{
|
90
|
-
enum
|
91
|
-
{
|
92
|
-
TOTAL_KEYWORDS = 39,
|
93
|
-
MIN_WORD_LENGTH = 3,
|
94
|
-
MAX_WORD_LENGTH = 8,
|
95
|
-
MIN_HASH_VALUE = 3,
|
96
|
-
MAX_HASH_VALUE = 68
|
97
|
-
};
|
98
|
-
|
99
|
-
static const struct mysql2_mysql_enc_name_to_rb_map wordlist[] =
|
100
|
-
{
|
101
|
-
{""}, {""}, {""},
|
102
|
-
{"gbk", "GBK"},
|
103
|
-
{""},
|
104
|
-
{"greek", "ISO-8859-7"},
|
105
|
-
{"gb2312", "GB2312"},
|
106
|
-
{"keybcs2", NULL},
|
107
|
-
{""},
|
108
|
-
{"ucs2", "UTF-16BE"},
|
109
|
-
{"koi8u", "KOI8-R"},
|
110
|
-
{"binary", "ASCII-8BIT"},
|
111
|
-
{"eucjpms", "eucJP-ms"},
|
112
|
-
{""},
|
113
|
-
{"ujis", "eucJP-ms"},
|
114
|
-
{"cp852", "CP852"},
|
115
|
-
{"cp1251", "Windows-1251"},
|
116
|
-
{"geostd8", NULL},
|
117
|
-
{""},
|
118
|
-
{"sjis", "Shift_JIS"},
|
119
|
-
{"macce", "macCentEuro"},
|
120
|
-
{"latin2", "ISO-8859-2"},
|
121
|
-
{""},
|
122
|
-
{"macroman", "macRoman"},
|
123
|
-
{"dec8", NULL},
|
124
|
-
{"utf32", "UTF-32"},
|
125
|
-
{"latin1", "ISO-8859-1"},
|
126
|
-
{"utf8mb4", "UTF-8"},
|
127
|
-
{"hp8", NULL},
|
128
|
-
{"swe7", NULL},
|
129
|
-
{"euckr", "EUC-KR"},
|
130
|
-
{"cp1257", "Windows-1257"},
|
131
|
-
{""}, {""},
|
132
|
-
{"utf8", "UTF-8"},
|
133
|
-
{"koi8r", "KOI8-R"},
|
134
|
-
{"cp1256", "Windows-1256"},
|
135
|
-
{""}, {""}, {""},
|
136
|
-
{"cp866", "IBM866"},
|
137
|
-
{"latin7", "ISO-8859-13"},
|
138
|
-
{""}, {""}, {""},
|
139
|
-
{"ascii", "US-ASCII"},
|
140
|
-
{"hebrew", "ISO-8859-8"},
|
141
|
-
{""}, {""},
|
142
|
-
{"big5", "Big5"},
|
143
|
-
{"utf16", "UTF-16"},
|
144
|
-
{"cp1250", "Windows-1250"},
|
145
|
-
{""}, {""}, {""},
|
146
|
-
{"cp850", "CP850"},
|
147
|
-
{"tis620", "TIS-620"},
|
148
|
-
{""}, {""}, {""},
|
149
|
-
{"cp932", "Windows-31J"},
|
150
|
-
{"latin5", "ISO-8859-9"},
|
151
|
-
{""}, {""}, {""}, {""}, {""}, {""},
|
152
|
-
{"armscii8", NULL}
|
153
|
-
};
|
154
|
-
|
155
|
-
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
|
156
|
-
{
|
157
|
-
register int key = mysql2_mysql_enc_name_to_rb_hash (str, len);
|
158
|
-
|
159
|
-
if (key <= MAX_HASH_VALUE && key >= 0)
|
160
|
-
{
|
161
|
-
register const char *s = wordlist[key].name;
|
162
|
-
|
163
|
-
if (*str == *s && !strcmp (str + 1, s + 1))
|
164
|
-
return &wordlist[key];
|
165
|
-
}
|
166
|
-
}
|
167
|
-
return 0;
|
168
|
-
}
|
@@ -1,246 +0,0 @@
|
|
1
|
-
const char *mysql2_mysql_enc_to_rb[] = {
|
2
|
-
"Big5",
|
3
|
-
"ISO-8859-2",
|
4
|
-
NULL,
|
5
|
-
"CP850",
|
6
|
-
"ISO-8859-1",
|
7
|
-
NULL,
|
8
|
-
"KOI8-R",
|
9
|
-
"ISO-8859-1",
|
10
|
-
"ISO-8859-2",
|
11
|
-
NULL,
|
12
|
-
"US-ASCII",
|
13
|
-
"eucJP-ms",
|
14
|
-
"Shift_JIS",
|
15
|
-
"Windows-1251",
|
16
|
-
"ISO-8859-1",
|
17
|
-
"ISO-8859-8",
|
18
|
-
NULL,
|
19
|
-
"TIS-620",
|
20
|
-
"EUC-KR",
|
21
|
-
"ISO-8859-13",
|
22
|
-
"ISO-8859-2",
|
23
|
-
"KOI8-R",
|
24
|
-
"Windows-1251",
|
25
|
-
"GB2312",
|
26
|
-
"ISO-8859-7",
|
27
|
-
"Windows-1250",
|
28
|
-
"ISO-8859-2",
|
29
|
-
"GBK",
|
30
|
-
"Windows-1257",
|
31
|
-
"ISO-8859-9",
|
32
|
-
"ISO-8859-1",
|
33
|
-
NULL,
|
34
|
-
"UTF-8",
|
35
|
-
"Windows-1250",
|
36
|
-
"UTF-16BE",
|
37
|
-
"IBM866",
|
38
|
-
NULL,
|
39
|
-
"macCentEuro",
|
40
|
-
"macRoman",
|
41
|
-
"CP852",
|
42
|
-
"ISO-8859-13",
|
43
|
-
"ISO-8859-13",
|
44
|
-
"macCentEuro",
|
45
|
-
"Windows-1250",
|
46
|
-
"UTF-8",
|
47
|
-
"UTF-8",
|
48
|
-
"ISO-8859-1",
|
49
|
-
"ISO-8859-1",
|
50
|
-
"ISO-8859-1",
|
51
|
-
"Windows-1251",
|
52
|
-
"Windows-1251",
|
53
|
-
"Windows-1251",
|
54
|
-
"macRoman",
|
55
|
-
"UTF-16",
|
56
|
-
"UTF-16",
|
57
|
-
NULL,
|
58
|
-
"Windows-1256",
|
59
|
-
"Windows-1257",
|
60
|
-
"Windows-1257",
|
61
|
-
"UTF-32",
|
62
|
-
"UTF-32",
|
63
|
-
NULL,
|
64
|
-
"ASCII-8BIT",
|
65
|
-
NULL,
|
66
|
-
"US-ASCII",
|
67
|
-
"Windows-1250",
|
68
|
-
"Windows-1256",
|
69
|
-
"IBM866",
|
70
|
-
NULL,
|
71
|
-
"ISO-8859-7",
|
72
|
-
"ISO-8859-8",
|
73
|
-
NULL,
|
74
|
-
NULL,
|
75
|
-
"KOI8-R",
|
76
|
-
"KOI8-R",
|
77
|
-
NULL,
|
78
|
-
"ISO-8859-2",
|
79
|
-
"ISO-8859-9",
|
80
|
-
"ISO-8859-13",
|
81
|
-
"CP850",
|
82
|
-
"CP852",
|
83
|
-
NULL,
|
84
|
-
"UTF-8",
|
85
|
-
"Big5",
|
86
|
-
"EUC-KR",
|
87
|
-
"GB2312",
|
88
|
-
"GBK",
|
89
|
-
"Shift_JIS",
|
90
|
-
"TIS-620",
|
91
|
-
"UTF-16BE",
|
92
|
-
"eucJP-ms",
|
93
|
-
NULL,
|
94
|
-
NULL,
|
95
|
-
"ISO-8859-1",
|
96
|
-
"Windows-31J",
|
97
|
-
"Windows-31J",
|
98
|
-
"eucJP-ms",
|
99
|
-
"eucJP-ms",
|
100
|
-
"Windows-1250",
|
101
|
-
NULL,
|
102
|
-
"UTF-16",
|
103
|
-
"UTF-16",
|
104
|
-
"UTF-16",
|
105
|
-
"UTF-16",
|
106
|
-
"UTF-16",
|
107
|
-
"UTF-16",
|
108
|
-
"UTF-16",
|
109
|
-
"UTF-16",
|
110
|
-
"UTF-16",
|
111
|
-
"UTF-16",
|
112
|
-
"UTF-16",
|
113
|
-
"UTF-16",
|
114
|
-
"UTF-16",
|
115
|
-
"UTF-16",
|
116
|
-
"UTF-16",
|
117
|
-
"UTF-16",
|
118
|
-
"UTF-16",
|
119
|
-
"UTF-16",
|
120
|
-
"UTF-16",
|
121
|
-
"UTF-16",
|
122
|
-
NULL,
|
123
|
-
NULL,
|
124
|
-
NULL,
|
125
|
-
NULL,
|
126
|
-
NULL,
|
127
|
-
NULL,
|
128
|
-
NULL,
|
129
|
-
"UTF-16BE",
|
130
|
-
"UTF-16BE",
|
131
|
-
"UTF-16BE",
|
132
|
-
"UTF-16BE",
|
133
|
-
"UTF-16BE",
|
134
|
-
"UTF-16BE",
|
135
|
-
"UTF-16BE",
|
136
|
-
"UTF-16BE",
|
137
|
-
"UTF-16BE",
|
138
|
-
"UTF-16BE",
|
139
|
-
"UTF-16BE",
|
140
|
-
"UTF-16BE",
|
141
|
-
"UTF-16BE",
|
142
|
-
"UTF-16BE",
|
143
|
-
"UTF-16BE",
|
144
|
-
"UTF-16BE",
|
145
|
-
"UTF-16BE",
|
146
|
-
"UTF-16BE",
|
147
|
-
"UTF-16BE",
|
148
|
-
"UTF-16BE",
|
149
|
-
NULL,
|
150
|
-
NULL,
|
151
|
-
NULL,
|
152
|
-
NULL,
|
153
|
-
NULL,
|
154
|
-
NULL,
|
155
|
-
NULL,
|
156
|
-
NULL,
|
157
|
-
NULL,
|
158
|
-
NULL,
|
159
|
-
NULL,
|
160
|
-
NULL,
|
161
|
-
"UTF-32",
|
162
|
-
"UTF-32",
|
163
|
-
"UTF-32",
|
164
|
-
"UTF-32",
|
165
|
-
"UTF-32",
|
166
|
-
"UTF-32",
|
167
|
-
"UTF-32",
|
168
|
-
"UTF-32",
|
169
|
-
"UTF-32",
|
170
|
-
"UTF-32",
|
171
|
-
"UTF-32",
|
172
|
-
"UTF-32",
|
173
|
-
"UTF-32",
|
174
|
-
"UTF-32",
|
175
|
-
"UTF-32",
|
176
|
-
"UTF-32",
|
177
|
-
"UTF-32",
|
178
|
-
"UTF-32",
|
179
|
-
"UTF-32",
|
180
|
-
"UTF-32",
|
181
|
-
NULL,
|
182
|
-
NULL,
|
183
|
-
NULL,
|
184
|
-
NULL,
|
185
|
-
NULL,
|
186
|
-
NULL,
|
187
|
-
NULL,
|
188
|
-
NULL,
|
189
|
-
NULL,
|
190
|
-
NULL,
|
191
|
-
NULL,
|
192
|
-
NULL,
|
193
|
-
"UTF-8",
|
194
|
-
"UTF-8",
|
195
|
-
"UTF-8",
|
196
|
-
"UTF-8",
|
197
|
-
"UTF-8",
|
198
|
-
"UTF-8",
|
199
|
-
"UTF-8",
|
200
|
-
"UTF-8",
|
201
|
-
"UTF-8",
|
202
|
-
"UTF-8",
|
203
|
-
"UTF-8",
|
204
|
-
"UTF-8",
|
205
|
-
"UTF-8",
|
206
|
-
"UTF-8",
|
207
|
-
"UTF-8",
|
208
|
-
"UTF-8",
|
209
|
-
"UTF-8",
|
210
|
-
"UTF-8",
|
211
|
-
"UTF-8",
|
212
|
-
"UTF-8",
|
213
|
-
NULL,
|
214
|
-
NULL,
|
215
|
-
NULL,
|
216
|
-
NULL,
|
217
|
-
NULL,
|
218
|
-
NULL,
|
219
|
-
NULL,
|
220
|
-
NULL,
|
221
|
-
NULL,
|
222
|
-
NULL,
|
223
|
-
NULL,
|
224
|
-
NULL,
|
225
|
-
"UTF-8",
|
226
|
-
"UTF-8",
|
227
|
-
"UTF-8",
|
228
|
-
"UTF-8",
|
229
|
-
"UTF-8",
|
230
|
-
"UTF-8",
|
231
|
-
"UTF-8",
|
232
|
-
"UTF-8",
|
233
|
-
"UTF-8",
|
234
|
-
"UTF-8",
|
235
|
-
"UTF-8",
|
236
|
-
"UTF-8",
|
237
|
-
"UTF-8",
|
238
|
-
"UTF-8",
|
239
|
-
"UTF-8",
|
240
|
-
"UTF-8",
|
241
|
-
"UTF-8",
|
242
|
-
"UTF-8",
|
243
|
-
"UTF-8",
|
244
|
-
"UTF-8"
|
245
|
-
};
|
246
|
-
|