ruby-mysql 2.9.13 → 2.9.14

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.

Potentially problematic release.


This version of ruby-mysql might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 202d13ae653ae79671fbe568f53f258bebcb453c
4
- data.tar.gz: dc69e58cf536f1e10195296f247e81efd9503887
3
+ metadata.gz: 113de8c9b46c75bf18b833a65205517938daf47d
4
+ data.tar.gz: 675d64d8cc1185e7f394c4f201aa18f427b18f11
5
5
  SHA512:
6
- metadata.gz: 390ae9a82ceca9c89c30c4837cc2fa06c00c8e2570bbd4bce5896f83dfb5c8cf5a082434f13b0729daf6c5513bf220be1c59342d1c548525e860c0321b1fb573
7
- data.tar.gz: 8986d9a99784a45f52d122426be397f7d9c956dce6f54303ba75311fa68d924e253abd9720379ae912d0ff52053e60ac915f6c35f08bde156f26296a51bec7fa
6
+ metadata.gz: 47b396bc40fa36e588d01899569f8b0cca6b256bb2d290fe2ce5ab44dc66a566c2b47d67f64cb8f4d2a8a0a62c352e878da681f88b89bc0a6811b12205754214
7
+ data.tar.gz: 2aa55a288ce9c5ca4f22be8b8a2c6750be23592a0e030b0077f622b43195691f81de20831a359098ce8a270050e3ffa4ab794439b039c267d803f0d23ad2330e
@@ -731,8 +731,8 @@ class Mysql
731
731
  max_length = Array.new(@fields.size, 0)
732
732
  @records.each_with_index do |rec, i|
733
733
  rec = @records[i] = rec.to_a if rec.is_a? RawRecord
734
- max_length.each_index do |i|
735
- max_length[i] = rec[i].length if rec[i] && rec[i].length > max_length[i]
734
+ max_length.each_index do |j|
735
+ max_length[j] = rec[j].length if rec[j] && rec[j].length > max_length[j]
736
736
  end
737
737
  end
738
738
  max_length.each_with_index do |len, i|
@@ -28,158 +28,230 @@ class Mysql
28
28
  # [[charset_number, charset_name, collation_name, default], ...]
29
29
  # @private
30
30
  CHARSETS = [
31
- [ 1, "big5", "big5_chinese_ci", true ],
32
- [ 2, "latin2", "latin2_czech_cs", false],
33
- [ 3, "dec8", "dec8_swedish_ci", true ],
34
- [ 4, "cp850", "cp850_general_ci", true ],
35
- [ 5, "latin1", "latin1_german1_ci", false],
36
- [ 6, "hp8", "hp8_english_ci", true ],
37
- [ 7, "koi8r", "koi8r_general_ci", true ],
38
- [ 8, "latin1", "latin1_swedish_ci", true ],
39
- [ 9, "latin2", "latin2_general_ci", true ],
40
- [ 10, "swe7", "swe7_swedish_ci", true ],
41
- [ 11, "ascii", "ascii_general_ci", true ],
42
- [ 12, "ujis", "ujis_japanese_ci", true ],
43
- [ 13, "sjis", "sjis_japanese_ci", true ],
44
- [ 14, "cp1251", "cp1251_bulgarian_ci", false],
45
- [ 15, "latin1", "latin1_danish_ci", false],
46
- [ 16, "hebrew", "hebrew_general_ci", true ],
47
- [ 17, "filename", "filename", true ],
48
- [ 18, "tis620", "tis620_thai_ci", true ],
49
- [ 19, "euckr", "euckr_korean_ci", true ],
50
- [ 20, "latin7", "latin7_estonian_cs", false],
51
- [ 21, "latin2", "latin2_hungarian_ci", false],
52
- [ 22, "koi8u", "koi8u_general_ci", true ],
53
- [ 23, "cp1251", "cp1251_ukrainian_ci", false],
54
- [ 24, "gb2312", "gb2312_chinese_ci", true ],
55
- [ 25, "greek", "greek_general_ci", true ],
56
- [ 26, "cp1250", "cp1250_general_ci", true ],
57
- [ 27, "latin2", "latin2_croatian_ci", false],
58
- [ 28, "gbk", "gbk_chinese_ci", true ],
59
- [ 29, "cp1257", "cp1257_lithuanian_ci", false],
60
- [ 30, "latin5", "latin5_turkish_ci", true ],
61
- [ 31, "latin1", "latin1_german2_ci", false],
62
- [ 32, "armscii8", "armscii8_general_ci", true ],
63
- [ 33, "utf8", "utf8_general_ci", true ],
64
- [ 34, "cp1250", "cp1250_czech_cs", false],
65
- [ 35, "ucs2", "ucs2_general_ci", true ],
66
- [ 36, "cp866", "cp866_general_ci", true ],
67
- [ 37, "keybcs2", "keybcs2_general_ci", true ],
68
- [ 38, "macce", "macce_general_ci", true ],
69
- [ 39, "macroman", "macroman_general_ci", true ],
70
- [ 40, "cp852", "cp852_general_ci", true ],
71
- [ 41, "latin7", "latin7_general_ci", true ],
72
- [ 42, "latin7", "latin7_general_cs", false],
73
- [ 43, "macce", "macce_bin", false],
74
- [ 44, "cp1250", "cp1250_croatian_ci", false],
75
- [ 45, "utf8mb4", "utf8mb4_general_ci", true ],
76
- [ 46, "utf8mb4", "utf8mb4_bin", false],
77
- [ 47, "latin1", "latin1_bin", false],
78
- [ 48, "latin1", "latin1_general_ci", false],
79
- [ 49, "latin1", "latin1_general_cs", false],
80
- [ 50, "cp1251", "cp1251_bin", false],
81
- [ 51, "cp1251", "cp1251_general_ci", true ],
82
- [ 52, "cp1251", "cp1251_general_cs", false],
83
- [ 53, "macroman", "macroman_bin", false],
84
- [ 57, "cp1256", "cp1256_general_ci", true ],
85
- [ 58, "cp1257", "cp1257_bin", false],
86
- [ 59, "cp1257", "cp1257_general_ci", true ],
87
- [ 63, "binary", "binary", true ],
88
- [ 64, "armscii8", "armscii8_bin", false],
89
- [ 65, "ascii", "ascii_bin", false],
90
- [ 66, "cp1250", "cp1250_bin", false],
91
- [ 67, "cp1256", "cp1256_bin", false],
92
- [ 68, "cp866", "cp866_bin", false],
93
- [ 69, "dec8", "dec8_bin", false],
94
- [ 70, "greek", "greek_bin", false],
95
- [ 71, "hebrew", "hebrew_bin", false],
96
- [ 72, "hp8", "hp8_bin", false],
97
- [ 73, "keybcs2", "keybcs2_bin", false],
98
- [ 74, "koi8r", "koi8r_bin", false],
99
- [ 75, "koi8u", "koi8u_bin", false],
100
- [ 77, "latin2", "latin2_bin", false],
101
- [ 78, "latin5", "latin5_bin", false],
102
- [ 79, "latin7", "latin7_bin", false],
103
- [ 80, "cp850", "cp850_bin", false],
104
- [ 81, "cp852", "cp852_bin", false],
105
- [ 82, "swe7", "swe7_bin", false],
106
- [ 83, "utf8", "utf8_bin", false],
107
- [ 84, "big5", "big5_bin", false],
108
- [ 85, "euckr", "euckr_bin", false],
109
- [ 86, "gb2312", "gb2312_bin", false],
110
- [ 87, "gbk", "gbk_bin", false],
111
- [ 88, "sjis", "sjis_bin", false],
112
- [ 89, "tis620", "tis620_bin", false],
113
- [ 90, "ucs2", "ucs2_bin", false],
114
- [ 91, "ujis", "ujis_bin", false],
115
- [ 92, "geostd8", "geostd8_general_ci", true ],
116
- [ 93, "geostd8", "geostd8_bin", false],
117
- [ 94, "latin1", "latin1_spanish_ci", false],
118
- [ 95, "cp932", "cp932_japanese_ci", true ],
119
- [ 96, "cp932", "cp932_bin", false],
120
- [ 97, "eucjpms", "eucjpms_japanese_ci", true ],
121
- [ 98, "eucjpms", "eucjpms_bin", false],
122
- [ 99, "cp1250", "cp1250_polish_ci", false],
123
- [128, "ucs2", "ucs2_unicode_ci", false],
124
- [129, "ucs2", "ucs2_icelandic_ci", false],
125
- [130, "ucs2", "ucs2_latvian_ci", false],
126
- [131, "ucs2", "ucs2_romanian_ci", false],
127
- [132, "ucs2", "ucs2_slovenian_ci", false],
128
- [133, "ucs2", "ucs2_polish_ci", false],
129
- [134, "ucs2", "ucs2_estonian_ci", false],
130
- [135, "ucs2", "ucs2_spanish_ci", false],
131
- [136, "ucs2", "ucs2_swedish_ci", false],
132
- [137, "ucs2", "ucs2_turkish_ci", false],
133
- [138, "ucs2", "ucs2_czech_ci", false],
134
- [139, "ucs2", "ucs2_danish_ci", false],
135
- [140, "ucs2", "ucs2_lithuanian_ci", false],
136
- [141, "ucs2", "ucs2_slovak_ci", false],
137
- [142, "ucs2", "ucs2_spanish2_ci", false],
138
- [143, "ucs2", "ucs2_roman_ci", false],
139
- [144, "ucs2", "ucs2_persian_ci", false],
140
- [145, "ucs2", "ucs2_esperanto_ci", false],
141
- [146, "ucs2", "ucs2_hungarian_ci", false],
142
- [192, "utf8", "utf8_unicode_ci", false],
143
- [193, "utf8", "utf8_icelandic_ci", false],
144
- [194, "utf8", "utf8_latvian_ci", false],
145
- [195, "utf8", "utf8_romanian_ci", false],
146
- [196, "utf8", "utf8_slovenian_ci", false],
147
- [197, "utf8", "utf8_polish_ci", false],
148
- [198, "utf8", "utf8_estonian_ci", false],
149
- [199, "utf8", "utf8_spanish_ci", false],
150
- [200, "utf8", "utf8_swedish_ci", false],
151
- [201, "utf8", "utf8_turkish_ci", false],
152
- [202, "utf8", "utf8_czech_ci", false],
153
- [203, "utf8", "utf8_danish_ci", false],
154
- [204, "utf8", "utf8_lithuanian_ci", false],
155
- [205, "utf8", "utf8_slovak_ci", false],
156
- [206, "utf8", "utf8_spanish2_ci", false],
157
- [207, "utf8", "utf8_roman_ci", false],
158
- [208, "utf8", "utf8_persian_ci", false],
159
- [209, "utf8", "utf8_esperanto_ci", false],
160
- [210, "utf8", "utf8_hungarian_ci", false],
161
- [211, "utf8", "utf8_sinhala_ci", false],
162
- [224, "utf8mb4", "utf8mb4_unicode_ci", false],
163
- [225, "utf8mb4", "utf8mb4_icelandic_ci", false],
164
- [226, "utf8mb4", "utf8mb4_latvian_ci", false],
165
- [227, "utf8mb4", "utf8mb4_romanian_ci", false],
166
- [228, "utf8mb4", "utf8mb4_slovenian_ci", false],
167
- [229, "utf8mb4", "utf8mb4_polish_ci", false],
168
- [230, "utf8mb4", "utf8mb4_estonian_ci", false],
169
- [231, "utf8mb4", "utf8mb4_spanish_ci", false],
170
- [232, "utf8mb4", "utf8mb4_swedish_ci", false],
171
- [233, "utf8mb4", "utf8mb4_turkish_ci", false],
172
- [234, "utf8mb4", "utf8mb4_czech_ci", false],
173
- [235, "utf8mb4", "utf8mb4_danish_ci", false],
174
- [236, "utf8mb4", "utf8mb4_lithuanian_ci", false],
175
- [237, "utf8mb4", "utf8mb4_slovak_ci", false],
176
- [238, "utf8mb4", "utf8mb4_spanish2_ci", false],
177
- [239, "utf8mb4", "utf8mb4_roman_ci", false],
178
- [240, "utf8mb4", "utf8mb4_persian_ci", false],
179
- [241, "utf8mb4", "utf8mb4_esperanto_ci", false],
180
- [242, "utf8mb4", "utf8mb4_hungarian_ci", false],
181
- [243, "utf8mb4", "utf8mb4_sinhala_ci", false],
182
- [254, "utf8", "utf8_general_cs", false],
31
+ [ 1, "big5", "big5_chinese_ci", true ],
32
+ [ 2, "latin2", "latin2_czech_cs", false],
33
+ [ 3, "dec8", "dec8_swedish_ci", true ],
34
+ [ 4, "cp850", "cp850_general_ci", true ],
35
+ [ 5, "latin1", "latin1_german1_ci", false],
36
+ [ 6, "hp8", "hp8_english_ci", true ],
37
+ [ 7, "koi8r", "koi8r_general_ci", true ],
38
+ [ 8, "latin1", "latin1_swedish_ci", true ],
39
+ [ 9, "latin2", "latin2_general_ci", true ],
40
+ [ 10, "swe7", "swe7_swedish_ci", true ],
41
+ [ 11, "ascii", "ascii_general_ci", true ],
42
+ [ 12, "ujis", "ujis_japanese_ci", true ],
43
+ [ 13, "sjis", "sjis_japanese_ci", true ],
44
+ [ 14, "cp1251", "cp1251_bulgarian_ci", false],
45
+ [ 15, "latin1", "latin1_danish_ci", false],
46
+ [ 16, "hebrew", "hebrew_general_ci", true ],
47
+ [ 17, "filename", "filename", true ],
48
+ [ 18, "tis620", "tis620_thai_ci", true ],
49
+ [ 19, "euckr", "euckr_korean_ci", true ],
50
+ [ 20, "latin7", "latin7_estonian_cs", false],
51
+ [ 21, "latin2", "latin2_hungarian_ci", false],
52
+ [ 22, "koi8u", "koi8u_general_ci", true ],
53
+ [ 23, "cp1251", "cp1251_ukrainian_ci", false],
54
+ [ 24, "gb2312", "gb2312_chinese_ci", true ],
55
+ [ 25, "greek", "greek_general_ci", true ],
56
+ [ 26, "cp1250", "cp1250_general_ci", true ],
57
+ [ 27, "latin2", "latin2_croatian_ci", false],
58
+ [ 28, "gbk", "gbk_chinese_ci", true ],
59
+ [ 29, "cp1257", "cp1257_lithuanian_ci", false],
60
+ [ 30, "latin5", "latin5_turkish_ci", true ],
61
+ [ 31, "latin1", "latin1_german2_ci", false],
62
+ [ 32, "armscii8", "armscii8_general_ci", true ],
63
+ [ 33, "utf8", "utf8_general_ci", true ],
64
+ [ 34, "cp1250", "cp1250_czech_cs", false],
65
+ [ 35, "ucs2", "ucs2_general_ci", true ],
66
+ [ 36, "cp866", "cp866_general_ci", true ],
67
+ [ 37, "keybcs2", "keybcs2_general_ci", true ],
68
+ [ 38, "macce", "macce_general_ci", true ],
69
+ [ 39, "macroman", "macroman_general_ci", true ],
70
+ [ 40, "cp852", "cp852_general_ci", true ],
71
+ [ 41, "latin7", "latin7_general_ci", true ],
72
+ [ 42, "latin7", "latin7_general_cs", false],
73
+ [ 43, "macce", "macce_bin", false],
74
+ [ 44, "cp1250", "cp1250_croatian_ci", false],
75
+ [ 45, "utf8mb4", "utf8mb4_general_ci", true ],
76
+ [ 46, "utf8mb4", "utf8mb4_bin", false],
77
+ [ 47, "latin1", "latin1_bin", false],
78
+ [ 48, "latin1", "latin1_general_ci", false],
79
+ [ 49, "latin1", "latin1_general_cs", false],
80
+ [ 50, "cp1251", "cp1251_bin", false],
81
+ [ 51, "cp1251", "cp1251_general_ci", true ],
82
+ [ 52, "cp1251", "cp1251_general_cs", false],
83
+ [ 53, "macroman", "macroman_bin", false],
84
+ [ 54, "utf16", "utf16_general_ci", true ],
85
+ [ 55, "utf16", "utf16_bin", false],
86
+ [ 56, "utf16le", "utf16le_general_ci", true ],
87
+ [ 57, "cp1256", "cp1256_general_ci", true ],
88
+ [ 58, "cp1257", "cp1257_bin", false],
89
+ [ 59, "cp1257", "cp1257_general_ci", true ],
90
+ [ 60, "utf32", "utf32_general_ci", true ],
91
+ [ 61, "utf32", "utf32_bin", false],
92
+ [ 62, "utf16le", "utf16le_bin", false],
93
+ [ 63, "binary", "binary", true ],
94
+ [ 64, "armscii8", "armscii8_bin", false],
95
+ [ 65, "ascii", "ascii_bin", false],
96
+ [ 66, "cp1250", "cp1250_bin", false],
97
+ [ 67, "cp1256", "cp1256_bin", false],
98
+ [ 68, "cp866", "cp866_bin", false],
99
+ [ 69, "dec8", "dec8_bin", false],
100
+ [ 70, "greek", "greek_bin", false],
101
+ [ 71, "hebrew", "hebrew_bin", false],
102
+ [ 72, "hp8", "hp8_bin", false],
103
+ [ 73, "keybcs2", "keybcs2_bin", false],
104
+ [ 74, "koi8r", "koi8r_bin", false],
105
+ [ 75, "koi8u", "koi8u_bin", false],
106
+ [ 77, "latin2", "latin2_bin", false],
107
+ [ 78, "latin5", "latin5_bin", false],
108
+ [ 79, "latin7", "latin7_bin", false],
109
+ [ 80, "cp850", "cp850_bin", false],
110
+ [ 81, "cp852", "cp852_bin", false],
111
+ [ 82, "swe7", "swe7_bin", false],
112
+ [ 83, "utf8", "utf8_bin", false],
113
+ [ 84, "big5", "big5_bin", false],
114
+ [ 85, "euckr", "euckr_bin", false],
115
+ [ 86, "gb2312", "gb2312_bin", false],
116
+ [ 87, "gbk", "gbk_bin", false],
117
+ [ 88, "sjis", "sjis_bin", false],
118
+ [ 89, "tis620", "tis620_bin", false],
119
+ [ 90, "ucs2", "ucs2_bin", false],
120
+ [ 91, "ujis", "ujis_bin", false],
121
+ [ 92, "geostd8", "geostd8_general_ci", true ],
122
+ [ 93, "geostd8", "geostd8_bin", false],
123
+ [ 94, "latin1", "latin1_spanish_ci", false],
124
+ [ 95, "cp932", "cp932_japanese_ci", true ],
125
+ [ 96, "cp932", "cp932_bin", false],
126
+ [ 97, "eucjpms", "eucjpms_japanese_ci", true ],
127
+ [ 98, "eucjpms", "eucjpms_bin", false],
128
+ [ 99, "cp1250", "cp1250_polish_ci", false],
129
+ [101, "utf16", "utf16_unicode_ci", false],
130
+ [102, "utf16", "utf16_icelandic_ci", false],
131
+ [103, "utf16", "utf16_latvian_ci", false],
132
+ [104, "utf16", "utf16_romanian_ci", false],
133
+ [105, "utf16", "utf16_slovenian_ci", false],
134
+ [106, "utf16", "utf16_polish_ci", false],
135
+ [107, "utf16", "utf16_estonian_ci", false],
136
+ [108, "utf16", "utf16_spanish_ci", false],
137
+ [109, "utf16", "utf16_swedish_ci", false],
138
+ [110, "utf16", "utf16_turkish_ci", false],
139
+ [111, "utf16", "utf16_czech_ci", false],
140
+ [112, "utf16", "utf16_danish_ci", false],
141
+ [113, "utf16", "utf16_lithuanian_ci", false],
142
+ [114, "utf16", "utf16_slovak_ci", false],
143
+ [115, "utf16", "utf16_spanish2_ci", false],
144
+ [116, "utf16", "utf16_roman_ci", false],
145
+ [117, "utf16", "utf16_persian_ci", false],
146
+ [118, "utf16", "utf16_esperanto_ci", false],
147
+ [119, "utf16", "utf16_hungarian_ci", false],
148
+ [120, "utf16", "utf16_sinhala_ci", false],
149
+ [121, "utf16", "utf16_german2_ci", false],
150
+ [122, "utf16", "utf16_croatian_ci", false],
151
+ [123, "utf16", "utf16_unicode_520_ci", false],
152
+ [124, "utf16", "utf16_vietnamese_ci", false],
153
+ [128, "ucs2", "ucs2_unicode_ci", false],
154
+ [129, "ucs2", "ucs2_icelandic_ci", false],
155
+ [130, "ucs2", "ucs2_latvian_ci", false],
156
+ [131, "ucs2", "ucs2_romanian_ci", false],
157
+ [132, "ucs2", "ucs2_slovenian_ci", false],
158
+ [133, "ucs2", "ucs2_polish_ci", false],
159
+ [134, "ucs2", "ucs2_estonian_ci", false],
160
+ [135, "ucs2", "ucs2_spanish_ci", false],
161
+ [136, "ucs2", "ucs2_swedish_ci", false],
162
+ [137, "ucs2", "ucs2_turkish_ci", false],
163
+ [138, "ucs2", "ucs2_czech_ci", false],
164
+ [139, "ucs2", "ucs2_danish_ci", false],
165
+ [140, "ucs2", "ucs2_lithuanian_ci", false],
166
+ [141, "ucs2", "ucs2_slovak_ci", false],
167
+ [142, "ucs2", "ucs2_spanish2_ci", false],
168
+ [143, "ucs2", "ucs2_roman_ci", false],
169
+ [144, "ucs2", "ucs2_persian_ci", false],
170
+ [145, "ucs2", "ucs2_esperanto_ci", false],
171
+ [146, "ucs2", "ucs2_hungarian_ci", false],
172
+ [147, "ucs2", "ucs2_sinhala_ci", false],
173
+ [148, "ucs2", "ucs2_german2_ci", false],
174
+ [149, "ucs2", "ucs2_croatian_ci", false],
175
+ [150, "ucs2", "ucs2_unicode_520_ci", false],
176
+ [151, "ucs2", "ucs2_vietnamese_ci", false],
177
+ [159, "ucs2", "ucs2_general_mysql500_ci", false],
178
+ [160, "utf32", "utf32_unicode_ci", false],
179
+ [161, "utf32", "utf32_icelandic_ci", false],
180
+ [162, "utf32", "utf32_latvian_ci", false],
181
+ [163, "utf32", "utf32_romanian_ci", false],
182
+ [164, "utf32", "utf32_slovenian_ci", false],
183
+ [165, "utf32", "utf32_polish_ci", false],
184
+ [166, "utf32", "utf32_estonian_ci", false],
185
+ [167, "utf32", "utf32_spanish_ci", false],
186
+ [168, "utf32", "utf32_swedish_ci", false],
187
+ [169, "utf32", "utf32_turkish_ci", false],
188
+ [170, "utf32", "utf32_czech_ci", false],
189
+ [171, "utf32", "utf32_danish_ci", false],
190
+ [172, "utf32", "utf32_lithuanian_ci", false],
191
+ [173, "utf32", "utf32_slovak_ci", false],
192
+ [174, "utf32", "utf32_spanish2_ci", false],
193
+ [175, "utf32", "utf32_roman_ci", false],
194
+ [176, "utf32", "utf32_persian_ci", false],
195
+ [177, "utf32", "utf32_esperanto_ci", false],
196
+ [178, "utf32", "utf32_hungarian_ci", false],
197
+ [179, "utf32", "utf32_sinhala_ci", false],
198
+ [180, "utf32", "utf32_german2_ci", false],
199
+ [181, "utf32", "utf32_croatian_ci", false],
200
+ [182, "utf32", "utf32_unicode_520_ci", false],
201
+ [183, "utf32", "utf32_vietnamese_ci", false],
202
+ [192, "utf8", "utf8_unicode_ci", false],
203
+ [193, "utf8", "utf8_icelandic_ci", false],
204
+ [194, "utf8", "utf8_latvian_ci", false],
205
+ [195, "utf8", "utf8_romanian_ci", false],
206
+ [196, "utf8", "utf8_slovenian_ci", false],
207
+ [197, "utf8", "utf8_polish_ci", false],
208
+ [198, "utf8", "utf8_estonian_ci", false],
209
+ [199, "utf8", "utf8_spanish_ci", false],
210
+ [200, "utf8", "utf8_swedish_ci", false],
211
+ [201, "utf8", "utf8_turkish_ci", false],
212
+ [202, "utf8", "utf8_czech_ci", false],
213
+ [203, "utf8", "utf8_danish_ci", false],
214
+ [204, "utf8", "utf8_lithuanian_ci", false],
215
+ [205, "utf8", "utf8_slovak_ci", false],
216
+ [206, "utf8", "utf8_spanish2_ci", false],
217
+ [207, "utf8", "utf8_roman_ci", false],
218
+ [208, "utf8", "utf8_persian_ci", false],
219
+ [209, "utf8", "utf8_esperanto_ci", false],
220
+ [210, "utf8", "utf8_hungarian_ci", false],
221
+ [211, "utf8", "utf8_sinhala_ci", false],
222
+ [212, "utf8", "utf8_german2_ci", false],
223
+ [213, "utf8", "utf8_croatian_ci", false],
224
+ [214, "utf8", "utf8_unicode_520_ci", false],
225
+ [215, "utf8", "utf8_vietnamese_ci", false],
226
+ [223, "utf8", "utf8_general_mysql500_ci", false],
227
+ [224, "utf8mb4", "utf8mb4_unicode_ci", false],
228
+ [225, "utf8mb4", "utf8mb4_icelandic_ci", false],
229
+ [226, "utf8mb4", "utf8mb4_latvian_ci", false],
230
+ [227, "utf8mb4", "utf8mb4_romanian_ci", false],
231
+ [228, "utf8mb4", "utf8mb4_slovenian_ci", false],
232
+ [229, "utf8mb4", "utf8mb4_polish_ci", false],
233
+ [230, "utf8mb4", "utf8mb4_estonian_ci", false],
234
+ [231, "utf8mb4", "utf8mb4_spanish_ci", false],
235
+ [232, "utf8mb4", "utf8mb4_swedish_ci", false],
236
+ [233, "utf8mb4", "utf8mb4_turkish_ci", false],
237
+ [234, "utf8mb4", "utf8mb4_czech_ci", false],
238
+ [235, "utf8mb4", "utf8mb4_danish_ci", false],
239
+ [236, "utf8mb4", "utf8mb4_lithuanian_ci", false],
240
+ [237, "utf8mb4", "utf8mb4_slovak_ci", false],
241
+ [238, "utf8mb4", "utf8mb4_spanish2_ci", false],
242
+ [239, "utf8mb4", "utf8mb4_roman_ci", false],
243
+ [240, "utf8mb4", "utf8mb4_persian_ci", false],
244
+ [241, "utf8mb4", "utf8mb4_esperanto_ci", false],
245
+ [242, "utf8mb4", "utf8mb4_hungarian_ci", false],
246
+ [243, "utf8mb4", "utf8mb4_sinhala_ci", false],
247
+ [244, "utf8mb4", "utf8mb4_german2_ci", false],
248
+ [245, "utf8mb4", "utf8mb4_croatian_ci", false],
249
+ [246, "utf8mb4", "utf8mb4_unicode_520_ci", false],
250
+ [247, "utf8mb4", "utf8mb4_vietnamese_ci", false],
251
+ [248, "gb18030", "gb18030_chinese_ci", true ],
252
+ [249, "gb18030", "gb18030_bin", false],
253
+ [250, "gb18030", "gb18030_unicode_520_ci", false],
254
+ [254, "utf8", "utf8_general_cs", false],
183
255
  ]
184
256
 
185
257
  # @private
@@ -33,26 +33,38 @@ class Mysql
33
33
  COM_STMT_RESET = 26
34
34
  COM_SET_OPTION = 27
35
35
  COM_STMT_FETCH = 28
36
+ COM_DAEMON = 29
37
+ COM_BINLOG_DUMP_GTID = 30
38
+ COM_RESET_CONNECTION = 31
36
39
 
37
40
  # Client flag
38
- CLIENT_LONG_PASSWORD = 1 # new more secure passwords
39
- CLIENT_FOUND_ROWS = 1 << 1 # Found instead of affected rows
40
- CLIENT_LONG_FLAG = 1 << 2 # Get all column flags
41
- CLIENT_CONNECT_WITH_DB = 1 << 3 # One can specify db on connect
42
- CLIENT_NO_SCHEMA = 1 << 4 # Don't allow database.table.column
43
- CLIENT_COMPRESS = 1 << 5 # Can use compression protocol
44
- CLIENT_ODBC = 1 << 6 # Odbc client
45
- CLIENT_LOCAL_FILES = 1 << 7 # Can use LOAD DATA LOCAL
46
- CLIENT_IGNORE_SPACE = 1 << 8 # Ignore spaces before '('
47
- CLIENT_PROTOCOL_41 = 1 << 9 # New 4.1 protocol
48
- CLIENT_INTERACTIVE = 1 << 10 # This is an interactive client
49
- CLIENT_SSL = 1 << 11 # Switch to SSL after handshake
50
- CLIENT_IGNORE_SIGPIPE = 1 << 12 # IGNORE sigpipes
51
- CLIENT_TRANSACTIONS = 1 << 13 # Client knows about transactions
52
- CLIENT_RESERVED = 1 << 14 # Old flag for 4.1 protocol
53
- CLIENT_SECURE_CONNECTION = 1 << 15 # New 4.1 authentication
54
- CLIENT_MULTI_STATEMENTS = 1 << 16 # Enable/disable multi-stmt support
55
- CLIENT_MULTI_RESULTS = 1 << 17 # Enable/disable multi-results
41
+ CLIENT_LONG_PASSWORD = 1 # new more secure passwords
42
+ CLIENT_FOUND_ROWS = 1 << 1 # Found instead of affected rows
43
+ CLIENT_LONG_FLAG = 1 << 2 # Get all column flags
44
+ CLIENT_CONNECT_WITH_DB = 1 << 3 # One can specify db on connect
45
+ CLIENT_NO_SCHEMA = 1 << 4 # Don't allow database.table.column
46
+ CLIENT_COMPRESS = 1 << 5 # Can use compression protocol
47
+ CLIENT_ODBC = 1 << 6 # Odbc client
48
+ CLIENT_LOCAL_FILES = 1 << 7 # Can use LOAD DATA LOCAL
49
+ CLIENT_IGNORE_SPACE = 1 << 8 # Ignore spaces before '('
50
+ CLIENT_PROTOCOL_41 = 1 << 9 # New 4.1 protocol
51
+ CLIENT_INTERACTIVE = 1 << 10 # This is an interactive client
52
+ CLIENT_SSL = 1 << 11 # Switch to SSL after handshake
53
+ CLIENT_IGNORE_SIGPIPE = 1 << 12 # IGNORE sigpipes
54
+ CLIENT_TRANSACTIONS = 1 << 13 # Client knows about transactions
55
+ CLIENT_RESERVED = 1 << 14 # Old flag for 4.1 protocol
56
+ CLIENT_SECURE_CONNECTION = 1 << 15 # New 4.1 authentication
57
+ CLIENT_MULTI_STATEMENTS = 1 << 16 # Enable/disable multi-stmt support
58
+ CLIENT_MULTI_RESULTS = 1 << 17 # Enable/disable multi-results
59
+ CLIENT_PS_MULTI_RESULTS = 1 << 18 # Multi-results in PS-protocol
60
+ CLIENT_PLUGIN_AUTH = 1 << 19 # Client supports plugin authentication
61
+ CLIENT_CONNECT_ATTRS = 1 << 20 # Client supports connection attribute
62
+ CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA = 1 << 21 # Enable authentication response packet to be larger than 255 bytes.
63
+ CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS = 1 << 22 # Don't close the connection for a connection with expired password.
64
+ CLIENT_SESSION_TRACK = 1 << 23 # Capable of handling server state change information. Its a hint to the server to include the state change information in Ok packet.
65
+ CLIENT_DEPRECATE_EOF = 1 << 24 # Client no longer needs EOF packet
66
+ CLIENT_SSL_VERIFY_SERVER_CERT = 1 << 30
67
+ CLIENT_REMEMBER_OPTIONS = 1 << 31
56
68
 
57
69
  # Connection Option
58
70
  OPT_CONNECT_TIMEOUT = 0
@@ -92,18 +104,35 @@ class Mysql
92
104
  SERVER_STATUS_LAST_ROW_SENT = 1 << 7
93
105
  SERVER_STATUS_DB_DROPPED = 1 << 8
94
106
  SERVER_STATUS_NO_BACKSLASH_ESCAPES = 1 << 9
107
+ SERVER_STATUS_METADATA_CHANGED = 1 << 10
108
+ SERVER_QUERY_WAS_SLOW = 1 << 11
109
+ SERVER_PS_OUT_PARAMS = 1 << 12
110
+ SERVER_STATUS_IN_TRANS_READONLY = 1 << 13
111
+ SERVER_SESSION_STATE_CHANGED = 1 << 14
95
112
 
96
113
  # Refresh parameter
97
- REFRESH_GRANT = 1
98
- REFRESH_LOG = 1 << 1
99
- REFRESH_TABLES = 1 << 2
100
- REFRESH_HOSTS = 1 << 3
101
- REFRESH_STATUS = 1 << 4
102
- REFRESH_THREADS = 1 << 5
103
- REFRESH_SLAVE = 1 << 6
104
- REFRESH_MASTER = 1 << 7
105
- REFRESH_READ_LOCK = 1 << 14
106
- REFRESH_FAST = 1 << 15
114
+ REFRESH_GRANT = 1
115
+ REFRESH_LOG = 1 << 1
116
+ REFRESH_TABLES = 1 << 2
117
+ REFRESH_HOSTS = 1 << 3
118
+ REFRESH_STATUS = 1 << 4
119
+ REFRESH_THREADS = 1 << 5
120
+ REFRESH_SLAVE = 1 << 6
121
+ REFRESH_MASTER = 1 << 7
122
+ REFRESH_ERROR_LOG = 1 << 8
123
+ REFRESH_ENGINE_LOG = 1 << 9
124
+ REFRESH_BINARY_LOG = 1 << 10
125
+ REFRESH_RELAY_LOG = 1 << 11
126
+ REFRESH_GENERAL_LOG = 1 << 12
127
+ REFRESH_SLOW_LOG = 1 << 13
128
+ REFRESH_READ_LOCK = 1 << 14
129
+ REFRESH_FAST = 1 << 15
130
+ REFRESH_QUERY_CACHE = 1 << 16
131
+ REFRESH_QUERY_CACHE_FREE = 1 << 17
132
+ REFRESH_DES_KEY_FILE = 1 << 18
133
+ REFRESH_USER_RESOURCES = 1 << 19
134
+ REFRESH_FOR_EXPORT = 1 << 20
135
+ REFRESH_OPTIMIZER_COSTS = 1 << 21
107
136
 
108
137
  class Field
109
138
  # Field type
@@ -124,6 +153,10 @@ class Mysql
124
153
  TYPE_NEWDATE = 14
125
154
  TYPE_VARCHAR = 15
126
155
  TYPE_BIT = 16
156
+ TYPE_TIMESTAMP2 = 17
157
+ TYPE_DATETIME2 = 18
158
+ TYPE_TIME2 = 19
159
+ TYPE_JSON = 245
127
160
  TYPE_NEWDECIMAL = 246
128
161
  TYPE_ENUM = 247
129
162
  TYPE_SET = 248
@@ -138,28 +171,32 @@ class Mysql
138
171
  TYPE_INTERVAL = TYPE_ENUM
139
172
 
140
173
  # Flag
141
- NOT_NULL_FLAG = 1
142
- PRI_KEY_FLAG = 2
143
- UNIQUE_KEY_FLAG = 4
144
- MULTIPLE_KEY_FLAG = 8
145
- BLOB_FLAG = 16
146
- UNSIGNED_FLAG = 32
147
- ZEROFILL_FLAG = 64
148
- BINARY_FLAG = 128
149
- ENUM_FLAG = 256
150
- AUTO_INCREMENT_FLAG = 512
151
- TIMESTAMP_FLAG = 1024
152
- SET_FLAG = 2048
153
- NUM_FLAG = 32768
154
- PART_KEY_FLAG = 16384
155
- GROUP_FLAG = 32768
156
- UNIQUE_FLAG = 65536
157
- BINCMP_FLAG = 131072
174
+ NOT_NULL_FLAG = 1
175
+ PRI_KEY_FLAG = 2
176
+ UNIQUE_KEY_FLAG = 4
177
+ MULTIPLE_KEY_FLAG = 8
178
+ BLOB_FLAG = 16
179
+ UNSIGNED_FLAG = 32
180
+ ZEROFILL_FLAG = 64
181
+ BINARY_FLAG = 128
182
+ ENUM_FLAG = 256
183
+ AUTO_INCREMENT_FLAG = 512
184
+ TIMESTAMP_FLAG = 1024
185
+ SET_FLAG = 2048
186
+ NO_DEFAULT_VALUE_FLAG = 4096
187
+ ON_UPDATE_NOW_FLAG = 8192
188
+ NUM_FLAG = 32768
189
+ PART_KEY_FLAG = 16384
190
+ GROUP_FLAG = 32768
191
+ UNIQUE_FLAG = 65536
192
+ BINCMP_FLAG = 131072
158
193
  end
159
194
 
160
195
  class Stmt
161
196
  # Cursor type
162
- CURSOR_TYPE_NO_CURSOR = 0
163
- CURSOR_TYPE_READ_ONLY = 1
197
+ CURSOR_TYPE_NO_CURSOR = 0
198
+ CURSOR_TYPE_READ_ONLY = 1
199
+ CURSOR_TYPE_FOR_UPDATE = 2
200
+ CURSOR_TYPE_SCROLLABLE = 4
164
201
  end
165
202
  end
@@ -23,7 +23,7 @@ class Mysql
23
23
  # Object :: converted value.
24
24
  def self.net2value(pkt, type, unsigned)
25
25
  case type
26
- when Field::TYPE_STRING, Field::TYPE_VAR_STRING, Field::TYPE_NEWDECIMAL, Field::TYPE_BLOB
26
+ when Field::TYPE_STRING, Field::TYPE_VAR_STRING, Field::TYPE_NEWDECIMAL, Field::TYPE_BLOB, Field::TYPE_JSON
27
27
  return pkt.lcs
28
28
  when Field::TYPE_TINY
29
29
  v = pkt.utiny
@@ -584,7 +584,7 @@ class Mysql
584
584
  server_capabilities = pkt.ushort
585
585
  server_charset = pkt.utiny
586
586
  server_status = pkt.ushort
587
- f1 = pkt.read(13)
587
+ _f1 = pkt.read(13)
588
588
  rest_scramble_buff = pkt.string
589
589
  raise ProtocolError, "unsupported version: #{protocol_version}" unless protocol_version == VERSION
590
590
  raise ProtocolError, "invalid packet: f0=#{f0}" unless f0 == 0
@@ -627,13 +627,13 @@ class Mysql
627
627
  # Field packet
628
628
  class FieldPacket
629
629
  def self.parse(pkt)
630
- first = pkt.lcs
630
+ _first = pkt.lcs
631
631
  db = pkt.lcs
632
632
  table = pkt.lcs
633
633
  org_table = pkt.lcs
634
634
  name = pkt.lcs
635
635
  org_name = pkt.lcs
636
- f0 = pkt.utiny
636
+ _f0 = pkt.utiny
637
637
  charsetnr = pkt.ushort
638
638
  length = pkt.ulong
639
639
  type = pkt.utiny
@@ -537,6 +537,10 @@ class TestMysql < Test::Unit::TestCase
537
537
  end
538
538
 
539
539
  sub_test_case '#warning_count' do
540
+ setup do
541
+ @m.query("set sql_mode=''")
542
+ @m.query("set sql_mode=''") # clear warnings on previous `set' statement.
543
+ end
540
544
  test 'default values is zero' do
541
545
  assert{ @m.warning_count == 0 }
542
546
  end
@@ -683,7 +687,7 @@ class TestMysql < Test::Unit::TestCase
683
687
  setup do
684
688
  @m = Mysql.new(MYSQL_SERVER, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE, MYSQL_PORT, MYSQL_SOCKET)
685
689
  @m.charset = 'latin1'
686
- @m.query 'create temporary table t (id int, str char(10), primary key (id))'
690
+ @m.query 'create temporary table t (id int default 0, str char(10), primary key (id))'
687
691
  @m.query "insert into t values (1,'abc'),(2,'defg'),(3,'hi'),(4,null)"
688
692
  @res = @m.query 'select * from t'
689
693
  end
@@ -707,7 +711,7 @@ class TestMysql < Test::Unit::TestCase
707
711
  assert{ f.def == nil }
708
712
  assert{ f.type == Mysql::Field::TYPE_LONG }
709
713
  assert{ f.length == 11 }
710
- f.max_length == 1
714
+ assert{ f.max_length == 1 }
711
715
  assert{ f.flags == Mysql::Field::NUM_FLAG|Mysql::Field::PRI_KEY_FLAG|Mysql::Field::PART_KEY_FLAG|Mysql::Field::NOT_NULL_FLAG }
712
716
  assert{ f.decimals == 0 }
713
717
 
@@ -717,7 +721,7 @@ class TestMysql < Test::Unit::TestCase
717
721
  assert{ f.def == nil }
718
722
  assert{ f.type == Mysql::Field::TYPE_STRING }
719
723
  assert{ f.length == 10 }
720
- f.max_length == 4
724
+ assert{ f.max_length == 4 }
721
725
  assert{ f.flags == 0 }
722
726
  assert{ f.decimals == 0 }
723
727
 
@@ -955,6 +959,7 @@ class TestMysql < Test::Unit::TestCase
955
959
  sub_test_case 'Mysql::Stmt' do
956
960
  setup do
957
961
  @m = Mysql.new(MYSQL_SERVER, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE, MYSQL_PORT, MYSQL_SOCKET)
962
+ @m.query("set sql_mode=''")
958
963
  @s = @m.stmt_init
959
964
  end
960
965
 
@@ -1559,6 +1564,16 @@ class TestMysql < Test::Unit::TestCase
1559
1564
  assert{ @s.entries == [[nil], [''], ['abc'], ['def'], ['abc,def'], ['abc'], ['def'], ['abc,def'], ['']] }
1560
1565
  end
1561
1566
 
1567
+ test '#fetch json column' do
1568
+ if @m.server_version >= 50700
1569
+ @m.query "create temporary table t (i json)"
1570
+ @m.query "insert into t values ('123'),('{\"a\":1,\"b\":2,\"c\":3}'),('[1,2,3]')"
1571
+ @s.prepare 'select i from t'
1572
+ @s.execute
1573
+ assert{ @s.entries == [['123'], ['{"a": 1, "b": 2, "c": 3}'], ['[1, 2, 3]']] }
1574
+ end
1575
+ end
1576
+
1562
1577
  test '#field_count' do
1563
1578
  @s.prepare 'select 1,2,3'
1564
1579
  assert{ @s.field_count == 3 }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-mysql
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.13
4
+ version: 2.9.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomita Masahiro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-16 00:00:00.000000000 Z
11
+ date: 2015-12-30 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: This is MySQL connector. pure Ruby version
14
14
  email: tommy@tmtm.org
@@ -28,7 +28,7 @@ files:
28
28
  - test/test_mysql_packet.rb
29
29
  homepage: http://github.com/tmtm/ruby-mysql
30
30
  licenses:
31
- - Ruby's
31
+ - Ruby
32
32
  metadata: {}
33
33
  post_install_message:
34
34
  rdoc_options: []
@@ -46,7 +46,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
46
46
  version: '0'
47
47
  requirements: []
48
48
  rubyforge_project:
49
- rubygems_version: 2.4.1
49
+ rubygems_version: 2.5.1
50
50
  signing_key:
51
51
  specification_version: 4
52
52
  summary: MySQL connector