mysql2 0.3.10 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +1 -230
  3. data/LICENSE +21 -0
  4. data/README.md +405 -80
  5. data/ext/mysql2/client.c +1110 -335
  6. data/ext/mysql2/client.h +18 -32
  7. data/ext/mysql2/extconf.rb +228 -37
  8. data/ext/mysql2/infile.c +122 -0
  9. data/ext/mysql2/infile.h +1 -0
  10. data/ext/mysql2/mysql2_ext.c +3 -1
  11. data/ext/mysql2/mysql2_ext.h +18 -16
  12. data/ext/mysql2/mysql_enc_name_to_ruby.h +172 -0
  13. data/ext/mysql2/mysql_enc_to_ruby.h +310 -0
  14. data/ext/mysql2/result.c +671 -226
  15. data/ext/mysql2/result.h +15 -6
  16. data/ext/mysql2/statement.c +604 -0
  17. data/ext/mysql2/statement.h +17 -0
  18. data/ext/mysql2/wait_for_single_fd.h +2 -1
  19. data/lib/mysql2/client.rb +125 -212
  20. data/lib/mysql2/console.rb +5 -0
  21. data/lib/mysql2/em.rb +24 -8
  22. data/lib/mysql2/error.rb +93 -8
  23. data/lib/mysql2/field.rb +3 -0
  24. data/lib/mysql2/result.rb +2 -0
  25. data/lib/mysql2/statement.rb +11 -0
  26. data/lib/mysql2/version.rb +1 -1
  27. data/lib/mysql2.rb +70 -5
  28. data/support/5072E1F5.asc +432 -0
  29. data/support/libmysql.def +219 -0
  30. data/support/mysql_enc_to_ruby.rb +86 -0
  31. data/support/ruby_enc_to_mysql.rb +63 -0
  32. metadata +45 -214
  33. data/.gitignore +0 -12
  34. data/.rspec +0 -3
  35. data/.rvmrc +0 -1
  36. data/.travis.yml +0 -7
  37. data/Gemfile +0 -3
  38. data/MIT-LICENSE +0 -20
  39. data/Rakefile +0 -5
  40. data/benchmark/active_record.rb +0 -51
  41. data/benchmark/active_record_threaded.rb +0 -42
  42. data/benchmark/allocations.rb +0 -33
  43. data/benchmark/escape.rb +0 -36
  44. data/benchmark/query_with_mysql_casting.rb +0 -80
  45. data/benchmark/query_without_mysql_casting.rb +0 -56
  46. data/benchmark/sequel.rb +0 -37
  47. data/benchmark/setup_db.rb +0 -119
  48. data/benchmark/threaded.rb +0 -44
  49. data/examples/eventmachine.rb +0 -21
  50. data/examples/threaded.rb +0 -20
  51. data/mysql2.gemspec +0 -29
  52. data/spec/em/em_spec.rb +0 -50
  53. data/spec/mysql2/client_spec.rb +0 -465
  54. data/spec/mysql2/error_spec.rb +0 -69
  55. data/spec/mysql2/result_spec.rb +0 -388
  56. data/spec/rcov.opts +0 -3
  57. data/spec/spec_helper.rb +0 -67
  58. data/tasks/benchmarks.rake +0 -20
  59. data/tasks/compile.rake +0 -71
  60. data/tasks/rspec.rake +0 -16
  61. data/tasks/vendor_mysql.rake +0 -40
@@ -0,0 +1,172 @@
1
+ /* C code produced by gperf version 3.0.4 */
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 = 71, 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
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
50
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
51
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
52
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
53
+ 74, 74, 74, 74, 74, 74, 74, 74, 15, 5,
54
+ 0, 74, 5, 25, 40, 10, 20, 50, 74, 74,
55
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
56
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
57
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
58
+ 74, 74, 74, 74, 74, 74, 74, 40, 5, 0,
59
+ 15, 10, 0, 0, 0, 5, 74, 0, 25, 5,
60
+ 0, 5, 74, 74, 20, 5, 5, 0, 74, 45,
61
+ 74, 0, 74, 74, 74, 74, 74, 74, 74, 74,
62
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
63
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
64
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
65
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
66
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
67
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
68
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
69
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
70
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
71
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
72
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
73
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74
+ 74, 74, 74, 74, 74, 74
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
+ #if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_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 = 41,
93
+ MIN_WORD_LENGTH = 3,
94
+ MAX_WORD_LENGTH = 8,
95
+ MIN_HASH_VALUE = 3,
96
+ MAX_HASH_VALUE = 73
97
+ };
98
+
99
+ static const struct mysql2_mysql_enc_name_to_rb_map wordlist[] =
100
+ {
101
+ {""}, {""}, {""},
102
+ {"gbk", "GBK"},
103
+ {""},
104
+ {"utf32", "UTF-32"},
105
+ {"gb2312", "GB2312"},
106
+ {"keybcs2", NULL},
107
+ {""},
108
+ {"ucs2", "UTF-16BE"},
109
+ {"koi8u", "KOI8-R"},
110
+ {"binary", "ASCII-8BIT"},
111
+ {"utf8mb4", "UTF-8"},
112
+ {"macroman", "macRoman"},
113
+ {"ujis", "eucJP-ms"},
114
+ {"greek", "ISO-8859-7"},
115
+ {"cp1251", "Windows-1251"},
116
+ {"utf16le", "UTF-16LE"},
117
+ {""},
118
+ {"sjis", "Shift_JIS"},
119
+ {"macce", "macCentEuro"},
120
+ {"cp1257", "Windows-1257"},
121
+ {"eucjpms", "eucJP-ms"},
122
+ {""},
123
+ {"utf8", "UTF-8"},
124
+ {"cp852", "CP852"},
125
+ {"cp1250", "Windows-1250"},
126
+ {"gb18030", "GB18030"},
127
+ {""},
128
+ {"swe7", NULL},
129
+ {"koi8r", "KOI8-R"},
130
+ {"tis620", "TIS-620"},
131
+ {"geostd8", NULL},
132
+ {""},
133
+ {"big5", "Big5"},
134
+ {"euckr", "EUC-KR"},
135
+ {"latin2", "ISO-8859-2"},
136
+ {""}, {""},
137
+ {"dec8", NULL},
138
+ {"cp850", "CP850"},
139
+ {"latin1", "ISO-8859-1"},
140
+ {""},
141
+ {"hp8", NULL},
142
+ {""},
143
+ {"utf16", "UTF-16"},
144
+ {"latin7", "ISO-8859-13"},
145
+ {""}, {""}, {""},
146
+ {"ascii", "US-ASCII"},
147
+ {"cp1256", "Windows-1256"},
148
+ {""}, {""}, {""},
149
+ {"cp932", "Windows-31J"},
150
+ {"hebrew", "ISO-8859-8"},
151
+ {""}, {""}, {""}, {""},
152
+ {"latin5", "ISO-8859-9"},
153
+ {""}, {""}, {""},
154
+ {"cp866", "IBM866"},
155
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
156
+ {"armscii8", NULL}
157
+ };
158
+
159
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
160
+ {
161
+ register int key = mysql2_mysql_enc_name_to_rb_hash (str, len);
162
+
163
+ if (key <= MAX_HASH_VALUE && key >= 0)
164
+ {
165
+ register const char *s = wordlist[key].name;
166
+
167
+ if (*str == *s && !strcmp (str + 1, s + 1))
168
+ return &wordlist[key];
169
+ }
170
+ }
171
+ return 0;
172
+ }
@@ -0,0 +1,310 @@
1
+ static 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
+ "UTF-16LE",
58
+ "Windows-1256",
59
+ "Windows-1257",
60
+ "Windows-1257",
61
+ "UTF-32",
62
+ "UTF-32",
63
+ "UTF-16LE",
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
+ "UTF-8",
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
+ "UTF-16",
123
+ "UTF-16",
124
+ "UTF-16",
125
+ "UTF-16",
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
+ "UTF-16BE",
150
+ "UTF-16BE",
151
+ "UTF-16BE",
152
+ "UTF-16BE",
153
+ NULL,
154
+ NULL,
155
+ NULL,
156
+ NULL,
157
+ NULL,
158
+ NULL,
159
+ NULL,
160
+ "UTF-16BE",
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
+ "UTF-32",
182
+ "UTF-32",
183
+ "UTF-32",
184
+ "UTF-32",
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
+ "UTF-8",
214
+ "UTF-8",
215
+ "UTF-8",
216
+ "UTF-8",
217
+ NULL,
218
+ NULL,
219
+ NULL,
220
+ NULL,
221
+ NULL,
222
+ NULL,
223
+ NULL,
224
+ "UTF-8",
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
+ "UTF-8",
246
+ "UTF-8",
247
+ "UTF-8",
248
+ "UTF-8",
249
+ "GB18030",
250
+ "GB18030",
251
+ "GB18030",
252
+ NULL,
253
+ NULL,
254
+ NULL,
255
+ NULL,
256
+ "UTF-8",
257
+ "UTF-8",
258
+ "UTF-8",
259
+ "UTF-8",
260
+ "UTF-8",
261
+ "UTF-8",
262
+ "UTF-8",
263
+ "UTF-8",
264
+ "UTF-8",
265
+ "UTF-8",
266
+ "UTF-8",
267
+ "UTF-8",
268
+ "UTF-8",
269
+ "UTF-8",
270
+ "UTF-8",
271
+ "UTF-8",
272
+ "UTF-8",
273
+ NULL,
274
+ "UTF-8",
275
+ "UTF-8",
276
+ "UTF-8",
277
+ NULL,
278
+ "UTF-8",
279
+ "UTF-8",
280
+ "UTF-8",
281
+ "UTF-8",
282
+ "UTF-8",
283
+ "UTF-8",
284
+ "UTF-8",
285
+ "UTF-8",
286
+ "UTF-8",
287
+ "UTF-8",
288
+ "UTF-8",
289
+ "UTF-8",
290
+ "UTF-8",
291
+ "UTF-8",
292
+ "UTF-8",
293
+ "UTF-8",
294
+ "UTF-8",
295
+ "UTF-8",
296
+ NULL,
297
+ "UTF-8",
298
+ "UTF-8",
299
+ "UTF-8",
300
+ NULL,
301
+ "UTF-8",
302
+ NULL,
303
+ NULL,
304
+ "UTF-8",
305
+ "UTF-8",
306
+ "UTF-8",
307
+ "UTF-8",
308
+ "UTF-8",
309
+ "UTF-8"
310
+ };