UNPKG

@mysql/xdevapi

Version:

MySQL Connector/Node.js - A Node.js driver for MySQL using the X Protocol and X DevAPI.

205 lines (194 loc) 11.9 kB
/* * Copyright (c) 2020, 2022, Oracle and/or its affiliates. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2.0, as * published by the Free Software Foundation. * * This program is also distributed with certain software (including * but not limited to OpenSSL) that is licensed under separate terms, * as designated in a particular file or component or in included license * documentation. The authors of MySQL hereby grant you an * additional permission to link the program and your derivative works * with the separately licensed software that they have included with * MySQL. * * Without limiting anything contained in the foregoing, this file, * which is part of MySQL Connector/Node.js, is also subject to the * Universal FOSS Exception, version 1.0, a copy of which can be found at * http://oss.oracle.com/licenses/universal-foss-exception. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License, version 2.0, for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ /** * Custom application-level error messages. * @private */ exports.MESSAGES = { ER_CLIENT_NO_X_PROTOCOL: 'The connection does not support the X Protocol. Make sure you are connected to the correct port on a MySQL 5.7.12 (or higher) server.', ER_DEVAPI_AUTH_MORE_INFO: 'Authentication failed using "MYSQL41" and "SHA256_MEMORY", check username and password or try a secure connection.', ER_DEVAPI_AUTH_NONCE_MISMATCH: 'Invalid nonce length - expected %d bytes, got %d.', ER_DEVAPI_AUTH_UNSUPPORTED_SERVER: '%s authentication is not supported by the server.', ER_DEVAPI_AUTH_UNEXPECTED_STEP: 'Unexpected step for %s authentication.', ER_DEVAPI_BAD_AUTH_SCRAMBLE_BUFFER_SIZE: 'The buffers must have the same size.', ER_DEVAPI_BAD_CONNECTION_DEFINITION: 'The connection options must be defined using a plain JavaScript object, JSON or a connection string.', ER_DEVAPI_BAD_CLIENT_OPTION: "Client option '%s' is not recognized as valid.", ER_DEVAPI_BAD_CLIENT_OPTION_VALUE: "Client option '%s' does not support value '%s'.", ER_DEVAPI_BAD_CONNECTION_ENDPOINT_PRIORITY_RANGE: 'The priorities must be between 0 and 100.', ER_DEVAPI_BAD_CONNECTION_PORT_RANGE: 'The port number must be between 0 and 65536.', ER_DEVAPI_BAD_CONNECTION_STRING_FORMAT: 'Invalid connection string format.', ER_DEVAPI_BAD_CONNECTION_STRING_HOST: 'The connection string does not contain a valid host.', ER_DEVAPI_BAD_CONNECTION_STRING_SCHEME: 'Scheme %s is not valid.', ER_DEVAPI_BAD_CONNECTION_STRING_SCHEMA_NAME: 'The connection string contains an invalid schema name.', ER_DEVAPI_BAD_CONNECTION_STRING_USER_INFO: 'The connection string does not contain a valid username and/or password.', ER_DEVAPI_BAD_CONNECTION_TIMEOUT: 'The connection timeout value must be a positive integer (including 0).', ER_DEVAPI_BAD_FLEXIBLE_PARAMETER_EXPRESSION: 'Invalid flexible parameter input expression.', ER_DEVAPI_BAD_INDEX_DEFINITION: 'Invalid index definition.', ER_DEVAPI_BAD_INDEX_NAME: 'Invalid index name.', ER_DEVAPI_BAD_LIMIT_INPUT: 'The count value must be a non-negative integer.', ER_DEVAPI_BAD_LOCK_CONTENTION_MODE: 'Invalid lock contention mode. Use "NOWAIT" or "SKIP_LOCKED".', ER_DEVAPI_BAD_OFFSET_INPUT: 'The offset value must be a non-negative integer.', ER_DEVAPI_BAD_SAVEPOINT_NAME: 'Invalid Savepoint name.', ER_DEVAPI_BAD_SESSION_ATTRIBUTE_NAME: 'Connection attribute names cannot start with "_".', ER_DEVAPI_BAD_SESSION_ATTRIBUTES_DEFINITION: 'Invalid connection attributes definition.', ER_DEVAPI_BAD_SRV_LOOKUP_OPTION: 'SRV resolution can only be toggled using a boolean value (true or false).', ER_DEVAPI_BAD_TABLE_INSERT_ARGUMENT: 'Table fields must be provided as multiple Strings, an Array or an Object with the column name and value', ER_DEVAPI_BAD_TLS_CA_PATH: 'The certificate authority (CA) file path is not valid.', ER_DEVAPI_BAD_TLS_CRL_PATH: 'The certificate revocation list (CRL) file path is not valid.', ER_DEVAPI_BAD_TLS_CIPHERSUITE_LIST: '%s is not a valid TLS ciphersuite list format.', ER_DEVAPI_BAD_TLS_VERSION: '"%s" is not a valid TLS protocol version. Should be one of %s.', ER_DEVAPI_BAD_TLS_VERSION_LIST: '"%s" is not a valid TLS protocol list format.', ER_DEVAPI_CERTIFICATE_AUTHORITY_REQUIRED: '%s requires a certificate authority.', ER_DEVAPI_COLLECTION_OPTIONS_NOT_SUPPORTED: 'Your MySQL server does not support the requested operation. Please update to MySQL 8.0.19 or a later version.', ER_DEVAPI_CONNECTION_CLOSED: 'This session was closed. Use "mysqlx.getSession()" or "mysqlx.getClient()" to create a new one.', ER_DEVAPI_CONNECTION_TIMEOUT: 'Connection attempt to the server was aborted. Timeout of %d ms was exceeded.', ER_DEVAPI_DOCUMENT_ID_MISMATCH: 'Replacement document has an _id that is different than the matched document.', ER_DEVAPI_DUPLICATE_CONNECTION_OPTION: 'The connection string cannot contain duplicate query parameters.', ER_DEVAPI_DUPLICATE_SESSION_ATTRIBUTE: 'The connection string cannot contain duplicate session attributes.', ER_DEVAPI_INCOMPLETE_PROTOCOL_MESSAGE: 'The server message is incomplete.', ER_DEVAPI_INSECURE_TLS_VERSIONS: '"%s" is no longer considered a safe TLS version and is not supported anymore. Use one of %s.', ER_DEVAPI_MISSING_DOCUMENT_CRITERIA: 'An explicit criteria needs to be provided with %s.', ER_DEVAPI_MISSING_TABLE_CRITERIA: 'An explicit criteria needs to be provided using where().', ER_DEVAPI_MIXED_CONNECTION_ENDPOINT_PRIORITY: 'You must either assign no priority to any of the routers or give a priority for every router.', ER_DEVAPI_MULTI_HOST_CONNECTION_TIMEOUT: 'All server connection attempts were aborted. Timeout of %d ms was exceeded for each selected server.', ER_DEVAPI_MULTI_HOST_CONNECTION_FAILED: 'Unable to connect to any of the target hosts.', ER_DEVAPI_NO_SERVER_TLS: 'The X Plugin version installed in the server does not support TLS. Check https://dev.mysql.com/doc/refman/8.0/en/x-plugin-ssl-connections.html for more details on how to enable secure connections.', ER_DEVAPI_NO_SUPPORTED_TLS_VERSION: 'No supported TLS protocol version found in the provided list.', ER_DEVAPI_NO_SUPPORTED_TLS_CIPHERSUITE: 'No valid ciphersuite found in the provided list.', ER_DEVAPI_NO_UNIQUE_INDEX: 'Unique indexes are currently not supported.', ER_DEVAPI_POOL_CLOSED: 'Cannot close the pool. Maybe it has been destroyed already.', ER_DEVAPI_POOL_QUEUE_TIMEOUT: 'Could not retrieve a connection from the pool. Timeout of %d ms was exceeded.', ER_DEVAPI_SERVER_GONE_AWAY: 'The server has gone away.', ER_DEVAPI_SRV_LOOKUP_NO_PORT: 'Specifying a port number with DNS SRV lookup is not allowed.', ER_DEVAPI_SRV_LOOKUP_NO_UNIX_SOCKET: 'Using Unix domain sockets with DNS SRV lookup is not allowed.', ER_DEVAPI_SRV_LOOKUP_NO_MULTIPLE_ENDPOINTS: 'Specifying multiple hostnames with DNS SRV lookup is not allowed.', ER_DEVAPI_SRV_RECORDS_NOT_AVAILABLE: 'Unable to locate any hosts for %s.', ER_DEVAPI_TLS_VERSION_NEGOTIATION_FAILED: 'Client network socket disconnected before secure TLS connection was established', ER_IO_READ_ERROR: 'This session was closed because the connection has been idle too long. Use "mysqlx.getSession()" or "mysqlx.getClient()" to create a new one.', ER_SERVER_SHUTDOWN: 'This session was closed due to a server shutdown.', ER_SESSION_WAS_KILLED: 'This session was closed because the connection has been killed. Use "mysqlx.getSession()" or "mysqlx.getClient()" to create a new one.', ER_X_CLIENT_BAD_PROTOBUF_MESSAGE: 'Invalid %s protobuf message value.', ER_X_CLIENT_EMPTY_WORK_QUEUE: 'The internal work queue is empty.', ER_X_CLIENT_NO_COLUMN_METADATA: 'There is no metadata available for the given column.', ER_X_CLIENT_UNEXPECTED_PROTOCOL_MESSAGE: 'Unexpected protocol message %d.', ER_X_CLIENT_UNKNOWN_PROTOCOL_HEADER: 'The server message contains an invalid header.' }; /** * MySQL Server errors. * https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html * @private */ exports.ER_DB_CREATE_EXISTS = 1007; exports.ER_DB_DROP_EXISTS = 1008; exports.ER_DBACCESS_DENIED_ERROR = 1044; exports.ER_ACCESS_DENIED_ERROR = 1045; exports.ER_UNKNOWN_COM_ERROR = 1047; exports.ER_BAD_DB_ERROR = 1049; exports.ER_TABLE_EXISTS_ERROR = 1050; exports.ER_BAD_TABLE_ERROR = 1051; exports.ER_SERVER_SHUTDOWN = 1053; exports.ER_DUP_KEYNAME = 1061; exports.ER_CANT_DROP_FIELD_OR_KEY = 1091; exports.ER_WRONG_DB_NAME = 1102; exports.ER_NO_SUCH_TABLE = 1146; exports.ER_LOCK_DEADLOCK = 1213; exports.ER_NOT_SUPPORTED_AUTH_MODE = 1251; exports.ER_SP_DOES_NOT_EXIST = 1305; exports.ER_MAX_PREPARED_STMT_COUNT_REACHED = 1461; exports.ER_IO_READ_ERROR = 1810; exports.ER_SESSION_WAS_KILLED = 3169; exports.ER_LOCK_NOWAIT = 3572; /** * X DevAPI errors. * @private */ exports.ER_DEVAPI_MULTI_HOST_CONNECTION_FAILED = 4001; /** * X Plugin errors. * https://github.com/mysql/mysql-server/blob/8.0/plugin/x/src/xpl_error.h * @private */ exports.ER_X_CAPABILITIES_PREPARE_FAILED = 5001; exports.ER_X_CAPABILITY_NOT_FOUND = 5002; exports.ER_X_INVALID_DATA = 5003; exports.ER_X_BAD_INSERT_DATA = 5014; exports.ER_X_CMD_NUM_ARGUMENTS = 5015; exports.ER_X_CMD_ARGUMENT_TYPE = 5016; exports.ER_X_CMD_ARGUMENT_VALUE = 5017; exports.ER_X_CMD_ARGUMENT_OBJECT_EMPTY = 5020; exports.ER_X_CMD_INVALID_ARGUMENT = 5021; exports.ER_X_DUPLICATE_ENTRY = 5116; exports.ER_X_EXPR_MISSING_ARG = 5152; exports.ER_X_EXPR_BAD_VALUE = 5154; exports.ER_X_INVALID_ADMIN_COMMAND = 5157; exports.ER_X_EXPECT_FIELD_EXISTS_FAILED = 5168; exports.ER_X_DOCUMENT_DOESNT_MATCH_EXPECTED_SCHEMA = 5180; exports.ER_X_INVALID_VALIDATION_SCHEMA = 5182; /** * Global error mapping. * @private */ exports[1007] = 'ER_DB_CREATE_EXISTS'; exports[1008] = 'ER_DB_DROP_EXISTS'; exports[1044] = 'ER_DBACCESS_DENIED_ERROR'; exports[1045] = 'ER_ACCESS_DENIED_ERROR'; exports[1047] = 'ER_UNKNOWN_COM_ERROR'; exports[1049] = 'ER_BAD_DB_ERROR'; exports[1050] = 'ER_TABLE_EXISTS_ERROR'; exports[1051] = 'ER_BAD_TABLE_ERROR'; exports[1053] = 'ER_SERVER_SHUTDOWN'; exports[1061] = 'ER_DUP_KEYNAME'; exports[1091] = 'ER_CANT_DROP_FIELD_OR_KEY'; exports[1102] = 'ER_WRONG_DB_NAME'; exports[1146] = 'ER_NO_SUCH_TABLE'; exports[1213] = 'ER_LOCK_DEADLOCK'; exports[1251] = 'ER_NOT_SUPPORTED_AUTH_MODE'; exports[1305] = 'ER_SP_DOES_NOT_EXIST'; exports[1461] = 'ER_MAX_PREPARED_STMT_COUNT_REACHED'; exports[1810] = 'ER_IO_READ_ERROR'; exports[3169] = 'ER_SESSION_WAS_KILLED'; exports[3572] = 'ER_LOCK_NOWAIT'; exports[4001] = 'ER_DEVAPI_MULTI_HOST_CONNECTION_FAILED'; exports[5001] = 'ER_X_CAPABILITIES_PREPARE_FAILED'; exports[5002] = 'ER_X_CAPABILITY_NOT_FOUND'; exports[5003] = 'ER_X_INVALID_DATA'; exports[5014] = 'ER_X_BAD_INSERT_DATA'; exports[5015] = 'ER_X_CMD_NUM_ARGUMENTS'; exports[5016] = 'ER_X_CMD_ARGUMENT_TYPE'; exports[5017] = 'ER_X_CMD_ARGUMENT_VALUE'; exports[5020] = 'ER_X_CMD_ARGUMENT_OBJECT_EMPTY'; exports[5021] = 'ER_X_CMD_INVALID_ARGUMENT'; exports[5116] = 'ER_X_DUPLICATE_ENTRY'; exports[5152] = 'ER_X_EXPR_MISSING_ARG'; exports[5154] = 'ER_X_EXPR_BAD_VALUE'; exports[5157] = 'ER_X_INVALID_ADMIN_COMMAND'; exports[5168] = 'ER_X_EXPECT_FIELD_EXISTS_FAILED'; exports[5180] = 'ER_X_DOCUMENT_DOESNT_MATCH_EXPECTED_SCHEMA'; exports[5182] = 'ER_X_INVALID_VALIDATION_SCHEMA';