mysql-pr 2.9.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,324 @@
1
+ # Copyright (C) 2008-2012 TOMITA Masahiro
2
+ # mailto:tommy@tmtm.org
3
+
4
+ #
5
+ class MysqlPR
6
+ # @!attribute [r] number
7
+ # @private
8
+ # @!attribute [r] name
9
+ # @return [String] charset name
10
+ # @!attribute [r] csname
11
+ # @return [String] collation name
12
+ class Charset
13
+ # @private
14
+ # @param [Integer] number
15
+ # @param [String] name
16
+ # @param [String] csname
17
+ def initialize(number, name, csname)
18
+ @number, @name, @csname = number, name, csname
19
+ @unsafe = false
20
+ end
21
+
22
+ attr_reader :number, :name, :csname
23
+
24
+ # @private
25
+ attr_accessor :unsafe
26
+
27
+ # [[charset_number, charset_name, collation_name, default], ...]
28
+ # @private
29
+ CHARSETS = [
30
+ [ 1, "big5", "big5_chinese_ci", true ],
31
+ [ 2, "latin2", "latin2_czech_cs", false],
32
+ [ 3, "dec8", "dec8_swedish_ci", true ],
33
+ [ 4, "cp850", "cp850_general_ci", true ],
34
+ [ 5, "latin1", "latin1_german1_ci", false],
35
+ [ 6, "hp8", "hp8_english_ci", true ],
36
+ [ 7, "koi8r", "koi8r_general_ci", true ],
37
+ [ 8, "latin1", "latin1_swedish_ci", true ],
38
+ [ 9, "latin2", "latin2_general_ci", true ],
39
+ [ 10, "swe7", "swe7_swedish_ci", true ],
40
+ [ 11, "ascii", "ascii_general_ci", true ],
41
+ [ 12, "ujis", "ujis_japanese_ci", true ],
42
+ [ 13, "sjis", "sjis_japanese_ci", true ],
43
+ [ 14, "cp1251", "cp1251_bulgarian_ci", false],
44
+ [ 15, "latin1", "latin1_danish_ci", false],
45
+ [ 16, "hebrew", "hebrew_general_ci", true ],
46
+ [ 17, "filename", "filename", true ],
47
+ [ 18, "tis620", "tis620_thai_ci", true ],
48
+ [ 19, "euckr", "euckr_korean_ci", true ],
49
+ [ 20, "latin7", "latin7_estonian_cs", false],
50
+ [ 21, "latin2", "latin2_hungarian_ci", false],
51
+ [ 22, "koi8u", "koi8u_general_ci", true ],
52
+ [ 23, "cp1251", "cp1251_ukrainian_ci", false],
53
+ [ 24, "gb2312", "gb2312_chinese_ci", true ],
54
+ [ 25, "greek", "greek_general_ci", true ],
55
+ [ 26, "cp1250", "cp1250_general_ci", true ],
56
+ [ 27, "latin2", "latin2_croatian_ci", false],
57
+ [ 28, "gbk", "gbk_chinese_ci", true ],
58
+ [ 29, "cp1257", "cp1257_lithuanian_ci", false],
59
+ [ 30, "latin5", "latin5_turkish_ci", true ],
60
+ [ 31, "latin1", "latin1_german2_ci", false],
61
+ [ 32, "armscii8", "armscii8_general_ci", true ],
62
+ [ 33, "utf8", "utf8_general_ci", true ],
63
+ [ 34, "cp1250", "cp1250_czech_cs", false],
64
+ [ 35, "ucs2", "ucs2_general_ci", true ],
65
+ [ 36, "cp866", "cp866_general_ci", true ],
66
+ [ 37, "keybcs2", "keybcs2_general_ci", true ],
67
+ [ 38, "macce", "macce_general_ci", true ],
68
+ [ 39, "macroman", "macroman_general_ci", true ],
69
+ [ 40, "cp852", "cp852_general_ci", true ],
70
+ [ 41, "latin7", "latin7_general_ci", true ],
71
+ [ 42, "latin7", "latin7_general_cs", false],
72
+ [ 43, "macce", "macce_bin", false],
73
+ [ 44, "cp1250", "cp1250_croatian_ci", false],
74
+ [ 45, "utf8mb4", "utf8mb4_general_ci", true ],
75
+ [ 46, "utf8mb4", "utf8mb4_bin", false],
76
+ [ 47, "latin1", "latin1_bin", false],
77
+ [ 48, "latin1", "latin1_general_ci", false],
78
+ [ 49, "latin1", "latin1_general_cs", false],
79
+ [ 50, "cp1251", "cp1251_bin", false],
80
+ [ 51, "cp1251", "cp1251_general_ci", true ],
81
+ [ 52, "cp1251", "cp1251_general_cs", false],
82
+ [ 53, "macroman", "macroman_bin", false],
83
+ [ 57, "cp1256", "cp1256_general_ci", true ],
84
+ [ 58, "cp1257", "cp1257_bin", false],
85
+ [ 59, "cp1257", "cp1257_general_ci", true ],
86
+ [ 63, "binary", "binary", true ],
87
+ [ 64, "armscii8", "armscii8_bin", false],
88
+ [ 65, "ascii", "ascii_bin", false],
89
+ [ 66, "cp1250", "cp1250_bin", false],
90
+ [ 67, "cp1256", "cp1256_bin", false],
91
+ [ 68, "cp866", "cp866_bin", false],
92
+ [ 69, "dec8", "dec8_bin", false],
93
+ [ 70, "greek", "greek_bin", false],
94
+ [ 71, "hebrew", "hebrew_bin", false],
95
+ [ 72, "hp8", "hp8_bin", false],
96
+ [ 73, "keybcs2", "keybcs2_bin", false],
97
+ [ 74, "koi8r", "koi8r_bin", false],
98
+ [ 75, "koi8u", "koi8u_bin", false],
99
+ [ 77, "latin2", "latin2_bin", false],
100
+ [ 78, "latin5", "latin5_bin", false],
101
+ [ 79, "latin7", "latin7_bin", false],
102
+ [ 80, "cp850", "cp850_bin", false],
103
+ [ 81, "cp852", "cp852_bin", false],
104
+ [ 82, "swe7", "swe7_bin", false],
105
+ [ 83, "utf8", "utf8_bin", false],
106
+ [ 84, "big5", "big5_bin", false],
107
+ [ 85, "euckr", "euckr_bin", false],
108
+ [ 86, "gb2312", "gb2312_bin", false],
109
+ [ 87, "gbk", "gbk_bin", false],
110
+ [ 88, "sjis", "sjis_bin", false],
111
+ [ 89, "tis620", "tis620_bin", false],
112
+ [ 90, "ucs2", "ucs2_bin", false],
113
+ [ 91, "ujis", "ujis_bin", false],
114
+ [ 92, "geostd8", "geostd8_general_ci", true ],
115
+ [ 93, "geostd8", "geostd8_bin", false],
116
+ [ 94, "latin1", "latin1_spanish_ci", false],
117
+ [ 95, "cp932", "cp932_japanese_ci", true ],
118
+ [ 96, "cp932", "cp932_bin", false],
119
+ [ 97, "eucjpms", "eucjpms_japanese_ci", true ],
120
+ [ 98, "eucjpms", "eucjpms_bin", false],
121
+ [ 99, "cp1250", "cp1250_polish_ci", false],
122
+ [128, "ucs2", "ucs2_unicode_ci", false],
123
+ [129, "ucs2", "ucs2_icelandic_ci", false],
124
+ [130, "ucs2", "ucs2_latvian_ci", false],
125
+ [131, "ucs2", "ucs2_romanian_ci", false],
126
+ [132, "ucs2", "ucs2_slovenian_ci", false],
127
+ [133, "ucs2", "ucs2_polish_ci", false],
128
+ [134, "ucs2", "ucs2_estonian_ci", false],
129
+ [135, "ucs2", "ucs2_spanish_ci", false],
130
+ [136, "ucs2", "ucs2_swedish_ci", false],
131
+ [137, "ucs2", "ucs2_turkish_ci", false],
132
+ [138, "ucs2", "ucs2_czech_ci", false],
133
+ [139, "ucs2", "ucs2_danish_ci", false],
134
+ [140, "ucs2", "ucs2_lithuanian_ci", false],
135
+ [141, "ucs2", "ucs2_slovak_ci", false],
136
+ [142, "ucs2", "ucs2_spanish2_ci", false],
137
+ [143, "ucs2", "ucs2_roman_ci", false],
138
+ [144, "ucs2", "ucs2_persian_ci", false],
139
+ [145, "ucs2", "ucs2_esperanto_ci", false],
140
+ [146, "ucs2", "ucs2_hungarian_ci", false],
141
+ [192, "utf8", "utf8_unicode_ci", false],
142
+ [193, "utf8", "utf8_icelandic_ci", false],
143
+ [194, "utf8", "utf8_latvian_ci", false],
144
+ [195, "utf8", "utf8_romanian_ci", false],
145
+ [196, "utf8", "utf8_slovenian_ci", false],
146
+ [197, "utf8", "utf8_polish_ci", false],
147
+ [198, "utf8", "utf8_estonian_ci", false],
148
+ [199, "utf8", "utf8_spanish_ci", false],
149
+ [200, "utf8", "utf8_swedish_ci", false],
150
+ [201, "utf8", "utf8_turkish_ci", false],
151
+ [202, "utf8", "utf8_czech_ci", false],
152
+ [203, "utf8", "utf8_danish_ci", false],
153
+ [204, "utf8", "utf8_lithuanian_ci", false],
154
+ [205, "utf8", "utf8_slovak_ci", false],
155
+ [206, "utf8", "utf8_spanish2_ci", false],
156
+ [207, "utf8", "utf8_roman_ci", false],
157
+ [208, "utf8", "utf8_persian_ci", false],
158
+ [209, "utf8", "utf8_esperanto_ci", false],
159
+ [210, "utf8", "utf8_hungarian_ci", false],
160
+ [211, "utf8", "utf8_sinhala_ci", false],
161
+ [224, "utf8mb4", "utf8mb4_unicode_ci", false],
162
+ [225, "utf8mb4", "utf8mb4_icelandic_ci", false],
163
+ [226, "utf8mb4", "utf8mb4_latvian_ci", false],
164
+ [227, "utf8mb4", "utf8mb4_romanian_ci", false],
165
+ [228, "utf8mb4", "utf8mb4_slovenian_ci", false],
166
+ [229, "utf8mb4", "utf8mb4_polish_ci", false],
167
+ [230, "utf8mb4", "utf8mb4_estonian_ci", false],
168
+ [231, "utf8mb4", "utf8mb4_spanish_ci", false],
169
+ [232, "utf8mb4", "utf8mb4_swedish_ci", false],
170
+ [233, "utf8mb4", "utf8mb4_turkish_ci", false],
171
+ [234, "utf8mb4", "utf8mb4_czech_ci", false],
172
+ [235, "utf8mb4", "utf8mb4_danish_ci", false],
173
+ [236, "utf8mb4", "utf8mb4_lithuanian_ci", false],
174
+ [237, "utf8mb4", "utf8mb4_slovak_ci", false],
175
+ [238, "utf8mb4", "utf8mb4_spanish2_ci", false],
176
+ [239, "utf8mb4", "utf8mb4_roman_ci", false],
177
+ [240, "utf8mb4", "utf8mb4_persian_ci", false],
178
+ [241, "utf8mb4", "utf8mb4_esperanto_ci", false],
179
+ [242, "utf8mb4", "utf8mb4_hungarian_ci", false],
180
+ [243, "utf8mb4", "utf8mb4_sinhala_ci", false],
181
+ [254, "utf8", "utf8_general_cs", false],
182
+ ]
183
+
184
+ # @private
185
+ UNSAFE_CHARSET = [
186
+ "big5", "sjis", "filename", "gbk", "ucs2", "cp932",
187
+ ]
188
+
189
+ # @private
190
+ NUMBER_TO_CHARSET = {}
191
+ # @private
192
+ COLLATION_TO_CHARSET = {}
193
+ # @private
194
+ CHARSET_DEFAULT = {}
195
+ CHARSETS.each do |number, csname, clname, default|
196
+ cs = Charset.new number, csname, clname
197
+ cs.unsafe = true if UNSAFE_CHARSET.include? csname
198
+ NUMBER_TO_CHARSET[number] = cs
199
+ COLLATION_TO_CHARSET[clname] = cs
200
+ CHARSET_DEFAULT[csname] = cs if default
201
+ end
202
+
203
+ # @private
204
+ BINARY_CHARSET_NUMBER = CHARSET_DEFAULT['binary'].number
205
+
206
+ # @private
207
+ # @param [Integer] n
208
+ # @return [Mysql::Charset]
209
+ def self.by_number(n)
210
+ raise ClientError, "unknown charset number: #{n}" unless NUMBER_TO_CHARSET.key? n
211
+ NUMBER_TO_CHARSET[n]
212
+ end
213
+
214
+ # @private
215
+ # @param [String] str
216
+ # @return [Mysql::Charset]
217
+ def self.by_name(str)
218
+ ret = COLLATION_TO_CHARSET[str] || CHARSET_DEFAULT[str]
219
+ raise ClientError, "unknown charset: #{str}" unless ret
220
+ ret
221
+ end
222
+
223
+ if defined? Encoding
224
+
225
+ # @private
226
+ # MySQL Charset -> Ruby's Encodeing
227
+ CHARSET_ENCODING = {
228
+ "armscii8" => nil,
229
+ "ascii" => Encoding::US_ASCII,
230
+ "big5" => Encoding::Big5,
231
+ "binary" => Encoding::ASCII_8BIT,
232
+ "cp1250" => Encoding::Windows_1250,
233
+ "cp1251" => Encoding::Windows_1251,
234
+ "cp1256" => Encoding::Windows_1256,
235
+ "cp1257" => Encoding::Windows_1257,
236
+ "cp850" => Encoding::CP850,
237
+ "cp852" => Encoding::CP852,
238
+ "cp866" => Encoding::IBM866,
239
+ "cp932" => Encoding::Windows_31J,
240
+ "dec8" => nil,
241
+ "eucjpms" => Encoding::EucJP_ms,
242
+ "euckr" => Encoding::EUC_KR,
243
+ "gb2312" => Encoding::EUC_CN,
244
+ "gbk" => Encoding::GBK,
245
+ "geostd8" => nil,
246
+ "greek" => Encoding::ISO_8859_7,
247
+ "hebrew" => Encoding::ISO_8859_8,
248
+ "hp8" => nil,
249
+ "keybcs2" => nil,
250
+ "koi8r" => Encoding::KOI8_R,
251
+ "koi8u" => Encoding::KOI8_U,
252
+ "latin1" => Encoding::ISO_8859_1,
253
+ "latin2" => Encoding::ISO_8859_2,
254
+ "latin5" => Encoding::ISO_8859_9,
255
+ "latin7" => Encoding::ISO_8859_13,
256
+ "macce" => Encoding::MacCentEuro,
257
+ "macroman" => Encoding::MacRoman,
258
+ "sjis" => Encoding::SHIFT_JIS,
259
+ "swe7" => nil,
260
+ "tis620" => Encoding::TIS_620,
261
+ "ucs2" => Encoding::UTF_16BE,
262
+ "ujis" => Encoding::EucJP_ms,
263
+ "utf8" => Encoding::UTF_8,
264
+ "utf8mb4" => Encoding::UTF_8,
265
+ }
266
+
267
+ # @private
268
+ # @param [String] value
269
+ # @return [String]
270
+ def self.to_binary(value)
271
+ value.force_encoding Encoding::ASCII_8BIT
272
+ end
273
+
274
+ # @private
275
+ # convert raw to encoding and convert to Encoding.default_internal
276
+ # @param [String] raw
277
+ # @param [Encoding] encoding
278
+ # @return [String] result
279
+ def self.convert_encoding(raw, encoding)
280
+ raw.force_encoding(encoding).encode
281
+ end
282
+
283
+ # @private
284
+ # retrun corresponding Ruby encoding
285
+ # @return [Encoding] encoding
286
+ def encoding
287
+ enc = CHARSET_ENCODING[@name.downcase]
288
+ raise Mysql::ClientError, "unsupported charset: #{@name}" unless enc
289
+ enc
290
+ end
291
+
292
+ # @private
293
+ # convert encoding to corrensponding to MySQL charset
294
+ # @param [String] value
295
+ # @return [String]
296
+ def convert(value)
297
+ if value.is_a? String and value.encoding != Encoding::ASCII_8BIT
298
+ value = value.encode encoding
299
+ end
300
+ value
301
+ end
302
+
303
+ else
304
+ # for Ruby 1.8
305
+
306
+ def self.to_binary(value)
307
+ value
308
+ end
309
+
310
+ def self.convert_encoding(raw, encoding)
311
+ raw
312
+ end
313
+
314
+ def encoding
315
+ nil
316
+ end
317
+
318
+ def convert(value)
319
+ value
320
+ end
321
+
322
+ end
323
+ end
324
+ end
@@ -0,0 +1,164 @@
1
+ # Copyright (C) 2003-2008 TOMITA Masahiro
2
+ # mailto:tommy@tmtm.org
3
+
4
+ class MysqlPR
5
+ # Command
6
+ COM_SLEEP = 0
7
+ COM_QUIT = 1
8
+ COM_INIT_DB = 2
9
+ COM_QUERY = 3
10
+ COM_FIELD_LIST = 4
11
+ COM_CREATE_DB = 5
12
+ COM_DROP_DB = 6
13
+ COM_REFRESH = 7
14
+ COM_SHUTDOWN = 8
15
+ COM_STATISTICS = 9
16
+ COM_PROCESS_INFO = 10
17
+ COM_CONNECT = 11
18
+ COM_PROCESS_KILL = 12
19
+ COM_DEBUG = 13
20
+ COM_PING = 14
21
+ COM_TIME = 15
22
+ COM_DELAYED_INSERT = 16
23
+ COM_CHANGE_USER = 17
24
+ COM_BINLOG_DUMP = 18
25
+ COM_TABLE_DUMP = 19
26
+ COM_CONNECT_OUT = 20
27
+ COM_REGISTER_SLAVE = 21
28
+ COM_STMT_PREPARE = 22
29
+ COM_STMT_EXECUTE = 23
30
+ COM_STMT_SEND_LONG_DATA = 24
31
+ COM_STMT_CLOSE = 25
32
+ COM_STMT_RESET = 26
33
+ COM_SET_OPTION = 27
34
+ COM_STMT_FETCH = 28
35
+
36
+ # Client flag
37
+ CLIENT_LONG_PASSWORD = 1 # new more secure passwords
38
+ CLIENT_FOUND_ROWS = 1 << 1 # Found instead of affected rows
39
+ CLIENT_LONG_FLAG = 1 << 2 # Get all column flags
40
+ CLIENT_CONNECT_WITH_DB = 1 << 3 # One can specify db on connect
41
+ CLIENT_NO_SCHEMA = 1 << 4 # Don't allow database.table.column
42
+ CLIENT_COMPRESS = 1 << 5 # Can use compression protocol
43
+ CLIENT_ODBC = 1 << 6 # Odbc client
44
+ CLIENT_LOCAL_FILES = 1 << 7 # Can use LOAD DATA LOCAL
45
+ CLIENT_IGNORE_SPACE = 1 << 8 # Ignore spaces before '('
46
+ CLIENT_PROTOCOL_41 = 1 << 9 # New 4.1 protocol
47
+ CLIENT_INTERACTIVE = 1 << 10 # This is an interactive client
48
+ CLIENT_SSL = 1 << 11 # Switch to SSL after handshake
49
+ CLIENT_IGNORE_SIGPIPE = 1 << 12 # IGNORE sigpipes
50
+ CLIENT_TRANSACTIONS = 1 << 13 # Client knows about transactions
51
+ CLIENT_RESERVED = 1 << 14 # Old flag for 4.1 protocol
52
+ CLIENT_SECURE_CONNECTION = 1 << 15 # New 4.1 authentication
53
+ CLIENT_MULTI_STATEMENTS = 1 << 16 # Enable/disable multi-stmt support
54
+ CLIENT_MULTI_RESULTS = 1 << 17 # Enable/disable multi-results
55
+
56
+ # Connection Option
57
+ OPT_CONNECT_TIMEOUT = 0
58
+ OPT_COMPRESS = 1
59
+ OPT_NAMED_PIPE = 2
60
+ INIT_COMMAND = 3
61
+ READ_DEFAULT_FILE = 4
62
+ READ_DEFAULT_GROUP = 5
63
+ SET_CHARSET_DIR = 6
64
+ SET_CHARSET_NAME = 7
65
+ OPT_LOCAL_INFILE = 8
66
+ OPT_PROTOCOL = 9
67
+ SHARED_MEMORY_BASE_NAME = 10
68
+ OPT_READ_TIMEOUT = 11
69
+ OPT_WRITE_TIMEOUT = 12
70
+ OPT_USE_RESULT = 13
71
+ OPT_USE_REMOTE_CONNECTION = 14
72
+ OPT_USE_EMBEDDED_CONNECTION = 15
73
+ OPT_GUESS_CONNECTION = 16
74
+ SET_CLIENT_IP = 17
75
+ SECURE_AUTH = 18
76
+ REPORT_DATA_TRUNCATION = 19
77
+ OPT_RECONNECT = 20
78
+ OPT_SSL_VERIFY_SERVER_CERT = 21
79
+
80
+ # Server Option
81
+ OPTION_MULTI_STATEMENTS_ON = 0
82
+ OPTION_MULTI_STATEMENTS_OFF = 1
83
+
84
+ # Server Status
85
+ SERVER_STATUS_IN_TRANS = 1
86
+ SERVER_STATUS_AUTOCOMMIT = 1 << 1
87
+ SERVER_MORE_RESULTS_EXISTS = 1 << 3
88
+ SERVER_QUERY_NO_GOOD_INDEX_USED = 1 << 4
89
+ SERVER_QUERY_NO_INDEX_USED = 1 << 5
90
+ SERVER_STATUS_CURSOR_EXISTS = 1 << 6
91
+ SERVER_STATUS_LAST_ROW_SENT = 1 << 7
92
+ SERVER_STATUS_DB_DROPPED = 1 << 8
93
+ SERVER_STATUS_NO_BACKSLASH_ESCAPES = 1 << 9
94
+
95
+ # Refresh parameter
96
+ REFRESH_GRANT = 1
97
+ REFRESH_LOG = 1 << 1
98
+ REFRESH_TABLES = 1 << 2
99
+ REFRESH_HOSTS = 1 << 3
100
+ REFRESH_STATUS = 1 << 4
101
+ REFRESH_THREADS = 1 << 5
102
+ REFRESH_SLAVE = 1 << 6
103
+ REFRESH_MASTER = 1 << 7
104
+ REFRESH_READ_LOCK = 1 << 14
105
+ REFRESH_FAST = 1 << 15
106
+
107
+ class Field
108
+ # Field type
109
+ TYPE_DECIMAL = 0
110
+ TYPE_TINY = 1
111
+ TYPE_SHORT = 2
112
+ TYPE_LONG = 3
113
+ TYPE_FLOAT = 4
114
+ TYPE_DOUBLE = 5
115
+ TYPE_NULL = 6
116
+ TYPE_TIMESTAMP = 7
117
+ TYPE_LONGLONG = 8
118
+ TYPE_INT24 = 9
119
+ TYPE_DATE = 10
120
+ TYPE_TIME = 11
121
+ TYPE_DATETIME = 12
122
+ TYPE_YEAR = 13
123
+ TYPE_NEWDATE = 14
124
+ TYPE_VARCHAR = 15
125
+ TYPE_BIT = 16
126
+ TYPE_NEWDECIMAL = 246
127
+ TYPE_ENUM = 247
128
+ TYPE_SET = 248
129
+ TYPE_TINY_BLOB = 249
130
+ TYPE_MEDIUM_BLOB = 250
131
+ TYPE_LONG_BLOB = 251
132
+ TYPE_BLOB = 252
133
+ TYPE_VAR_STRING = 253
134
+ TYPE_STRING = 254
135
+ TYPE_GEOMETRY = 255
136
+ TYPE_CHAR = TYPE_TINY
137
+ TYPE_INTERVAL = TYPE_ENUM
138
+
139
+ # Flag
140
+ NOT_NULL_FLAG = 1
141
+ PRI_KEY_FLAG = 2
142
+ UNIQUE_KEY_FLAG = 4
143
+ MULTIPLE_KEY_FLAG = 8
144
+ BLOB_FLAG = 16
145
+ UNSIGNED_FLAG = 32
146
+ ZEROFILL_FLAG = 64
147
+ BINARY_FLAG = 128
148
+ ENUM_FLAG = 256
149
+ AUTO_INCREMENT_FLAG = 512
150
+ TIMESTAMP_FLAG = 1024
151
+ SET_FLAG = 2048
152
+ NUM_FLAG = 32768
153
+ PART_KEY_FLAG = 16384
154
+ GROUP_FLAG = 32768
155
+ UNIQUE_FLAG = 65536
156
+ BINCMP_FLAG = 131072
157
+ end
158
+
159
+ class Stmt
160
+ # Cursor type
161
+ CURSOR_TYPE_NO_CURSOR = 0
162
+ CURSOR_TYPE_READ_ONLY = 1
163
+ end
164
+ end