Skip to content

Commit 1d76b68

Browse files
committed
Add new error codes up to MySQL 5.7.16
1 parent ff36b66 commit 1d76b68

File tree

3 files changed

+62
-1
lines changed

3 files changed

+62
-1
lines changed

Changes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ you spot any mistakes.
99
* Accept array of type names to `dateStrings` option #605 #1481
1010
* Add `query` method to `PoolNamespace` #1256 #1505 #1506
1111
- Used as `cluster.of(...).query(...)`
12+
* Add new error codes up to MySQL 5.7.16
1213
* Fix typo in `HANDSHAKE_NO_SSL_SUPPORT` error message #1534
1314
* Support Node.js 7.x
1415
* Update `bignumber.js` to 2.4.0

lib/protocol/constants/errors.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
/**
22
* MySQL error constants
33
*
4+
* Extracted from version 5.7.16
5+
*
46
* !! Generated by generate-error-constants.js, do not modify by hand !!
57
*/
68

@@ -1177,6 +1179,26 @@ exports.ER_CAPACITY_EXCEEDED
11771179
exports.ER_CAPACITY_EXCEEDED_IN_RANGE_OPTIMIZER = 2057;
11781180
exports.ER_TABLE_NEEDS_UPG_PART = 2058;
11791181
exports.ER_CANT_WAIT_FOR_EXECUTED_GTID_SET_WHILE_OWNING_A_GTID = 2059;
1182+
exports.ER_CANNOT_ADD_FOREIGN_BASE_COL_VIRTUAL = 2060;
1183+
exports.ER_CANNOT_CREATE_VIRTUAL_INDEX_CONSTRAINT = 2061;
1184+
exports.ER_ERROR_ON_MODIFYING_GTID_EXECUTED_TABLE = 2062;
1185+
exports.ER_LOCK_REFUSED_BY_ENGINE = 2063;
1186+
exports.ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN = 2064;
1187+
exports.ER_MASTER_KEY_ROTATION_NOT_SUPPORTED_BY_SE = 2065;
1188+
exports.ER_MASTER_KEY_ROTATION_ERROR_BY_SE = 2066;
1189+
exports.ER_MASTER_KEY_ROTATION_BINLOG_FAILED = 2067;
1190+
exports.ER_MASTER_KEY_ROTATION_SE_UNAVAILABLE = 2068;
1191+
exports.ER_TABLESPACE_CANNOT_ENCRYPT = 2069;
1192+
exports.ER_INVALID_ENCRYPTION_OPTION = 2070;
1193+
exports.ER_CANNOT_FIND_KEY_IN_KEYRING = 2071;
1194+
exports.ER_CAPACITY_EXCEEDED_IN_PARSER = 2072;
1195+
exports.ER_UNSUPPORTED_ALTER_ENCRYPTION_INPLACE = 2073;
1196+
exports.ER_KEYRING_UDF_KEYRING_SERVICE_ERROR = 2074;
1197+
exports.ER_USER_COLUMN_OLD_LENGTH = 2075;
1198+
exports.ER_CANT_RESET_MASTER = 2076;
1199+
exports.ER_GROUP_REPLICATION_MAX_GROUP_SIZE = 2077;
1200+
exports.ER_CANNOT_ADD_FOREIGN_BASE_COL_STORED = 2078;
1201+
exports.ER_TABLE_REFERENCED = 2079;
11801202

11811203
// Lookup-by-number table
11821204
exports[1] = 'EE_CANTCREATEFILE';
@@ -2352,3 +2374,23 @@ exports[2056] = 'ER_CAPACITY_EXCEEDED';
23522374
exports[2057] = 'ER_CAPACITY_EXCEEDED_IN_RANGE_OPTIMIZER';
23532375
exports[2058] = 'ER_TABLE_NEEDS_UPG_PART';
23542376
exports[2059] = 'ER_CANT_WAIT_FOR_EXECUTED_GTID_SET_WHILE_OWNING_A_GTID';
2377+
exports[2060] = 'ER_CANNOT_ADD_FOREIGN_BASE_COL_VIRTUAL';
2378+
exports[2061] = 'ER_CANNOT_CREATE_VIRTUAL_INDEX_CONSTRAINT';
2379+
exports[2062] = 'ER_ERROR_ON_MODIFYING_GTID_EXECUTED_TABLE';
2380+
exports[2063] = 'ER_LOCK_REFUSED_BY_ENGINE';
2381+
exports[2064] = 'ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN';
2382+
exports[2065] = 'ER_MASTER_KEY_ROTATION_NOT_SUPPORTED_BY_SE';
2383+
exports[2066] = 'ER_MASTER_KEY_ROTATION_ERROR_BY_SE';
2384+
exports[2067] = 'ER_MASTER_KEY_ROTATION_BINLOG_FAILED';
2385+
exports[2068] = 'ER_MASTER_KEY_ROTATION_SE_UNAVAILABLE';
2386+
exports[2069] = 'ER_TABLESPACE_CANNOT_ENCRYPT';
2387+
exports[2070] = 'ER_INVALID_ENCRYPTION_OPTION';
2388+
exports[2071] = 'ER_CANNOT_FIND_KEY_IN_KEYRING';
2389+
exports[2072] = 'ER_CAPACITY_EXCEEDED_IN_PARSER';
2390+
exports[2073] = 'ER_UNSUPPORTED_ALTER_ENCRYPTION_INPLACE';
2391+
exports[2074] = 'ER_KEYRING_UDF_KEYRING_SERVICE_ERROR';
2392+
exports[2075] = 'ER_USER_COLUMN_OLD_LENGTH';
2393+
exports[2076] = 'ER_CANT_RESET_MASTER';
2394+
exports[2077] = 'ER_GROUP_REPLICATION_MAX_GROUP_SIZE';
2395+
exports[2078] = 'ER_CANNOT_ADD_FOREIGN_BASE_COL_STORED';
2396+
exports[2079] = 'ER_TABLE_REFERENCED';

tool/generate-error-constants.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,14 @@ var codes = [];
2121
var targetFile = path.join(__dirname, '..', 'lib', 'protocol', 'constants', 'errors.js');
2222
var previous = fs.existsSync(targetFile) ? require(targetFile) : {};
2323
var stream = fs.createWriteStream(targetFile);
24+
var version = extractMySqlVersion(srcDir);
2425

2526
appendGlobalErrorCodes(srcDir, codes);
2627
appendDatabseErrorCodes(srcDir, codes);
2728
appendSqlErrorCodes(srcDir, codes);
2829
keepUnusedCodes(previous, codes);
2930

30-
stream.write('/**\n * MySQL error constants\n *\n * !! Generated by ' + script + ', do not modify by hand !!\n */\n\n');
31+
stream.write('/**\n * MySQL error constants\n *\n * Extracted from version ' + version + '\n *\n * !! Generated by ' + script + ', do not modify by hand !!\n */\n\n');
3132

3233
var alignment = codes.reduce(maxLength, 0);
3334
for (var i = 0; i < codes.length; i++) {
@@ -118,6 +119,23 @@ function appendSqlErrorCodes(srcDir, codes) {
118119
return codes;
119120
}
120121

122+
function extractMySqlVersion(srcDir) {
123+
var versionFile = path.join(srcDir, 'VERSION');
124+
var contents = fs.readFileSync(versionFile, 'utf-8');
125+
var dictionary = Object.create(null);
126+
127+
contents.split('\n').forEach(function (line) {
128+
var pair = line.split('=');
129+
var key = pair[0];
130+
var val = pair.slice(1).join('=').trimRight();
131+
dictionary[key] = val;
132+
});
133+
134+
return dictionary.MYSQL_VERSION_MAJOR + '.' +
135+
dictionary.MYSQL_VERSION_MINOR + '.' +
136+
dictionary.MYSQL_VERSION_PATCH;
137+
}
138+
121139
function fixupCode(code) {
122140
return code
123141
// remove obsolete markers

0 commit comments

Comments
 (0)