mysqlplus 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README ADDED
@@ -0,0 +1,40 @@
1
+ == MySQLPlus
2
+
3
+ An enhanced MySQL database driver. With support for async operations and threaded database access.
4
+
5
+ == Building
6
+
7
+ gem build mysqlplus.gemspec
8
+
9
+ on OSX with the default mysql installed:
10
+
11
+ sudo gem install mysqlplus-0.1.0.gem -- --with-mysql-config
12
+
13
+ on OSX, with mysql installed by macports:
14
+
15
+ sudo gem install mysqlplus-0.1.0.gem -- --with-mysql-config=/opt/local/lib/mysql5/bin/mysql_config
16
+
17
+ on OSX, with x86 mysql (NOT x86_64!) installed from mysql.com:
18
+
19
+ sudo env ARCHFLAGS="-arch i386" gem install mysqlplus-0.1.0.gem -- \
20
+ --with-mysql-dir=/usr/local/mysql \
21
+ --with-mysql-lib=/usr/local/mysql/lib \
22
+ --with-mysql-include=/usr/local/mysql/include
23
+ == Using
24
+ to use within rails
25
+ add require 'mysqlplus' to the top of environment.rb
26
+ this instantiates the Mysql class that you can use.
27
+ and it will automagically use async_query instead of query, so it's a drop in replacement.
28
+
29
+ Same with other scripts that want to use it--just require 'mysqlplus' BEFORE you require 'mysql' and it will
30
+ load the asynchronous version, then ignore the sequent require 'mysql' call.
31
+
32
+ === Credits
33
+
34
+ Aman Gupta, for help in threading support and improved tests
35
+ Tomita Masahiro--since this is a fork of his already excellent mysql lib [http://www.tmtm.org/en/mysql/ruby].
36
+ Roger Pack, for helping in the file descriptor hunt :)
37
+ Lourens Naude for 1.9 integration help.
38
+
39
+ === License
40
+ Ruby License, http://www.ruby-lang.org/en/LICENSE.txt.
data/Rakefile ADDED
@@ -0,0 +1,52 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+
4
+ desc 'Default: build and install.'
5
+ task :default => :build
6
+
7
+ desc 'Run performance tests.'
8
+ Rake::TestTask.new(:test) do |t|
9
+ t.libs = [] #reference the installed gem instead
10
+ t.pattern = 'test/*_test.rb'
11
+ t.verbose = true
12
+ end
13
+
14
+ task :build do |t|
15
+ configure
16
+ install
17
+ end
18
+
19
+ def configure
20
+ puts "** building gem"
21
+ puts %x{gem build mysqlplus.gemspec}
22
+ end
23
+
24
+ def install
25
+ puts "** installing gem"
26
+ _mysql_config = mysql_config
27
+ puts "** using mysql_config: #{_mysql_config}"
28
+ puts %x{sudo gem install mysqlplus-#{version}.gem -- --with-mysql-config=#{_mysql_config}}
29
+ end
30
+
31
+ def gem_spec
32
+ @gem_spec ||= eval( IO.read( 'mysqlplus.gemspec') )
33
+ end
34
+
35
+ def version
36
+ gem_spec.version.to_s
37
+ end
38
+
39
+ def mysql_configs
40
+ %w(mysql_config mysql_config5)
41
+ end
42
+
43
+ def mysql_config
44
+ mysql_configs.each do |config|
45
+ path = mysql_config!( config )
46
+ return path unless path.empty?
47
+ end
48
+ end
49
+
50
+ def mysql_config!( config )
51
+ %x{which #{config}}
52
+ end
data/TODO_LIST ADDED
@@ -0,0 +1,13 @@
1
+ TODO list:
2
+
3
+ Is there a quick, cheap, easy way to test for writability so we don't have to use select on the way in? Does it take long anyway?
4
+
5
+ Docs for how to use with rails, etc. [there is mysqlplus_adapter, so maybe we're good there].
6
+
7
+ Merge in lourens' branch -- I like the double check for not using send_query twice in a row! [rdp]
8
+
9
+ look into http://coderrr.wordpress.com/2009/01/11/ruby-and-mysqlplus-select-deadlock/
10
+
11
+ Some of the test/* anticipate a certain database existing--todo create it first, then drop it [?]
12
+
13
+ critical todo list:
data/ext/error_const.h ADDED
@@ -0,0 +1,536 @@
1
+ rb_define_mysql_const(CR_MIN_ERROR);
2
+ rb_define_mysql_const(CR_MAX_ERROR);
3
+ rb_define_mysql_const(CR_ERROR_FIRST);
4
+ rb_define_mysql_const(CR_UNKNOWN_ERROR);
5
+ rb_define_mysql_const(CR_SOCKET_CREATE_ERROR);
6
+ rb_define_mysql_const(CR_CONNECTION_ERROR);
7
+ rb_define_mysql_const(CR_CONN_HOST_ERROR);
8
+ rb_define_mysql_const(CR_IPSOCK_ERROR);
9
+ rb_define_mysql_const(CR_UNKNOWN_HOST);
10
+ rb_define_mysql_const(CR_SERVER_GONE_ERROR);
11
+ rb_define_mysql_const(CR_VERSION_ERROR);
12
+ rb_define_mysql_const(CR_OUT_OF_MEMORY);
13
+ rb_define_mysql_const(CR_WRONG_HOST_INFO);
14
+ rb_define_mysql_const(CR_LOCALHOST_CONNECTION);
15
+ rb_define_mysql_const(CR_TCP_CONNECTION);
16
+ rb_define_mysql_const(CR_SERVER_HANDSHAKE_ERR);
17
+ rb_define_mysql_const(CR_SERVER_LOST);
18
+ rb_define_mysql_const(CR_COMMANDS_OUT_OF_SYNC);
19
+ rb_define_mysql_const(CR_NAMEDPIPE_CONNECTION);
20
+ rb_define_mysql_const(CR_NAMEDPIPEWAIT_ERROR);
21
+ rb_define_mysql_const(CR_NAMEDPIPEOPEN_ERROR);
22
+ rb_define_mysql_const(CR_NAMEDPIPESETSTATE_ERROR);
23
+ rb_define_mysql_const(CR_CANT_READ_CHARSET);
24
+ rb_define_mysql_const(CR_NET_PACKET_TOO_LARGE);
25
+ rb_define_mysql_const(CR_EMBEDDED_CONNECTION);
26
+ rb_define_mysql_const(CR_PROBE_SLAVE_STATUS);
27
+ rb_define_mysql_const(CR_PROBE_SLAVE_HOSTS);
28
+ rb_define_mysql_const(CR_PROBE_SLAVE_CONNECT);
29
+ rb_define_mysql_const(CR_PROBE_MASTER_CONNECT);
30
+ rb_define_mysql_const(CR_SSL_CONNECTION_ERROR);
31
+ rb_define_mysql_const(CR_MALFORMED_PACKET);
32
+ rb_define_mysql_const(CR_WRONG_LICENSE);
33
+ rb_define_mysql_const(CR_NULL_POINTER);
34
+ rb_define_mysql_const(CR_NO_PREPARE_STMT);
35
+ rb_define_mysql_const(CR_PARAMS_NOT_BOUND);
36
+ rb_define_mysql_const(CR_DATA_TRUNCATED);
37
+ rb_define_mysql_const(CR_NO_PARAMETERS_EXISTS);
38
+ rb_define_mysql_const(CR_INVALID_PARAMETER_NO);
39
+ rb_define_mysql_const(CR_INVALID_BUFFER_USE);
40
+ rb_define_mysql_const(CR_UNSUPPORTED_PARAM_TYPE);
41
+ rb_define_mysql_const(CR_SHARED_MEMORY_CONNECTION);
42
+ rb_define_mysql_const(CR_SHARED_MEMORY_CONNECT_REQUEST_ERROR);
43
+ rb_define_mysql_const(CR_SHARED_MEMORY_CONNECT_ANSWER_ERROR);
44
+ rb_define_mysql_const(CR_SHARED_MEMORY_CONNECT_FILE_MAP_ERROR);
45
+ rb_define_mysql_const(CR_SHARED_MEMORY_CONNECT_MAP_ERROR);
46
+ rb_define_mysql_const(CR_SHARED_MEMORY_FILE_MAP_ERROR);
47
+ rb_define_mysql_const(CR_SHARED_MEMORY_MAP_ERROR);
48
+ rb_define_mysql_const(CR_SHARED_MEMORY_EVENT_ERROR);
49
+ rb_define_mysql_const(CR_SHARED_MEMORY_CONNECT_ABANDONED_ERROR);
50
+ rb_define_mysql_const(CR_SHARED_MEMORY_CONNECT_SET_ERROR);
51
+ rb_define_mysql_const(CR_CONN_UNKNOW_PROTOCOL);
52
+ rb_define_mysql_const(CR_INVALID_CONN_HANDLE);
53
+ rb_define_mysql_const(CR_SECURE_AUTH);
54
+ rb_define_mysql_const(CR_FETCH_CANCELED);
55
+ rb_define_mysql_const(CR_NO_DATA);
56
+ rb_define_mysql_const(CR_NO_STMT_METADATA);
57
+ rb_define_mysql_const(CR_NO_RESULT_SET);
58
+ rb_define_mysql_const(CR_NOT_IMPLEMENTED);
59
+ rb_define_mysql_const(CR_SERVER_LOST_EXTENDED);
60
+ rb_define_mysql_const(CR_ERROR_LAST);
61
+ rb_define_mysql_const(ER_ERROR_FIRST);
62
+ rb_define_mysql_const(ER_HASHCHK);
63
+ rb_define_mysql_const(ER_NISAMCHK);
64
+ rb_define_mysql_const(ER_NO);
65
+ rb_define_mysql_const(ER_YES);
66
+ rb_define_mysql_const(ER_CANT_CREATE_FILE);
67
+ rb_define_mysql_const(ER_CANT_CREATE_TABLE);
68
+ rb_define_mysql_const(ER_CANT_CREATE_DB);
69
+ rb_define_mysql_const(ER_DB_CREATE_EXISTS);
70
+ rb_define_mysql_const(ER_DB_DROP_EXISTS);
71
+ rb_define_mysql_const(ER_DB_DROP_DELETE);
72
+ rb_define_mysql_const(ER_DB_DROP_RMDIR);
73
+ rb_define_mysql_const(ER_CANT_DELETE_FILE);
74
+ rb_define_mysql_const(ER_CANT_FIND_SYSTEM_REC);
75
+ rb_define_mysql_const(ER_CANT_GET_STAT);
76
+ rb_define_mysql_const(ER_CANT_GET_WD);
77
+ rb_define_mysql_const(ER_CANT_LOCK);
78
+ rb_define_mysql_const(ER_CANT_OPEN_FILE);
79
+ rb_define_mysql_const(ER_FILE_NOT_FOUND);
80
+ rb_define_mysql_const(ER_CANT_READ_DIR);
81
+ rb_define_mysql_const(ER_CANT_SET_WD);
82
+ rb_define_mysql_const(ER_CHECKREAD);
83
+ rb_define_mysql_const(ER_DISK_FULL);
84
+ rb_define_mysql_const(ER_DUP_KEY);
85
+ rb_define_mysql_const(ER_ERROR_ON_CLOSE);
86
+ rb_define_mysql_const(ER_ERROR_ON_READ);
87
+ rb_define_mysql_const(ER_ERROR_ON_RENAME);
88
+ rb_define_mysql_const(ER_ERROR_ON_WRITE);
89
+ rb_define_mysql_const(ER_FILE_USED);
90
+ rb_define_mysql_const(ER_FILSORT_ABORT);
91
+ rb_define_mysql_const(ER_FORM_NOT_FOUND);
92
+ rb_define_mysql_const(ER_GET_ERRNO);
93
+ rb_define_mysql_const(ER_ILLEGAL_HA);
94
+ rb_define_mysql_const(ER_KEY_NOT_FOUND);
95
+ rb_define_mysql_const(ER_NOT_FORM_FILE);
96
+ rb_define_mysql_const(ER_NOT_KEYFILE);
97
+ rb_define_mysql_const(ER_OLD_KEYFILE);
98
+ rb_define_mysql_const(ER_OPEN_AS_READONLY);
99
+ rb_define_mysql_const(ER_OUTOFMEMORY);
100
+ rb_define_mysql_const(ER_OUT_OF_SORTMEMORY);
101
+ rb_define_mysql_const(ER_UNEXPECTED_EOF);
102
+ rb_define_mysql_const(ER_CON_COUNT_ERROR);
103
+ rb_define_mysql_const(ER_OUT_OF_RESOURCES);
104
+ rb_define_mysql_const(ER_BAD_HOST_ERROR);
105
+ rb_define_mysql_const(ER_HANDSHAKE_ERROR);
106
+ rb_define_mysql_const(ER_DBACCESS_DENIED_ERROR);
107
+ rb_define_mysql_const(ER_ACCESS_DENIED_ERROR);
108
+ rb_define_mysql_const(ER_NO_DB_ERROR);
109
+ rb_define_mysql_const(ER_UNKNOWN_COM_ERROR);
110
+ rb_define_mysql_const(ER_BAD_NULL_ERROR);
111
+ rb_define_mysql_const(ER_BAD_DB_ERROR);
112
+ rb_define_mysql_const(ER_TABLE_EXISTS_ERROR);
113
+ rb_define_mysql_const(ER_BAD_TABLE_ERROR);
114
+ rb_define_mysql_const(ER_NON_UNIQ_ERROR);
115
+ rb_define_mysql_const(ER_SERVER_SHUTDOWN);
116
+ rb_define_mysql_const(ER_BAD_FIELD_ERROR);
117
+ rb_define_mysql_const(ER_WRONG_FIELD_WITH_GROUP);
118
+ rb_define_mysql_const(ER_WRONG_GROUP_FIELD);
119
+ rb_define_mysql_const(ER_WRONG_SUM_SELECT);
120
+ rb_define_mysql_const(ER_WRONG_VALUE_COUNT);
121
+ rb_define_mysql_const(ER_TOO_LONG_IDENT);
122
+ rb_define_mysql_const(ER_DUP_FIELDNAME);
123
+ rb_define_mysql_const(ER_DUP_KEYNAME);
124
+ rb_define_mysql_const(ER_DUP_ENTRY);
125
+ rb_define_mysql_const(ER_WRONG_FIELD_SPEC);
126
+ rb_define_mysql_const(ER_PARSE_ERROR);
127
+ rb_define_mysql_const(ER_EMPTY_QUERY);
128
+ rb_define_mysql_const(ER_NONUNIQ_TABLE);
129
+ rb_define_mysql_const(ER_INVALID_DEFAULT);
130
+ rb_define_mysql_const(ER_MULTIPLE_PRI_KEY);
131
+ rb_define_mysql_const(ER_TOO_MANY_KEYS);
132
+ rb_define_mysql_const(ER_TOO_MANY_KEY_PARTS);
133
+ rb_define_mysql_const(ER_TOO_LONG_KEY);
134
+ rb_define_mysql_const(ER_KEY_COLUMN_DOES_NOT_EXITS);
135
+ rb_define_mysql_const(ER_BLOB_USED_AS_KEY);
136
+ rb_define_mysql_const(ER_TOO_BIG_FIELDLENGTH);
137
+ rb_define_mysql_const(ER_WRONG_AUTO_KEY);
138
+ rb_define_mysql_const(ER_READY);
139
+ rb_define_mysql_const(ER_NORMAL_SHUTDOWN);
140
+ rb_define_mysql_const(ER_GOT_SIGNAL);
141
+ rb_define_mysql_const(ER_SHUTDOWN_COMPLETE);
142
+ rb_define_mysql_const(ER_FORCING_CLOSE);
143
+ rb_define_mysql_const(ER_IPSOCK_ERROR);
144
+ rb_define_mysql_const(ER_NO_SUCH_INDEX);
145
+ rb_define_mysql_const(ER_WRONG_FIELD_TERMINATORS);
146
+ rb_define_mysql_const(ER_BLOBS_AND_NO_TERMINATED);
147
+ rb_define_mysql_const(ER_TEXTFILE_NOT_READABLE);
148
+ rb_define_mysql_const(ER_FILE_EXISTS_ERROR);
149
+ rb_define_mysql_const(ER_LOAD_INFO);
150
+ rb_define_mysql_const(ER_ALTER_INFO);
151
+ rb_define_mysql_const(ER_WRONG_SUB_KEY);
152
+ rb_define_mysql_const(ER_CANT_REMOVE_ALL_FIELDS);
153
+ rb_define_mysql_const(ER_CANT_DROP_FIELD_OR_KEY);
154
+ rb_define_mysql_const(ER_INSERT_INFO);
155
+ rb_define_mysql_const(ER_UPDATE_TABLE_USED);
156
+ rb_define_mysql_const(ER_NO_SUCH_THREAD);
157
+ rb_define_mysql_const(ER_KILL_DENIED_ERROR);
158
+ rb_define_mysql_const(ER_NO_TABLES_USED);
159
+ rb_define_mysql_const(ER_TOO_BIG_SET);
160
+ rb_define_mysql_const(ER_NO_UNIQUE_LOGFILE);
161
+ rb_define_mysql_const(ER_TABLE_NOT_LOCKED_FOR_WRITE);
162
+ rb_define_mysql_const(ER_TABLE_NOT_LOCKED);
163
+ rb_define_mysql_const(ER_BLOB_CANT_HAVE_DEFAULT);
164
+ rb_define_mysql_const(ER_WRONG_DB_NAME);
165
+ rb_define_mysql_const(ER_WRONG_TABLE_NAME);
166
+ rb_define_mysql_const(ER_TOO_BIG_SELECT);
167
+ rb_define_mysql_const(ER_UNKNOWN_ERROR);
168
+ rb_define_mysql_const(ER_UNKNOWN_PROCEDURE);
169
+ rb_define_mysql_const(ER_WRONG_PARAMCOUNT_TO_PROCEDURE);
170
+ rb_define_mysql_const(ER_WRONG_PARAMETERS_TO_PROCEDURE);
171
+ rb_define_mysql_const(ER_UNKNOWN_TABLE);
172
+ rb_define_mysql_const(ER_FIELD_SPECIFIED_TWICE);
173
+ rb_define_mysql_const(ER_INVALID_GROUP_FUNC_USE);
174
+ rb_define_mysql_const(ER_UNSUPPORTED_EXTENSION);
175
+ rb_define_mysql_const(ER_TABLE_MUST_HAVE_COLUMNS);
176
+ rb_define_mysql_const(ER_RECORD_FILE_FULL);
177
+ rb_define_mysql_const(ER_UNKNOWN_CHARACTER_SET);
178
+ rb_define_mysql_const(ER_TOO_MANY_TABLES);
179
+ rb_define_mysql_const(ER_TOO_MANY_FIELDS);
180
+ rb_define_mysql_const(ER_TOO_BIG_ROWSIZE);
181
+ rb_define_mysql_const(ER_STACK_OVERRUN);
182
+ rb_define_mysql_const(ER_WRONG_OUTER_JOIN);
183
+ rb_define_mysql_const(ER_NULL_COLUMN_IN_INDEX);
184
+ rb_define_mysql_const(ER_CANT_FIND_UDF);
185
+ rb_define_mysql_const(ER_CANT_INITIALIZE_UDF);
186
+ rb_define_mysql_const(ER_UDF_NO_PATHS);
187
+ rb_define_mysql_const(ER_UDF_EXISTS);
188
+ rb_define_mysql_const(ER_CANT_OPEN_LIBRARY);
189
+ rb_define_mysql_const(ER_CANT_FIND_DL_ENTRY);
190
+ rb_define_mysql_const(ER_FUNCTION_NOT_DEFINED);
191
+ rb_define_mysql_const(ER_HOST_IS_BLOCKED);
192
+ rb_define_mysql_const(ER_HOST_NOT_PRIVILEGED);
193
+ rb_define_mysql_const(ER_PASSWORD_ANONYMOUS_USER);
194
+ rb_define_mysql_const(ER_PASSWORD_NOT_ALLOWED);
195
+ rb_define_mysql_const(ER_PASSWORD_NO_MATCH);
196
+ rb_define_mysql_const(ER_UPDATE_INFO);
197
+ rb_define_mysql_const(ER_CANT_CREATE_THREAD);
198
+ rb_define_mysql_const(ER_WRONG_VALUE_COUNT_ON_ROW);
199
+ rb_define_mysql_const(ER_CANT_REOPEN_TABLE);
200
+ rb_define_mysql_const(ER_INVALID_USE_OF_NULL);
201
+ rb_define_mysql_const(ER_REGEXP_ERROR);
202
+ rb_define_mysql_const(ER_MIX_OF_GROUP_FUNC_AND_FIELDS);
203
+ rb_define_mysql_const(ER_NONEXISTING_GRANT);
204
+ rb_define_mysql_const(ER_TABLEACCESS_DENIED_ERROR);
205
+ rb_define_mysql_const(ER_COLUMNACCESS_DENIED_ERROR);
206
+ rb_define_mysql_const(ER_ILLEGAL_GRANT_FOR_TABLE);
207
+ rb_define_mysql_const(ER_GRANT_WRONG_HOST_OR_USER);
208
+ rb_define_mysql_const(ER_NO_SUCH_TABLE);
209
+ rb_define_mysql_const(ER_NONEXISTING_TABLE_GRANT);
210
+ rb_define_mysql_const(ER_NOT_ALLOWED_COMMAND);
211
+ rb_define_mysql_const(ER_SYNTAX_ERROR);
212
+ rb_define_mysql_const(ER_DELAYED_CANT_CHANGE_LOCK);
213
+ rb_define_mysql_const(ER_TOO_MANY_DELAYED_THREADS);
214
+ rb_define_mysql_const(ER_ABORTING_CONNECTION);
215
+ rb_define_mysql_const(ER_NET_PACKET_TOO_LARGE);
216
+ rb_define_mysql_const(ER_NET_READ_ERROR_FROM_PIPE);
217
+ rb_define_mysql_const(ER_NET_FCNTL_ERROR);
218
+ rb_define_mysql_const(ER_NET_PACKETS_OUT_OF_ORDER);
219
+ rb_define_mysql_const(ER_NET_UNCOMPRESS_ERROR);
220
+ rb_define_mysql_const(ER_NET_READ_ERROR);
221
+ rb_define_mysql_const(ER_NET_READ_INTERRUPTED);
222
+ rb_define_mysql_const(ER_NET_ERROR_ON_WRITE);
223
+ rb_define_mysql_const(ER_NET_WRITE_INTERRUPTED);
224
+ rb_define_mysql_const(ER_TOO_LONG_STRING);
225
+ rb_define_mysql_const(ER_TABLE_CANT_HANDLE_BLOB);
226
+ rb_define_mysql_const(ER_TABLE_CANT_HANDLE_AUTO_INCREMENT);
227
+ rb_define_mysql_const(ER_DELAYED_INSERT_TABLE_LOCKED);
228
+ rb_define_mysql_const(ER_WRONG_COLUMN_NAME);
229
+ rb_define_mysql_const(ER_WRONG_KEY_COLUMN);
230
+ rb_define_mysql_const(ER_WRONG_MRG_TABLE);
231
+ rb_define_mysql_const(ER_DUP_UNIQUE);
232
+ rb_define_mysql_const(ER_BLOB_KEY_WITHOUT_LENGTH);
233
+ rb_define_mysql_const(ER_PRIMARY_CANT_HAVE_NULL);
234
+ rb_define_mysql_const(ER_TOO_MANY_ROWS);
235
+ rb_define_mysql_const(ER_REQUIRES_PRIMARY_KEY);
236
+ rb_define_mysql_const(ER_NO_RAID_COMPILED);
237
+ rb_define_mysql_const(ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE);
238
+ rb_define_mysql_const(ER_KEY_DOES_NOT_EXITS);
239
+ rb_define_mysql_const(ER_CHECK_NO_SUCH_TABLE);
240
+ rb_define_mysql_const(ER_CHECK_NOT_IMPLEMENTED);
241
+ rb_define_mysql_const(ER_CANT_DO_THIS_DURING_AN_TRANSACTION);
242
+ rb_define_mysql_const(ER_ERROR_DURING_COMMIT);
243
+ rb_define_mysql_const(ER_ERROR_DURING_ROLLBACK);
244
+ rb_define_mysql_const(ER_ERROR_DURING_FLUSH_LOGS);
245
+ rb_define_mysql_const(ER_ERROR_DURING_CHECKPOINT);
246
+ rb_define_mysql_const(ER_NEW_ABORTING_CONNECTION);
247
+ rb_define_mysql_const(ER_DUMP_NOT_IMPLEMENTED);
248
+ rb_define_mysql_const(ER_FLUSH_MASTER_BINLOG_CLOSED);
249
+ rb_define_mysql_const(ER_INDEX_REBUILD);
250
+ rb_define_mysql_const(ER_MASTER);
251
+ rb_define_mysql_const(ER_MASTER_NET_READ);
252
+ rb_define_mysql_const(ER_MASTER_NET_WRITE);
253
+ rb_define_mysql_const(ER_FT_MATCHING_KEY_NOT_FOUND);
254
+ rb_define_mysql_const(ER_LOCK_OR_ACTIVE_TRANSACTION);
255
+ rb_define_mysql_const(ER_UNKNOWN_SYSTEM_VARIABLE);
256
+ rb_define_mysql_const(ER_CRASHED_ON_USAGE);
257
+ rb_define_mysql_const(ER_CRASHED_ON_REPAIR);
258
+ rb_define_mysql_const(ER_WARNING_NOT_COMPLETE_ROLLBACK);
259
+ rb_define_mysql_const(ER_TRANS_CACHE_FULL);
260
+ rb_define_mysql_const(ER_SLAVE_MUST_STOP);
261
+ rb_define_mysql_const(ER_SLAVE_NOT_RUNNING);
262
+ rb_define_mysql_const(ER_BAD_SLAVE);
263
+ rb_define_mysql_const(ER_MASTER_INFO);
264
+ rb_define_mysql_const(ER_SLAVE_THREAD);
265
+ rb_define_mysql_const(ER_TOO_MANY_USER_CONNECTIONS);
266
+ rb_define_mysql_const(ER_SET_CONSTANTS_ONLY);
267
+ rb_define_mysql_const(ER_LOCK_WAIT_TIMEOUT);
268
+ rb_define_mysql_const(ER_LOCK_TABLE_FULL);
269
+ rb_define_mysql_const(ER_READ_ONLY_TRANSACTION);
270
+ rb_define_mysql_const(ER_DROP_DB_WITH_READ_LOCK);
271
+ rb_define_mysql_const(ER_CREATE_DB_WITH_READ_LOCK);
272
+ rb_define_mysql_const(ER_WRONG_ARGUMENTS);
273
+ rb_define_mysql_const(ER_NO_PERMISSION_TO_CREATE_USER);
274
+ rb_define_mysql_const(ER_UNION_TABLES_IN_DIFFERENT_DIR);
275
+ rb_define_mysql_const(ER_LOCK_DEADLOCK);
276
+ rb_define_mysql_const(ER_TABLE_CANT_HANDLE_FT);
277
+ rb_define_mysql_const(ER_CANNOT_ADD_FOREIGN);
278
+ rb_define_mysql_const(ER_NO_REFERENCED_ROW);
279
+ rb_define_mysql_const(ER_ROW_IS_REFERENCED);
280
+ rb_define_mysql_const(ER_CONNECT_TO_MASTER);
281
+ rb_define_mysql_const(ER_QUERY_ON_MASTER);
282
+ rb_define_mysql_const(ER_ERROR_WHEN_EXECUTING_COMMAND);
283
+ rb_define_mysql_const(ER_WRONG_USAGE);
284
+ rb_define_mysql_const(ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT);
285
+ rb_define_mysql_const(ER_CANT_UPDATE_WITH_READLOCK);
286
+ rb_define_mysql_const(ER_MIXING_NOT_ALLOWED);
287
+ rb_define_mysql_const(ER_DUP_ARGUMENT);
288
+ rb_define_mysql_const(ER_USER_LIMIT_REACHED);
289
+ rb_define_mysql_const(ER_SPECIFIC_ACCESS_DENIED_ERROR);
290
+ rb_define_mysql_const(ER_LOCAL_VARIABLE);
291
+ rb_define_mysql_const(ER_GLOBAL_VARIABLE);
292
+ rb_define_mysql_const(ER_NO_DEFAULT);
293
+ rb_define_mysql_const(ER_WRONG_VALUE_FOR_VAR);
294
+ rb_define_mysql_const(ER_WRONG_TYPE_FOR_VAR);
295
+ rb_define_mysql_const(ER_VAR_CANT_BE_READ);
296
+ rb_define_mysql_const(ER_CANT_USE_OPTION_HERE);
297
+ rb_define_mysql_const(ER_NOT_SUPPORTED_YET);
298
+ rb_define_mysql_const(ER_MASTER_FATAL_ERROR_READING_BINLOG);
299
+ rb_define_mysql_const(ER_SLAVE_IGNORED_TABLE);
300
+ rb_define_mysql_const(ER_INCORRECT_GLOBAL_LOCAL_VAR);
301
+ rb_define_mysql_const(ER_WRONG_FK_DEF);
302
+ rb_define_mysql_const(ER_KEY_REF_DO_NOT_MATCH_TABLE_REF);
303
+ rb_define_mysql_const(ER_OPERAND_COLUMNS);
304
+ rb_define_mysql_const(ER_SUBQUERY_NO_1_ROW);
305
+ rb_define_mysql_const(ER_UNKNOWN_STMT_HANDLER);
306
+ rb_define_mysql_const(ER_CORRUPT_HELP_DB);
307
+ rb_define_mysql_const(ER_CYCLIC_REFERENCE);
308
+ rb_define_mysql_const(ER_AUTO_CONVERT);
309
+ rb_define_mysql_const(ER_ILLEGAL_REFERENCE);
310
+ rb_define_mysql_const(ER_DERIVED_MUST_HAVE_ALIAS);
311
+ rb_define_mysql_const(ER_SELECT_REDUCED);
312
+ rb_define_mysql_const(ER_TABLENAME_NOT_ALLOWED_HERE);
313
+ rb_define_mysql_const(ER_NOT_SUPPORTED_AUTH_MODE);
314
+ rb_define_mysql_const(ER_SPATIAL_CANT_HAVE_NULL);
315
+ rb_define_mysql_const(ER_COLLATION_CHARSET_MISMATCH);
316
+ rb_define_mysql_const(ER_SLAVE_WAS_RUNNING);
317
+ rb_define_mysql_const(ER_SLAVE_WAS_NOT_RUNNING);
318
+ rb_define_mysql_const(ER_TOO_BIG_FOR_UNCOMPRESS);
319
+ rb_define_mysql_const(ER_ZLIB_Z_MEM_ERROR);
320
+ rb_define_mysql_const(ER_ZLIB_Z_BUF_ERROR);
321
+ rb_define_mysql_const(ER_ZLIB_Z_DATA_ERROR);
322
+ rb_define_mysql_const(ER_CUT_VALUE_GROUP_CONCAT);
323
+ rb_define_mysql_const(ER_WARN_TOO_FEW_RECORDS);
324
+ rb_define_mysql_const(ER_WARN_TOO_MANY_RECORDS);
325
+ rb_define_mysql_const(ER_WARN_NULL_TO_NOTNULL);
326
+ rb_define_mysql_const(ER_WARN_DATA_OUT_OF_RANGE);
327
+ rb_define_mysql_const(ER_WARN_USING_OTHER_HANDLER);
328
+ rb_define_mysql_const(ER_CANT_AGGREGATE_2COLLATIONS);
329
+ rb_define_mysql_const(ER_DROP_USER);
330
+ rb_define_mysql_const(ER_REVOKE_GRANTS);
331
+ rb_define_mysql_const(ER_CANT_AGGREGATE_3COLLATIONS);
332
+ rb_define_mysql_const(ER_CANT_AGGREGATE_NCOLLATIONS);
333
+ rb_define_mysql_const(ER_VARIABLE_IS_NOT_STRUCT);
334
+ rb_define_mysql_const(ER_UNKNOWN_COLLATION);
335
+ rb_define_mysql_const(ER_SLAVE_IGNORED_SSL_PARAMS);
336
+ rb_define_mysql_const(ER_SERVER_IS_IN_SECURE_AUTH_MODE);
337
+ rb_define_mysql_const(ER_WARN_FIELD_RESOLVED);
338
+ rb_define_mysql_const(ER_BAD_SLAVE_UNTIL_COND);
339
+ rb_define_mysql_const(ER_MISSING_SKIP_SLAVE);
340
+ rb_define_mysql_const(ER_UNTIL_COND_IGNORED);
341
+ rb_define_mysql_const(ER_WRONG_NAME_FOR_INDEX);
342
+ rb_define_mysql_const(ER_WRONG_NAME_FOR_CATALOG);
343
+ rb_define_mysql_const(ER_WARN_QC_RESIZE);
344
+ rb_define_mysql_const(ER_BAD_FT_COLUMN);
345
+ rb_define_mysql_const(ER_UNKNOWN_KEY_CACHE);
346
+ rb_define_mysql_const(ER_WARN_HOSTNAME_WONT_WORK);
347
+ rb_define_mysql_const(ER_UNKNOWN_STORAGE_ENGINE);
348
+ rb_define_mysql_const(ER_WARN_DEPRECATED_SYNTAX);
349
+ rb_define_mysql_const(ER_NON_UPDATABLE_TABLE);
350
+ rb_define_mysql_const(ER_FEATURE_DISABLED);
351
+ rb_define_mysql_const(ER_OPTION_PREVENTS_STATEMENT);
352
+ rb_define_mysql_const(ER_DUPLICATED_VALUE_IN_TYPE);
353
+ rb_define_mysql_const(ER_TRUNCATED_WRONG_VALUE);
354
+ rb_define_mysql_const(ER_TOO_MUCH_AUTO_TIMESTAMP_COLS);
355
+ rb_define_mysql_const(ER_INVALID_ON_UPDATE);
356
+ rb_define_mysql_const(ER_UNSUPPORTED_PS);
357
+ rb_define_mysql_const(ER_GET_ERRMSG);
358
+ rb_define_mysql_const(ER_GET_TEMPORARY_ERRMSG);
359
+ rb_define_mysql_const(ER_UNKNOWN_TIME_ZONE);
360
+ rb_define_mysql_const(ER_WARN_INVALID_TIMESTAMP);
361
+ rb_define_mysql_const(ER_INVALID_CHARACTER_STRING);
362
+ rb_define_mysql_const(ER_WARN_ALLOWED_PACKET_OVERFLOWED);
363
+ rb_define_mysql_const(ER_CONFLICTING_DECLARATIONS);
364
+ rb_define_mysql_const(ER_SP_NO_RECURSIVE_CREATE);
365
+ rb_define_mysql_const(ER_SP_ALREADY_EXISTS);
366
+ rb_define_mysql_const(ER_SP_DOES_NOT_EXIST);
367
+ rb_define_mysql_const(ER_SP_DROP_FAILED);
368
+ rb_define_mysql_const(ER_SP_STORE_FAILED);
369
+ rb_define_mysql_const(ER_SP_LILABEL_MISMATCH);
370
+ rb_define_mysql_const(ER_SP_LABEL_REDEFINE);
371
+ rb_define_mysql_const(ER_SP_LABEL_MISMATCH);
372
+ rb_define_mysql_const(ER_SP_UNINIT_VAR);
373
+ rb_define_mysql_const(ER_SP_BADSELECT);
374
+ rb_define_mysql_const(ER_SP_BADRETURN);
375
+ rb_define_mysql_const(ER_SP_BADSTATEMENT);
376
+ rb_define_mysql_const(ER_UPDATE_LOG_DEPRECATED_IGNORED);
377
+ rb_define_mysql_const(ER_UPDATE_LOG_DEPRECATED_TRANSLATED);
378
+ rb_define_mysql_const(ER_QUERY_INTERRUPTED);
379
+ rb_define_mysql_const(ER_SP_WRONG_NO_OF_ARGS);
380
+ rb_define_mysql_const(ER_SP_COND_MISMATCH);
381
+ rb_define_mysql_const(ER_SP_NORETURN);
382
+ rb_define_mysql_const(ER_SP_NORETURNEND);
383
+ rb_define_mysql_const(ER_SP_BAD_CURSOR_QUERY);
384
+ rb_define_mysql_const(ER_SP_BAD_CURSOR_SELECT);
385
+ rb_define_mysql_const(ER_SP_CURSOR_MISMATCH);
386
+ rb_define_mysql_const(ER_SP_CURSOR_ALREADY_OPEN);
387
+ rb_define_mysql_const(ER_SP_CURSOR_NOT_OPEN);
388
+ rb_define_mysql_const(ER_SP_UNDECLARED_VAR);
389
+ rb_define_mysql_const(ER_SP_WRONG_NO_OF_FETCH_ARGS);
390
+ rb_define_mysql_const(ER_SP_FETCH_NO_DATA);
391
+ rb_define_mysql_const(ER_SP_DUP_PARAM);
392
+ rb_define_mysql_const(ER_SP_DUP_VAR);
393
+ rb_define_mysql_const(ER_SP_DUP_COND);
394
+ rb_define_mysql_const(ER_SP_DUP_CURS);
395
+ rb_define_mysql_const(ER_SP_CANT_ALTER);
396
+ rb_define_mysql_const(ER_SP_SUBSELECT_NYI);
397
+ rb_define_mysql_const(ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG);
398
+ rb_define_mysql_const(ER_SP_VARCOND_AFTER_CURSHNDLR);
399
+ rb_define_mysql_const(ER_SP_CURSOR_AFTER_HANDLER);
400
+ rb_define_mysql_const(ER_SP_CASE_NOT_FOUND);
401
+ rb_define_mysql_const(ER_FPARSER_TOO_BIG_FILE);
402
+ rb_define_mysql_const(ER_FPARSER_BAD_HEADER);
403
+ rb_define_mysql_const(ER_FPARSER_EOF_IN_COMMENT);
404
+ rb_define_mysql_const(ER_FPARSER_ERROR_IN_PARAMETER);
405
+ rb_define_mysql_const(ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER);
406
+ rb_define_mysql_const(ER_VIEW_NO_EXPLAIN);
407
+ rb_define_mysql_const(ER_FRM_UNKNOWN_TYPE);
408
+ rb_define_mysql_const(ER_WRONG_OBJECT);
409
+ rb_define_mysql_const(ER_NONUPDATEABLE_COLUMN);
410
+ rb_define_mysql_const(ER_VIEW_SELECT_DERIVED);
411
+ rb_define_mysql_const(ER_VIEW_SELECT_CLAUSE);
412
+ rb_define_mysql_const(ER_VIEW_SELECT_VARIABLE);
413
+ rb_define_mysql_const(ER_VIEW_SELECT_TMPTABLE);
414
+ rb_define_mysql_const(ER_VIEW_WRONG_LIST);
415
+ rb_define_mysql_const(ER_WARN_VIEW_MERGE);
416
+ rb_define_mysql_const(ER_WARN_VIEW_WITHOUT_KEY);
417
+ rb_define_mysql_const(ER_VIEW_INVALID);
418
+ rb_define_mysql_const(ER_SP_NO_DROP_SP);
419
+ rb_define_mysql_const(ER_SP_GOTO_IN_HNDLR);
420
+ rb_define_mysql_const(ER_TRG_ALREADY_EXISTS);
421
+ rb_define_mysql_const(ER_TRG_DOES_NOT_EXIST);
422
+ rb_define_mysql_const(ER_TRG_ON_VIEW_OR_TEMP_TABLE);
423
+ rb_define_mysql_const(ER_TRG_CANT_CHANGE_ROW);
424
+ rb_define_mysql_const(ER_TRG_NO_SUCH_ROW_IN_TRG);
425
+ rb_define_mysql_const(ER_NO_DEFAULT_FOR_FIELD);
426
+ rb_define_mysql_const(ER_DIVISION_BY_ZERO);
427
+ rb_define_mysql_const(ER_TRUNCATED_WRONG_VALUE_FOR_FIELD);
428
+ rb_define_mysql_const(ER_ILLEGAL_VALUE_FOR_TYPE);
429
+ rb_define_mysql_const(ER_VIEW_NONUPD_CHECK);
430
+ rb_define_mysql_const(ER_VIEW_CHECK_FAILED);
431
+ rb_define_mysql_const(ER_PROCACCESS_DENIED_ERROR);
432
+ rb_define_mysql_const(ER_RELAY_LOG_FAIL);
433
+ rb_define_mysql_const(ER_PASSWD_LENGTH);
434
+ rb_define_mysql_const(ER_UNKNOWN_TARGET_BINLOG);
435
+ rb_define_mysql_const(ER_IO_ERR_LOG_INDEX_READ);
436
+ rb_define_mysql_const(ER_BINLOG_PURGE_PROHIBITED);
437
+ rb_define_mysql_const(ER_FSEEK_FAIL);
438
+ rb_define_mysql_const(ER_BINLOG_PURGE_FATAL_ERR);
439
+ rb_define_mysql_const(ER_LOG_IN_USE);
440
+ rb_define_mysql_const(ER_LOG_PURGE_UNKNOWN_ERR);
441
+ rb_define_mysql_const(ER_RELAY_LOG_INIT);
442
+ rb_define_mysql_const(ER_NO_BINARY_LOGGING);
443
+ rb_define_mysql_const(ER_RESERVED_SYNTAX);
444
+ rb_define_mysql_const(ER_WSAS_FAILED);
445
+ rb_define_mysql_const(ER_DIFF_GROUPS_PROC);
446
+ rb_define_mysql_const(ER_NO_GROUP_FOR_PROC);
447
+ rb_define_mysql_const(ER_ORDER_WITH_PROC);
448
+ rb_define_mysql_const(ER_LOGGING_PROHIBIT_CHANGING_OF);
449
+ rb_define_mysql_const(ER_NO_FILE_MAPPING);
450
+ rb_define_mysql_const(ER_WRONG_MAGIC);
451
+ rb_define_mysql_const(ER_PS_MANY_PARAM);
452
+ rb_define_mysql_const(ER_KEY_PART_0);
453
+ rb_define_mysql_const(ER_VIEW_CHECKSUM);
454
+ rb_define_mysql_const(ER_VIEW_MULTIUPDATE);
455
+ rb_define_mysql_const(ER_VIEW_NO_INSERT_FIELD_LIST);
456
+ rb_define_mysql_const(ER_VIEW_DELETE_MERGE_VIEW);
457
+ rb_define_mysql_const(ER_CANNOT_USER);
458
+ rb_define_mysql_const(ER_XAER_NOTA);
459
+ rb_define_mysql_const(ER_XAER_INVAL);
460
+ rb_define_mysql_const(ER_XAER_RMFAIL);
461
+ rb_define_mysql_const(ER_XAER_OUTSIDE);
462
+ rb_define_mysql_const(ER_XAER_RMERR);
463
+ rb_define_mysql_const(ER_XA_RBROLLBACK);
464
+ rb_define_mysql_const(ER_NONEXISTING_PROC_GRANT);
465
+ rb_define_mysql_const(ER_PROC_AUTO_GRANT_FAIL);
466
+ rb_define_mysql_const(ER_PROC_AUTO_REVOKE_FAIL);
467
+ rb_define_mysql_const(ER_DATA_TOO_LONG);
468
+ rb_define_mysql_const(ER_SP_BAD_SQLSTATE);
469
+ rb_define_mysql_const(ER_STARTUP);
470
+ rb_define_mysql_const(ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR);
471
+ rb_define_mysql_const(ER_CANT_CREATE_USER_WITH_GRANT);
472
+ rb_define_mysql_const(ER_WRONG_VALUE_FOR_TYPE);
473
+ rb_define_mysql_const(ER_TABLE_DEF_CHANGED);
474
+ rb_define_mysql_const(ER_SP_DUP_HANDLER);
475
+ rb_define_mysql_const(ER_SP_NOT_VAR_ARG);
476
+ rb_define_mysql_const(ER_SP_NO_RETSET);
477
+ rb_define_mysql_const(ER_CANT_CREATE_GEOMETRY_OBJECT);
478
+ rb_define_mysql_const(ER_FAILED_ROUTINE_BREAK_BINLOG);
479
+ rb_define_mysql_const(ER_BINLOG_UNSAFE_ROUTINE);
480
+ rb_define_mysql_const(ER_BINLOG_CREATE_ROUTINE_NEED_SUPER);
481
+ rb_define_mysql_const(ER_EXEC_STMT_WITH_OPEN_CURSOR);
482
+ rb_define_mysql_const(ER_STMT_HAS_NO_OPEN_CURSOR);
483
+ rb_define_mysql_const(ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG);
484
+ rb_define_mysql_const(ER_NO_DEFAULT_FOR_VIEW_FIELD);
485
+ rb_define_mysql_const(ER_SP_NO_RECURSION);
486
+ rb_define_mysql_const(ER_TOO_BIG_SCALE);
487
+ rb_define_mysql_const(ER_TOO_BIG_PRECISION);
488
+ rb_define_mysql_const(ER_M_BIGGER_THAN_D);
489
+ rb_define_mysql_const(ER_WRONG_LOCK_OF_SYSTEM_TABLE);
490
+ rb_define_mysql_const(ER_CONNECT_TO_FOREIGN_DATA_SOURCE);
491
+ rb_define_mysql_const(ER_QUERY_ON_FOREIGN_DATA_SOURCE);
492
+ rb_define_mysql_const(ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST);
493
+ rb_define_mysql_const(ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE);
494
+ rb_define_mysql_const(ER_FOREIGN_DATA_STRING_INVALID);
495
+ rb_define_mysql_const(ER_CANT_CREATE_FEDERATED_TABLE);
496
+ rb_define_mysql_const(ER_TRG_IN_WRONG_SCHEMA);
497
+ rb_define_mysql_const(ER_STACK_OVERRUN_NEED_MORE);
498
+ rb_define_mysql_const(ER_TOO_LONG_BODY);
499
+ rb_define_mysql_const(ER_WARN_CANT_DROP_DEFAULT_KEYCACHE);
500
+ rb_define_mysql_const(ER_TOO_BIG_DISPLAYWIDTH);
501
+ rb_define_mysql_const(ER_XAER_DUPID);
502
+ rb_define_mysql_const(ER_DATETIME_FUNCTION_OVERFLOW);
503
+ rb_define_mysql_const(ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG);
504
+ rb_define_mysql_const(ER_VIEW_PREVENT_UPDATE);
505
+ rb_define_mysql_const(ER_PS_NO_RECURSION);
506
+ rb_define_mysql_const(ER_SP_CANT_SET_AUTOCOMMIT);
507
+ rb_define_mysql_const(ER_MALFORMED_DEFINER);
508
+ rb_define_mysql_const(ER_VIEW_FRM_NO_USER);
509
+ rb_define_mysql_const(ER_VIEW_OTHER_USER);
510
+ rb_define_mysql_const(ER_NO_SUCH_USER);
511
+ rb_define_mysql_const(ER_FORBID_SCHEMA_CHANGE);
512
+ rb_define_mysql_const(ER_ROW_IS_REFERENCED_2);
513
+ rb_define_mysql_const(ER_NO_REFERENCED_ROW_2);
514
+ rb_define_mysql_const(ER_SP_BAD_VAR_SHADOW);
515
+ rb_define_mysql_const(ER_TRG_NO_DEFINER);
516
+ rb_define_mysql_const(ER_OLD_FILE_FORMAT);
517
+ rb_define_mysql_const(ER_SP_RECURSION_LIMIT);
518
+ rb_define_mysql_const(ER_SP_PROC_TABLE_CORRUPT);
519
+ rb_define_mysql_const(ER_SP_WRONG_NAME);
520
+ rb_define_mysql_const(ER_TABLE_NEEDS_UPGRADE);
521
+ rb_define_mysql_const(ER_SP_NO_AGGREGATE);
522
+ rb_define_mysql_const(ER_MAX_PREPARED_STMT_COUNT_REACHED);
523
+ rb_define_mysql_const(ER_VIEW_RECURSIVE);
524
+ rb_define_mysql_const(ER_NON_GROUPING_FIELD_USED);
525
+ rb_define_mysql_const(ER_TABLE_CANT_HANDLE_SPKEYS);
526
+ rb_define_mysql_const(ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA);
527
+ rb_define_mysql_const(ER_REMOVED_SPACES);
528
+ rb_define_mysql_const(ER_AUTOINC_READ_FAILED);
529
+ rb_define_mysql_const(ER_USERNAME);
530
+ rb_define_mysql_const(ER_HOSTNAME);
531
+ rb_define_mysql_const(ER_WRONG_STRING_LENGTH);
532
+ rb_define_mysql_const(ER_NON_INSERTABLE_TABLE);
533
+ rb_define_mysql_const(ER_ADMIN_WRONG_MRG_TABLE);
534
+ rb_define_mysql_const(ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT);
535
+ rb_define_mysql_const(ER_NAME_BECOMES_EMPTY);
536
+ rb_define_mysql_const(ER_ERROR_LAST);