tmtm-ruby-mysql 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,164 @@
1
+ # Copyright (C) 2003-2008 TOMITA Masahiro
2
+ # mailto:tommy@tmtm.org
3
+
4
+ class Mysql
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 Statement
160
+ # Cursor type
161
+ CURSOR_TYPE_NO_CURSOR = 0
162
+ CURSOR_TYPE_READ_ONLY = 1
163
+ end
164
+ end
@@ -0,0 +1,518 @@
1
+ # Copyright (C) 2003-2008 TOMITA Masahiro
2
+ # mailto:tommy@tmtm.org
3
+
4
+ class Mysql
5
+ class Error < StandardError
6
+ end
7
+
8
+ class ServerError < Error
9
+ ERRNO = 0
10
+ def initialize(message, sqlstate=nil)
11
+ @sqlstate = sqlstate
12
+ @error = message
13
+ super message
14
+ end
15
+ attr_reader :sqlstate, :error
16
+
17
+ def errno
18
+ self.class::ERRNO
19
+ end
20
+
21
+ ERROR_MAP = {}
22
+
23
+ ER_HASHCHK = 1000
24
+ ER_NISAMCHK = 1001
25
+ ER_NO = 1002
26
+ ER_YES = 1003
27
+ ER_CANT_CREATE_FILE = 1004
28
+ ER_CANT_CREATE_TABLE = 1005
29
+ ER_CANT_CREATE_DB = 1006
30
+ ER_DB_CREATE_EXISTS = 1007
31
+ ER_DB_DROP_EXISTS = 1008
32
+ ER_DB_DROP_DELETE = 1009
33
+ ER_DB_DROP_RMDIR = 1010
34
+ ER_CANT_DELETE_FILE = 1011
35
+ ER_CANT_FIND_SYSTEM_REC = 1012
36
+ ER_CANT_GET_STAT = 1013
37
+ ER_CANT_GET_WD = 1014
38
+ ER_CANT_LOCK = 1015
39
+ ER_CANT_OPEN_FILE = 1016
40
+ ER_FILE_NOT_FOUND = 1017
41
+ ER_CANT_READ_DIR = 1018
42
+ ER_CANT_SET_WD = 1019
43
+ ER_CHECKREAD = 1020
44
+ ER_DISK_FULL = 1021
45
+ ER_DUP_KEY = 1022
46
+ ER_ERROR_ON_CLOSE = 1023
47
+ ER_ERROR_ON_READ = 1024
48
+ ER_ERROR_ON_RENAME = 1025
49
+ ER_ERROR_ON_WRITE = 1026
50
+ ER_FILE_USED = 1027
51
+ ER_FILSORT_ABORT = 1028
52
+ ER_FORM_NOT_FOUND = 1029
53
+ ER_GET_ERRNO = 1030
54
+ ER_ILLEGAL_HA = 1031
55
+ ER_KEY_NOT_FOUND = 1032
56
+ ER_NOT_FORM_FILE = 1033
57
+ ER_NOT_KEYFILE = 1034
58
+ ER_OLD_KEYFILE = 1035
59
+ ER_OPEN_AS_READONLY = 1036
60
+ ER_OUTOFMEMORY = 1037
61
+ ER_OUT_OF_SORTMEMORY = 1038
62
+ ER_UNEXPECTED_EOF = 1039
63
+ ER_CON_COUNT_ERROR = 1040
64
+ ER_OUT_OF_RESOURCES = 1041
65
+ ER_BAD_HOST_ERROR = 1042
66
+ ER_HANDSHAKE_ERROR = 1043
67
+ ER_DBACCESS_DENIED_ERROR = 1044
68
+ ER_ACCESS_DENIED_ERROR = 1045
69
+ ER_NO_DB_ERROR = 1046
70
+ ER_UNKNOWN_COM_ERROR = 1047
71
+ ER_BAD_NULL_ERROR = 1048
72
+ ER_BAD_DB_ERROR = 1049
73
+ ER_TABLE_EXISTS_ERROR = 1050
74
+ ER_BAD_TABLE_ERROR = 1051
75
+ ER_NON_UNIQ_ERROR = 1052
76
+ ER_SERVER_SHUTDOWN = 1053
77
+ ER_BAD_FIELD_ERROR = 1054
78
+ ER_WRONG_FIELD_WITH_GROUP = 1055
79
+ ER_WRONG_GROUP_FIELD = 1056
80
+ ER_WRONG_SUM_SELECT = 1057
81
+ ER_WRONG_VALUE_COUNT = 1058
82
+ ER_TOO_LONG_IDENT = 1059
83
+ ER_DUP_FIELDNAME = 1060
84
+ ER_DUP_KEYNAME = 1061
85
+ ER_DUP_ENTRY = 1062
86
+ ER_WRONG_FIELD_SPEC = 1063
87
+ ER_PARSE_ERROR = 1064
88
+ ER_EMPTY_QUERY = 1065
89
+ ER_NONUNIQ_TABLE = 1066
90
+ ER_INVALID_DEFAULT = 1067
91
+ ER_MULTIPLE_PRI_KEY = 1068
92
+ ER_TOO_MANY_KEYS = 1069
93
+ ER_TOO_MANY_KEY_PARTS = 1070
94
+ ER_TOO_LONG_KEY = 1071
95
+ ER_KEY_COLUMN_DOES_NOT_EXITS = 1072
96
+ ER_BLOB_USED_AS_KEY = 1073
97
+ ER_TOO_BIG_FIELDLENGTH = 1074
98
+ ER_WRONG_AUTO_KEY = 1075
99
+ ER_READY = 1076
100
+ ER_NORMAL_SHUTDOWN = 1077
101
+ ER_GOT_SIGNAL = 1078
102
+ ER_SHUTDOWN_COMPLETE = 1079
103
+ ER_FORCING_CLOSE = 1080
104
+ ER_IPSOCK_ERROR = 1081
105
+ ER_NO_SUCH_INDEX = 1082
106
+ ER_WRONG_FIELD_TERMINATORS = 1083
107
+ ER_BLOBS_AND_NO_TERMINATED = 1084
108
+ ER_TEXTFILE_NOT_READABLE = 1085
109
+ ER_FILE_EXISTS_ERROR = 1086
110
+ ER_LOAD_INFO = 1087
111
+ ER_ALTER_INFO = 1088
112
+ ER_WRONG_SUB_KEY = 1089
113
+ ER_CANT_REMOVE_ALL_FIELDS = 1090
114
+ ER_CANT_DROP_FIELD_OR_KEY = 1091
115
+ ER_INSERT_INFO = 1092
116
+ ER_UPDATE_TABLE_USED = 1093
117
+ ER_NO_SUCH_THREAD = 1094
118
+ ER_KILL_DENIED_ERROR = 1095
119
+ ER_NO_TABLES_USED = 1096
120
+ ER_TOO_BIG_SET = 1097
121
+ ER_NO_UNIQUE_LOGFILE = 1098
122
+ ER_TABLE_NOT_LOCKED_FOR_WRITE = 1099
123
+ ER_TABLE_NOT_LOCKED = 1100
124
+ ER_BLOB_CANT_HAVE_DEFAULT = 1101
125
+ ER_WRONG_DB_NAME = 1102
126
+ ER_WRONG_TABLE_NAME = 1103
127
+ ER_TOO_BIG_SELECT = 1104
128
+ ER_UNKNOWN_ERROR = 1105
129
+ ER_UNKNOWN_PROCEDURE = 1106
130
+ ER_WRONG_PARAMCOUNT_TO_PROCEDURE = 1107
131
+ ER_WRONG_PARAMETERS_TO_PROCEDURE = 1108
132
+ ER_UNKNOWN_TABLE = 1109
133
+ ER_FIELD_SPECIFIED_TWICE = 1110
134
+ ER_INVALID_GROUP_FUNC_USE = 1111
135
+ ER_UNSUPPORTED_EXTENSION = 1112
136
+ ER_TABLE_MUST_HAVE_COLUMNS = 1113
137
+ ER_RECORD_FILE_FULL = 1114
138
+ ER_UNKNOWN_CHARACTER_SET = 1115
139
+ ER_TOO_MANY_TABLES = 1116
140
+ ER_TOO_MANY_FIELDS = 1117
141
+ ER_TOO_BIG_ROWSIZE = 1118
142
+ ER_STACK_OVERRUN = 1119
143
+ ER_WRONG_OUTER_JOIN = 1120
144
+ ER_NULL_COLUMN_IN_INDEX = 1121
145
+ ER_CANT_FIND_UDF = 1122
146
+ ER_CANT_INITIALIZE_UDF = 1123
147
+ ER_UDF_NO_PATHS = 1124
148
+ ER_UDF_EXISTS = 1125
149
+ ER_CANT_OPEN_LIBRARY = 1126
150
+ ER_CANT_FIND_DL_ENTRY = 1127
151
+ ER_FUNCTION_NOT_DEFINED = 1128
152
+ ER_HOST_IS_BLOCKED = 1129
153
+ ER_HOST_NOT_PRIVILEGED = 1130
154
+ ER_PASSWORD_ANONYMOUS_USER = 1131
155
+ ER_PASSWORD_NOT_ALLOWED = 1132
156
+ ER_PASSWORD_NO_MATCH = 1133
157
+ ER_UPDATE_INFO = 1134
158
+ ER_CANT_CREATE_THREAD = 1135
159
+ ER_WRONG_VALUE_COUNT_ON_ROW = 1136
160
+ ER_CANT_REOPEN_TABLE = 1137
161
+ ER_INVALID_USE_OF_NULL = 1138
162
+ ER_REGEXP_ERROR = 1139
163
+ ER_MIX_OF_GROUP_FUNC_AND_FIELDS = 1140
164
+ ER_NONEXISTING_GRANT = 1141
165
+ ER_TABLEACCESS_DENIED_ERROR = 1142
166
+ ER_COLUMNACCESS_DENIED_ERROR = 1143
167
+ ER_ILLEGAL_GRANT_FOR_TABLE = 1144
168
+ ER_GRANT_WRONG_HOST_OR_USER = 1145
169
+ ER_NO_SUCH_TABLE = 1146
170
+ ER_NONEXISTING_TABLE_GRANT = 1147
171
+ ER_NOT_ALLOWED_COMMAND = 1148
172
+ ER_SYNTAX_ERROR = 1149
173
+ ER_DELAYED_CANT_CHANGE_LOCK = 1150
174
+ ER_TOO_MANY_DELAYED_THREADS = 1151
175
+ ER_ABORTING_CONNECTION = 1152
176
+ ER_NET_PACKET_TOO_LARGE = 1153
177
+ ER_NET_READ_ERROR_FROM_PIPE = 1154
178
+ ER_NET_FCNTL_ERROR = 1155
179
+ ER_NET_PACKETS_OUT_OF_ORDER = 1156
180
+ ER_NET_UNCOMPRESS_ERROR = 1157
181
+ ER_NET_READ_ERROR = 1158
182
+ ER_NET_READ_INTERRUPTED = 1159
183
+ ER_NET_ERROR_ON_WRITE = 1160
184
+ ER_NET_WRITE_INTERRUPTED = 1161
185
+ ER_TOO_LONG_STRING = 1162
186
+ ER_TABLE_CANT_HANDLE_BLOB = 1163
187
+ ER_TABLE_CANT_HANDLE_AUTO_INCREMENT = 1164
188
+ ER_DELAYED_INSERT_TABLE_LOCKED = 1165
189
+ ER_WRONG_COLUMN_NAME = 1166
190
+ ER_WRONG_KEY_COLUMN = 1167
191
+ ER_WRONG_MRG_TABLE = 1168
192
+ ER_DUP_UNIQUE = 1169
193
+ ER_BLOB_KEY_WITHOUT_LENGTH = 1170
194
+ ER_PRIMARY_CANT_HAVE_NULL = 1171
195
+ ER_TOO_MANY_ROWS = 1172
196
+ ER_REQUIRES_PRIMARY_KEY = 1173
197
+ ER_NO_RAID_COMPILED = 1174
198
+ ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE = 1175
199
+ ER_KEY_DOES_NOT_EXITS = 1176
200
+ ER_CHECK_NO_SUCH_TABLE = 1177
201
+ ER_CHECK_NOT_IMPLEMENTED = 1178
202
+ ER_CANT_DO_THIS_DURING_AN_TRANSACTION = 1179
203
+ ER_ERROR_DURING_COMMIT = 1180
204
+ ER_ERROR_DURING_ROLLBACK = 1181
205
+ ER_ERROR_DURING_FLUSH_LOGS = 1182
206
+ ER_ERROR_DURING_CHECKPOINT = 1183
207
+ ER_NEW_ABORTING_CONNECTION = 1184
208
+ ER_DUMP_NOT_IMPLEMENTED = 1185
209
+ ER_FLUSH_MASTER_BINLOG_CLOSED = 1186
210
+ ER_INDEX_REBUILD = 1187
211
+ ER_MASTER = 1188
212
+ ER_MASTER_NET_READ = 1189
213
+ ER_MASTER_NET_WRITE = 1190
214
+ ER_FT_MATCHING_KEY_NOT_FOUND = 1191
215
+ ER_LOCK_OR_ACTIVE_TRANSACTION = 1192
216
+ ER_UNKNOWN_SYSTEM_VARIABLE = 1193
217
+ ER_CRASHED_ON_USAGE = 1194
218
+ ER_CRASHED_ON_REPAIR = 1195
219
+ ER_WARNING_NOT_COMPLETE_ROLLBACK = 1196
220
+ ER_TRANS_CACHE_FULL = 1197
221
+ ER_SLAVE_MUST_STOP = 1198
222
+ ER_SLAVE_NOT_RUNNING = 1199
223
+ ER_BAD_SLAVE = 1200
224
+ ER_MASTER_INFO = 1201
225
+ ER_SLAVE_THREAD = 1202
226
+ ER_TOO_MANY_USER_CONNECTIONS = 1203
227
+ ER_SET_CONSTANTS_ONLY = 1204
228
+ ER_LOCK_WAIT_TIMEOUT = 1205
229
+ ER_LOCK_TABLE_FULL = 1206
230
+ ER_READ_ONLY_TRANSACTION = 1207
231
+ ER_DROP_DB_WITH_READ_LOCK = 1208
232
+ ER_CREATE_DB_WITH_READ_LOCK = 1209
233
+ ER_WRONG_ARGUMENTS = 1210
234
+ ER_NO_PERMISSION_TO_CREATE_USER = 1211
235
+ ER_UNION_TABLES_IN_DIFFERENT_DIR = 1212
236
+ ER_LOCK_DEADLOCK = 1213
237
+ ER_TABLE_CANT_HANDLE_FT = 1214
238
+ ER_CANNOT_ADD_FOREIGN = 1215
239
+ ER_NO_REFERENCED_ROW = 1216
240
+ ER_ROW_IS_REFERENCED = 1217
241
+ ER_CONNECT_TO_MASTER = 1218
242
+ ER_QUERY_ON_MASTER = 1219
243
+ ER_ERROR_WHEN_EXECUTING_COMMAND = 1220
244
+ ER_WRONG_USAGE = 1221
245
+ ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT = 1222
246
+ ER_CANT_UPDATE_WITH_READLOCK = 1223
247
+ ER_MIXING_NOT_ALLOWED = 1224
248
+ ER_DUP_ARGUMENT = 1225
249
+ ER_USER_LIMIT_REACHED = 1226
250
+ ER_SPECIFIC_ACCESS_DENIED_ERROR = 1227
251
+ ER_LOCAL_VARIABLE = 1228
252
+ ER_GLOBAL_VARIABLE = 1229
253
+ ER_NO_DEFAULT = 1230
254
+ ER_WRONG_VALUE_FOR_VAR = 1231
255
+ ER_WRONG_TYPE_FOR_VAR = 1232
256
+ ER_VAR_CANT_BE_READ = 1233
257
+ ER_CANT_USE_OPTION_HERE = 1234
258
+ ER_NOT_SUPPORTED_YET = 1235
259
+ ER_MASTER_FATAL_ERROR_READING_BINLOG = 1236
260
+ ER_SLAVE_IGNORED_TABLE = 1237
261
+ ER_INCORRECT_GLOBAL_LOCAL_VAR = 1238
262
+ ER_WRONG_FK_DEF = 1239
263
+ ER_KEY_REF_DO_NOT_MATCH_TABLE_REF = 1240
264
+ ER_OPERAND_COLUMNS = 1241
265
+ ER_SUBQUERY_NO_1_ROW = 1242
266
+ ER_UNKNOWN_STMT_HANDLER = 1243
267
+ ER_CORRUPT_HELP_DB = 1244
268
+ ER_CYCLIC_REFERENCE = 1245
269
+ ER_AUTO_CONVERT = 1246
270
+ ER_ILLEGAL_REFERENCE = 1247
271
+ ER_DERIVED_MUST_HAVE_ALIAS = 1248
272
+ ER_SELECT_REDUCED = 1249
273
+ ER_TABLENAME_NOT_ALLOWED_HERE = 1250
274
+ ER_NOT_SUPPORTED_AUTH_MODE = 1251
275
+ ER_SPATIAL_CANT_HAVE_NULL = 1252
276
+ ER_COLLATION_CHARSET_MISMATCH = 1253
277
+ ER_SLAVE_WAS_RUNNING = 1254
278
+ ER_SLAVE_WAS_NOT_RUNNING = 1255
279
+ ER_TOO_BIG_FOR_UNCOMPRESS = 1256
280
+ ER_ZLIB_Z_MEM_ERROR = 1257
281
+ ER_ZLIB_Z_BUF_ERROR = 1258
282
+ ER_ZLIB_Z_DATA_ERROR = 1259
283
+ ER_CUT_VALUE_GROUP_CONCAT = 1260
284
+ ER_WARN_TOO_FEW_RECORDS = 1261
285
+ ER_WARN_TOO_MANY_RECORDS = 1262
286
+ ER_WARN_NULL_TO_NOTNULL = 1263
287
+ ER_WARN_DATA_OUT_OF_RANGE = 1264
288
+ WARN_DATA_TRUNCATED = 1265
289
+ ER_WARN_USING_OTHER_HANDLER = 1266
290
+ ER_CANT_AGGREGATE_2COLLATIONS = 1267
291
+ ER_DROP_USER = 1268
292
+ ER_REVOKE_GRANTS = 1269
293
+ ER_CANT_AGGREGATE_3COLLATIONS = 1270
294
+ ER_CANT_AGGREGATE_NCOLLATIONS = 1271
295
+ ER_VARIABLE_IS_NOT_STRUCT = 1272
296
+ ER_UNKNOWN_COLLATION = 1273
297
+ ER_SLAVE_IGNORED_SSL_PARAMS = 1274
298
+ ER_SERVER_IS_IN_SECURE_AUTH_MODE = 1275
299
+ ER_WARN_FIELD_RESOLVED = 1276
300
+ ER_BAD_SLAVE_UNTIL_COND = 1277
301
+ ER_MISSING_SKIP_SLAVE = 1278
302
+ ER_UNTIL_COND_IGNORED = 1279
303
+ ER_WRONG_NAME_FOR_INDEX = 1280
304
+ ER_WRONG_NAME_FOR_CATALOG = 1281
305
+ ER_WARN_QC_RESIZE = 1282
306
+ ER_BAD_FT_COLUMN = 1283
307
+ ER_UNKNOWN_KEY_CACHE = 1284
308
+ ER_WARN_HOSTNAME_WONT_WORK = 1285
309
+ ER_UNKNOWN_STORAGE_ENGINE = 1286
310
+ ER_WARN_DEPRECATED_SYNTAX = 1287
311
+ ER_NON_UPDATABLE_TABLE = 1288
312
+ ER_FEATURE_DISABLED = 1289
313
+ ER_OPTION_PREVENTS_STATEMENT = 1290
314
+ ER_DUPLICATED_VALUE_IN_TYPE = 1291
315
+ ER_TRUNCATED_WRONG_VALUE = 1292
316
+ ER_TOO_MUCH_AUTO_TIMESTAMP_COLS = 1293
317
+ ER_INVALID_ON_UPDATE = 1294
318
+ ER_UNSUPPORTED_PS = 1295
319
+ ER_GET_ERRMSG = 1296
320
+ ER_GET_TEMPORARY_ERRMSG = 1297
321
+ ER_UNKNOWN_TIME_ZONE = 1298
322
+ ER_WARN_INVALID_TIMESTAMP = 1299
323
+ ER_INVALID_CHARACTER_STRING = 1300
324
+ ER_WARN_ALLOWED_PACKET_OVERFLOWED = 1301
325
+ ER_CONFLICTING_DECLARATIONS = 1302
326
+ ER_SP_NO_RECURSIVE_CREATE = 1303
327
+ ER_SP_ALREADY_EXISTS = 1304
328
+ ER_SP_DOES_NOT_EXIST = 1305
329
+ ER_SP_DROP_FAILED = 1306
330
+ ER_SP_STORE_FAILED = 1307
331
+ ER_SP_LILABEL_MISMATCH = 1308
332
+ ER_SP_LABEL_REDEFINE = 1309
333
+ ER_SP_LABEL_MISMATCH = 1310
334
+ ER_SP_UNINIT_VAR = 1311
335
+ ER_SP_BADSELECT = 1312
336
+ ER_SP_BADRETURN = 1313
337
+ ER_SP_BADSTATEMENT = 1314
338
+ ER_UPDATE_LOG_DEPRECATED_IGNORED = 1315
339
+ ER_UPDATE_LOG_DEPRECATED_TRANSLATED = 1316
340
+ ER_QUERY_INTERRUPTED = 1317
341
+ ER_SP_WRONG_NO_OF_ARGS = 1318
342
+ ER_SP_COND_MISMATCH = 1319
343
+ ER_SP_NORETURN = 1320
344
+ ER_SP_NORETURNEND = 1321
345
+ ER_SP_BAD_CURSOR_QUERY = 1322
346
+ ER_SP_BAD_CURSOR_SELECT = 1323
347
+ ER_SP_CURSOR_MISMATCH = 1324
348
+ ER_SP_CURSOR_ALREADY_OPEN = 1325
349
+ ER_SP_CURSOR_NOT_OPEN = 1326
350
+ ER_SP_UNDECLARED_VAR = 1327
351
+ ER_SP_WRONG_NO_OF_FETCH_ARGS = 1328
352
+ ER_SP_FETCH_NO_DATA = 1329
353
+ ER_SP_DUP_PARAM = 1330
354
+ ER_SP_DUP_VAR = 1331
355
+ ER_SP_DUP_COND = 1332
356
+ ER_SP_DUP_CURS = 1333
357
+ ER_SP_CANT_ALTER = 1334
358
+ ER_SP_SUBSELECT_NYI = 1335
359
+ ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG = 1336
360
+ ER_SP_VARCOND_AFTER_CURSHNDLR = 1337
361
+ ER_SP_CURSOR_AFTER_HANDLER = 1338
362
+ ER_SP_CASE_NOT_FOUND = 1339
363
+ ER_FPARSER_TOO_BIG_FILE = 1340
364
+ ER_FPARSER_BAD_HEADER = 1341
365
+ ER_FPARSER_EOF_IN_COMMENT = 1342
366
+ ER_FPARSER_ERROR_IN_PARAMETER = 1343
367
+ ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER = 1344
368
+ ER_VIEW_NO_EXPLAIN = 1345
369
+ ER_FRM_UNKNOWN_TYPE = 1346
370
+ ER_WRONG_OBJECT = 1347
371
+ ER_NONUPDATEABLE_COLUMN = 1348
372
+ ER_VIEW_SELECT_DERIVED = 1349
373
+ ER_VIEW_SELECT_CLAUSE = 1350
374
+ ER_VIEW_SELECT_VARIABLE = 1351
375
+ ER_VIEW_SELECT_TMPTABLE = 1352
376
+ ER_VIEW_WRONG_LIST = 1353
377
+ ER_WARN_VIEW_MERGE = 1354
378
+ ER_WARN_VIEW_WITHOUT_KEY = 1355
379
+ ER_VIEW_INVALID = 1356
380
+ ER_SP_NO_DROP_SP = 1357
381
+ ER_SP_GOTO_IN_HNDLR = 1358
382
+ ER_TRG_ALREADY_EXISTS = 1359
383
+ ER_TRG_DOES_NOT_EXIST = 1360
384
+ ER_TRG_ON_VIEW_OR_TEMP_TABLE = 1361
385
+ ER_TRG_CANT_CHANGE_ROW = 1362
386
+ ER_TRG_NO_SUCH_ROW_IN_TRG = 1363
387
+ ER_NO_DEFAULT_FOR_FIELD = 1364
388
+ ER_DIVISION_BY_ZERO = 1365
389
+ ER_TRUNCATED_WRONG_VALUE_FOR_FIELD = 1366
390
+ ER_ILLEGAL_VALUE_FOR_TYPE = 1367
391
+ ER_VIEW_NONUPD_CHECK = 1368
392
+ ER_VIEW_CHECK_FAILED = 1369
393
+ ER_PROCACCESS_DENIED_ERROR = 1370
394
+ ER_RELAY_LOG_FAIL = 1371
395
+ ER_PASSWD_LENGTH = 1372
396
+ ER_UNKNOWN_TARGET_BINLOG = 1373
397
+ ER_IO_ERR_LOG_INDEX_READ = 1374
398
+ ER_BINLOG_PURGE_PROHIBITED = 1375
399
+ ER_FSEEK_FAIL = 1376
400
+ ER_BINLOG_PURGE_FATAL_ERR = 1377
401
+ ER_LOG_IN_USE = 1378
402
+ ER_LOG_PURGE_UNKNOWN_ERR = 1379
403
+ ER_RELAY_LOG_INIT = 1380
404
+ ER_NO_BINARY_LOGGING = 1381
405
+ ER_RESERVED_SYNTAX = 1382
406
+ ER_WSAS_FAILED = 1383
407
+ ER_DIFF_GROUPS_PROC = 1384
408
+ ER_NO_GROUP_FOR_PROC = 1385
409
+ ER_ORDER_WITH_PROC = 1386
410
+ ER_LOGGING_PROHIBIT_CHANGING_OF = 1387
411
+ ER_NO_FILE_MAPPING = 1388
412
+ ER_WRONG_MAGIC = 1389
413
+ ER_PS_MANY_PARAM = 1390
414
+ ER_KEY_PART_0 = 1391
415
+ ER_VIEW_CHECKSUM = 1392
416
+ ER_VIEW_MULTIUPDATE = 1393
417
+ ER_VIEW_NO_INSERT_FIELD_LIST = 1394
418
+ ER_VIEW_DELETE_MERGE_VIEW = 1395
419
+ ER_CANNOT_USER = 1396
420
+ ER_XAER_NOTA = 1397
421
+ ER_XAER_INVAL = 1398
422
+ ER_XAER_RMFAIL = 1399
423
+ ER_XAER_OUTSIDE = 1400
424
+ ER_XAER_RMERR = 1401
425
+ ER_XA_RBROLLBACK = 1402
426
+ ER_NONEXISTING_PROC_GRANT = 1403
427
+ ER_PROC_AUTO_GRANT_FAIL = 1404
428
+ ER_PROC_AUTO_REVOKE_FAIL = 1405
429
+ ER_DATA_TOO_LONG = 1406
430
+ ER_SP_BAD_SQLSTATE = 1407
431
+ ER_STARTUP = 1408
432
+ ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR = 1409
433
+ ER_CANT_CREATE_USER_WITH_GRANT = 1410
434
+ ER_WRONG_VALUE_FOR_TYPE = 1411
435
+ ER_TABLE_DEF_CHANGED = 1412
436
+ ER_SP_DUP_HANDLER = 1413
437
+ ER_SP_NOT_VAR_ARG = 1414
438
+ ER_SP_NO_RETSET = 1415
439
+ ER_CANT_CREATE_GEOMETRY_OBJECT = 1416
440
+ ER_FAILED_ROUTINE_BREAK_BINLOG = 1417
441
+ ER_BINLOG_UNSAFE_ROUTINE = 1418
442
+ ER_BINLOG_CREATE_ROUTINE_NEED_SUPER = 1419
443
+ ER_EXEC_STMT_WITH_OPEN_CURSOR = 1420
444
+ ER_STMT_HAS_NO_OPEN_CURSOR = 1421
445
+ ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG = 1422
446
+ ER_NO_DEFAULT_FOR_VIEW_FIELD = 1423
447
+ ER_SP_NO_RECURSION = 1424
448
+ ER_TOO_BIG_SCALE = 1425
449
+ ER_TOO_BIG_PRECISION = 1426
450
+ ER_M_BIGGER_THAN_D = 1427
451
+ ER_WRONG_LOCK_OF_SYSTEM_TABLE = 1428
452
+ ER_CONNECT_TO_FOREIGN_DATA_SOURCE = 1429
453
+ ER_QUERY_ON_FOREIGN_DATA_SOURCE = 1430
454
+ ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST = 1431
455
+ ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE = 1432
456
+ ER_FOREIGN_DATA_STRING_INVALID = 1433
457
+ ER_CANT_CREATE_FEDERATED_TABLE = 1434
458
+ ER_TRG_IN_WRONG_SCHEMA = 1435
459
+ ER_STACK_OVERRUN_NEED_MORE = 1436
460
+ ER_TOO_LONG_BODY = 1437
461
+ ER_WARN_CANT_DROP_DEFAULT_KEYCACHE = 1438
462
+ ER_TOO_BIG_DISPLAYWIDTH = 1439
463
+ ER_XAER_DUPID = 1440
464
+ ER_DATETIME_FUNCTION_OVERFLOW = 1441
465
+ ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG = 1442
466
+ ER_VIEW_PREVENT_UPDATE = 1443
467
+ ER_PS_NO_RECURSION = 1444
468
+ ER_SP_CANT_SET_AUTOCOMMIT = 1445
469
+ ER_MALFORMED_DEFINER = 1446
470
+ ER_VIEW_FRM_NO_USER = 1447
471
+ ER_VIEW_OTHER_USER = 1448
472
+ ER_NO_SUCH_USER = 1449
473
+ ER_FORBID_SCHEMA_CHANGE = 1450
474
+ ER_ROW_IS_REFERENCED_2 = 1451
475
+ ER_NO_REFERENCED_ROW_2 = 1452
476
+ ER_SP_BAD_VAR_SHADOW = 1453
477
+ ER_TRG_NO_DEFINER = 1454
478
+ ER_OLD_FILE_FORMAT = 1455
479
+ ER_SP_RECURSION_LIMIT = 1456
480
+ ER_SP_PROC_TABLE_CORRUPT = 1457
481
+ ER_SP_WRONG_NAME = 1458
482
+ ER_TABLE_NEEDS_UPGRADE = 1459
483
+ ER_SP_NO_AGGREGATE = 1460
484
+ ER_MAX_PREPARED_STMT_COUNT_REACHED = 1461
485
+ ER_VIEW_RECURSIVE = 1462
486
+ ER_NON_GROUPING_FIELD_USED = 1463
487
+ ER_TABLE_CANT_HANDLE_SPKEYS = 1464
488
+ ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA = 1465
489
+ ER_REMOVED_SPACES = 1466
490
+ ER_AUTOINC_READ_FAILED = 1467
491
+ ER_USERNAME = 1468
492
+ ER_HOSTNAME = 1469
493
+ ER_WRONG_STRING_LENGTH = 1470
494
+ ER_NON_INSERTABLE_TABLE = 1471
495
+ end
496
+
497
+ ServerError.constants.each do |errname|
498
+ errname = errname.to_s
499
+ next unless errname =~ /\AER_/
500
+ errno = ServerError.const_get errname
501
+ excname = errname.sub(/\AER_/,"").gsub(/(\A.|_.)([A-Z]+)/){$1+$2.downcase}.gsub(/_/,"")
502
+ eval <<EOS
503
+ class Mysql::#{excname} < Mysql::ServerError
504
+ ERRNO = #{errno}
505
+ end
506
+ EOS
507
+ ServerError::ERROR_MAP[errno] = eval "Mysql::#{excname}"
508
+ end
509
+
510
+ # client side error
511
+ class ClientError < Error
512
+ end
513
+
514
+ # protocol error
515
+ class ProtocolError < ClientError
516
+ end
517
+
518
+ end