ruby-mysql 2.9.0

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.

@@ -0,0 +1,255 @@
1
+ # Copyright (C) 2008 TOMITA Masahiro
2
+ # mailto:tommy@tmtm.org
3
+
4
+ require "#{File.dirname __FILE__}/error"
5
+
6
+ class Mysql
7
+ class Charset
8
+ def initialize(number, name, csname)
9
+ @number, @name, @csname = number, name, csname
10
+ end
11
+ attr_reader :number, :name, :csname
12
+
13
+ # [[charset_number, charset_name, collation_name, default], ...]
14
+ CHARSETS = [
15
+ [ 1, "big5", "big5_chinese_ci", true ],
16
+ [ 2, "latin2", "latin2_czech_cs", false],
17
+ [ 3, "dec8", "dec8_swedish_ci", true ],
18
+ [ 4, "cp850", "cp850_general_ci", true ],
19
+ [ 5, "latin1", "latin1_german1_ci", false],
20
+ [ 6, "hp8", "hp8_english_ci", true ],
21
+ [ 7, "koi8r", "koi8r_general_ci", true ],
22
+ [ 8, "latin1", "latin1_swedish_ci", true ],
23
+ [ 9, "latin2", "latin2_general_ci", true ],
24
+ [ 10, "swe7", "swe7_swedish_ci", true ],
25
+ [ 11, "ascii", "ascii_general_ci", true ],
26
+ [ 12, "ujis", "ujis_japanese_ci", true ],
27
+ [ 13, "sjis", "sjis_japanese_ci", true ],
28
+ [ 14, "cp1251", "cp1251_bulgarian_ci", false],
29
+ [ 15, "latin1", "latin1_danish_ci", false],
30
+ [ 16, "hebrew", "hebrew_general_ci", true ],
31
+ [ 18, "tis620", "tis620_thai_ci", true ],
32
+ [ 19, "euckr", "euckr_korean_ci", true ],
33
+ [ 20, "latin7", "latin7_estonian_cs", false],
34
+ [ 21, "latin2", "latin2_hungarian_ci", false],
35
+ [ 22, "koi8u", "koi8u_general_ci", true ],
36
+ [ 23, "cp1251", "cp1251_ukrainian_ci", false],
37
+ [ 24, "gb2312", "gb2312_chinese_ci", true ],
38
+ [ 25, "greek", "greek_general_ci", true ],
39
+ [ 26, "cp1250", "cp1250_general_ci", true ],
40
+ [ 27, "latin2", "latin2_croatian_ci", false],
41
+ [ 28, "gbk", "gbk_chinese_ci", true ],
42
+ [ 29, "cp1257", "cp1257_lithuanian_ci", false],
43
+ [ 30, "latin5", "latin5_turkish_ci", true ],
44
+ [ 31, "latin1", "latin1_german2_ci", false],
45
+ [ 32, "armscii8", "armscii8_general_ci", true ],
46
+ [ 33, "utf8", "utf8_general_ci", true ],
47
+ [ 34, "cp1250", "cp1250_czech_cs", false],
48
+ [ 35, "ucs2", "ucs2_general_ci", true ],
49
+ [ 36, "cp866", "cp866_general_ci", true ],
50
+ [ 37, "keybcs2", "keybcs2_general_ci", true ],
51
+ [ 38, "macce", "macce_general_ci", true ],
52
+ [ 39, "macroman", "macroman_general_ci", true ],
53
+ [ 40, "cp852", "cp852_general_ci", true ],
54
+ [ 41, "latin7", "latin7_general_ci", true ],
55
+ [ 42, "latin7", "latin7_general_cs", false],
56
+ [ 43, "macce", "macce_bin", false],
57
+ [ 44, "cp1250", "cp1250_croatian_ci", false],
58
+ [ 47, "latin1", "latin1_bin", false],
59
+ [ 48, "latin1", "latin1_general_ci", false],
60
+ [ 49, "latin1", "latin1_general_cs", false],
61
+ [ 50, "cp1251", "cp1251_bin", false],
62
+ [ 51, "cp1251", "cp1251_general_ci", true ],
63
+ [ 52, "cp1251", "cp1251_general_cs", false],
64
+ [ 53, "macroman", "macroman_bin", false],
65
+ [ 57, "cp1256", "cp1256_general_ci", true ],
66
+ [ 58, "cp1257", "cp1257_bin", false],
67
+ [ 59, "cp1257", "cp1257_general_ci", true ],
68
+ [ 63, "binary", "binary", true ],
69
+ [ 64, "armscii8", "armscii8_bin", false],
70
+ [ 65, "ascii", "ascii_bin", false],
71
+ [ 66, "cp1250", "cp1250_bin", false],
72
+ [ 67, "cp1256", "cp1256_bin", false],
73
+ [ 68, "cp866", "cp866_bin", false],
74
+ [ 69, "dec8", "dec8_bin", false],
75
+ [ 70, "greek", "greek_bin", false],
76
+ [ 71, "hebrew", "hebrew_bin", false],
77
+ [ 72, "hp8", "hp8_bin", false],
78
+ [ 73, "keybcs2", "keybcs2_bin", false],
79
+ [ 74, "koi8r", "koi8r_bin", false],
80
+ [ 75, "koi8u", "koi8u_bin", false],
81
+ [ 77, "latin2", "latin2_bin", false],
82
+ [ 78, "latin5", "latin5_bin", false],
83
+ [ 79, "latin7", "latin7_bin", false],
84
+ [ 80, "cp850", "cp850_bin", false],
85
+ [ 81, "cp852", "cp852_bin", false],
86
+ [ 82, "swe7", "swe7_bin", false],
87
+ [ 83, "utf8", "utf8_bin", false],
88
+ [ 84, "big5", "big5_bin", false],
89
+ [ 85, "euckr", "euckr_bin", false],
90
+ [ 86, "gb2312", "gb2312_bin", false],
91
+ [ 87, "gbk", "gbk_bin", false],
92
+ [ 88, "sjis", "sjis_bin", false],
93
+ [ 89, "tis620", "tis620_bin", false],
94
+ [ 90, "ucs2", "ucs2_bin", false],
95
+ [ 91, "ujis", "ujis_bin", false],
96
+ [ 92, "geostd8", "geostd8_general_ci", true ],
97
+ [ 93, "geostd8", "geostd8_bin", false],
98
+ [ 94, "latin1", "latin1_spanish_ci", false],
99
+ [ 95, "cp932", "cp932_japanese_ci" , true ],
100
+ [ 96, "cp932", "cp932_bin" , false],
101
+ [ 97, "eucjpms", "eucjpms_japanese_ci", true ],
102
+ [ 98, "eucjpms", "eucjpms_bin", false],
103
+ [128, "ucs2", "ucs2_unicode_ci", false],
104
+ [129, "ucs2", "ucs2_icelandic_ci", false],
105
+ [130, "ucs2", "ucs2_latvian_ci", false],
106
+ [131, "ucs2", "ucs2_romanian_ci", false],
107
+ [132, "ucs2", "ucs2_slovenian_ci", false],
108
+ [133, "ucs2", "ucs2_polish_ci", false],
109
+ [134, "ucs2", "ucs2_estonian_ci", false],
110
+ [135, "ucs2", "ucs2_spanish_ci", false],
111
+ [136, "ucs2", "ucs2_swedish_ci", false],
112
+ [137, "ucs2", "ucs2_turkish_ci", false],
113
+ [138, "ucs2", "ucs2_czech_ci", false],
114
+ [139, "ucs2", "ucs2_danish_ci", false],
115
+ [140, "ucs2", "ucs2_lithuanian_ci", false],
116
+ [141, "ucs2", "ucs2_slovak_ci", false],
117
+ [142, "ucs2", "ucs2_spanish2_ci", false],
118
+ [143, "ucs2", "ucs2_roman_ci", false],
119
+ [144, "ucs2", "ucs2_persian_ci", false],
120
+ [145, "ucs2", "ucs2_esperanto_ci", false],
121
+ [146, "ucs2", "ucs2_hungarian_ci", false],
122
+ [192, "utf8", "utf8_unicode_ci", false],
123
+ [193, "utf8", "utf8_icelandic_ci", false],
124
+ [194, "utf8", "utf8_latvian_ci", false],
125
+ [195, "utf8", "utf8_romanian_ci", false],
126
+ [196, "utf8", "utf8_slovenian_ci", false],
127
+ [197, "utf8", "utf8_polish_ci", false],
128
+ [198, "utf8", "utf8_estonian_ci", false],
129
+ [199, "utf8", "utf8_spanish_ci", false],
130
+ [200, "utf8", "utf8_swedish_ci", false],
131
+ [201, "utf8", "utf8_turkish_ci", false],
132
+ [202, "utf8", "utf8_czech_ci", false],
133
+ [203, "utf8", "utf8_danish_ci", false],
134
+ [204, "utf8", "utf8_lithuanian_ci", false],
135
+ [205, "utf8", "utf8_slovak_ci", false],
136
+ [206, "utf8", "utf8_spanish2_ci", false],
137
+ [207, "utf8", "utf8_roman_ci", false],
138
+ [208, "utf8", "utf8_persian_ci", false],
139
+ [209, "utf8", "utf8_esperanto_ci", false],
140
+ [210, "utf8", "utf8_hungarian_ci", false],
141
+ ]
142
+
143
+ NUMBER_TO_CHARSET = {}
144
+ COLLATION_TO_CHARSET = {}
145
+ CHARSET_DEFAULT = {}
146
+ CHARSETS.each do |number, csname, clname, default|
147
+ cs = Charset.new number, csname, clname
148
+ NUMBER_TO_CHARSET[number] = cs
149
+ COLLATION_TO_CHARSET[clname] = cs
150
+ CHARSET_DEFAULT[csname] = cs if default
151
+ end
152
+
153
+ def self.by_number(n)
154
+ raise ClientError, "unknown charset number: #{n}" unless NUMBER_TO_CHARSET.key? n
155
+ NUMBER_TO_CHARSET[n]
156
+ end
157
+
158
+ def self.by_name(str)
159
+ ret = COLLATION_TO_CHARSET[str] || CHARSET_DEFAULT[str]
160
+ raise ClientError, "unknown charset: #{str}" unless ret
161
+ ret
162
+ end
163
+
164
+ if defined? Encoding
165
+
166
+ # MySQL Charset -> Ruby's Encodeing
167
+ CHARSET_ENCODING = {
168
+ "armscii8" => nil,
169
+ "ascii" => Encoding::US_ASCII,
170
+ "big5" => Encoding::Big5,
171
+ "binary" => Encoding::ASCII_8BIT,
172
+ "cp1250" => Encoding::Windows_1250,
173
+ "cp1251" => Encoding::Windows_1251,
174
+ "cp1256" => Encoding::Windows_1256,
175
+ "cp1257" => Encoding::Windows_1257,
176
+ "cp850" => Encoding::CP850,
177
+ "cp852" => Encoding::CP852,
178
+ "cp866" => Encoding::IBM866,
179
+ "cp932" => Encoding::Windows_31J,
180
+ "dec8" => nil,
181
+ "eucjpms" => Encoding::EucJP_ms,
182
+ "euckr" => Encoding::EUC_KR,
183
+ "gb2312" => Encoding::EUC_CN,
184
+ "gbk" => Encoding::GBK,
185
+ "geostd8" => nil,
186
+ "greek" => Encoding::ISO_8859_7,
187
+ "hebrew" => Encoding::ISO_8859_8,
188
+ "hp8" => nil,
189
+ "keybcs2" => nil,
190
+ "koi8r" => Encoding::KOI8_R,
191
+ "koi8u" => Encoding::KOI8_U,
192
+ "latin1" => Encoding::ISO_8859_1,
193
+ "latin2" => Encoding::ISO_8859_2,
194
+ "latin5" => Encoding::ISO_8859_9,
195
+ "latin7" => Encoding::ISO_8859_13,
196
+ "macce" => Encoding::MacCentEuro,
197
+ "macroman" => Encoding::MacRoman,
198
+ "sjis" => Encoding::SHIFT_JIS,
199
+ "swe7" => nil,
200
+ "tis620" => nil,
201
+ "ucs2" => Encoding::UTF_16BE,
202
+ "ujis" => Encoding::EucJP_ms,
203
+ "utf8" => Encoding::UTF_8,
204
+ }
205
+
206
+ def self.to_binary(value)
207
+ value.dup.force_encoding Encoding::ASCII_8BIT
208
+ end
209
+
210
+ # retrun corresponding Ruby encoding
211
+ # === Return
212
+ # encoding [Encoding]
213
+ def encoding
214
+ enc = CHARSET_ENCODING[@name.downcase]
215
+ raise Mysql::ClientError, "unsupported charset: #{@name}" unless enc
216
+ enc
217
+ end
218
+
219
+ # convert encoding to corrensponding to MySQL charset
220
+ def convert(value)
221
+ if value.is_a? String and value.encoding != Encoding::ASCII_8BIT
222
+ value = value.encode encoding
223
+ end
224
+ value
225
+ end
226
+
227
+ # convert encoding from MySQL charset to Ruby
228
+ def force_encoding(value)
229
+ if value.is_a? String
230
+ value = value.dup.force_encoding encoding
231
+ end
232
+ value
233
+ end
234
+
235
+ else
236
+ # for Ruby 1.8
237
+
238
+ def self.to_binary(value)
239
+ value
240
+ end
241
+
242
+ def encoding
243
+ nil
244
+ end
245
+
246
+ def convert(value)
247
+ value
248
+ end
249
+
250
+ def force_encoding(value)
251
+ value
252
+ end
253
+ end
254
+ end
255
+ end
@@ -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 Stmt
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