1#ifndef ERRMSG_INCLUDED
2#define ERRMSG_INCLUDED
3
4/* Copyright (c) 2000, 2023, Oracle and/or its affiliates.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License, version 2.0,
8 as published by the Free Software Foundation.
9
10 This program is also distributed with certain software (including
11 but not limited to OpenSSL) that is licensed under separate terms,
12 as designated in a particular file or component or in included license
13 documentation. The authors of MySQL hereby grant you an additional
14 permission to link the program and your derivative works with the
15 separately licensed software that they have included with MySQL.
16
17 Without limiting anything contained in the foregoing, this file,
18 which is part of C Driver for MySQL (Connector/C), is also subject to the
19 Universal FOSS Exception, version 1.0, a copy of which can be found at
20 http://oss.oracle.com/licenses/universal-foss-exception.
21
22 This program is distributed in the hope that it will be useful,
23 but WITHOUT ANY WARRANTY; without even the implied warranty of
24 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 GNU General Public License, version 2.0, for more details.
26
27 You should have received a copy of the GNU General Public License
28 along with this program; if not, write to the Free Software
29 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
30
31/**
32 @file include/errmsg.h
33
34 Error messages for MySQL clients.
35 These are constant and use the CR_ prefix.
36 <mysqlclient_ername.h> will contain auto-generated mappings
37 containing the symbolic name and the number from this file,
38 and the english error messages in libmysql/errmsg.c.
39
40 Dynamic error messages for the daemon are in share/language/errmsg.sys.
41 The server equivalent to <errmsg.h> is <mysqld_error.h>.
42 The server equivalent to <mysqlclient_ername.h> is <mysqld_ername.h>.
43
44 Note that the auth subsystem also uses codes with a CR_ prefix.
45*/
46
47void init_client_errs(void);
48void finish_client_errs(void);
49extern const char *client_errors[]; /* Error messages */
50
51#define CR_MIN_ERROR 2000 /* For easier client code */
52#define CR_MAX_ERROR 2999
53#define CLIENT_ERRMAP 2 /* Errormap used by my_error() */
54
55/* Do not add error numbers before CR_ERROR_FIRST. */
56/* If necessary to add lower numbers, change CR_ERROR_FIRST accordingly. */
57#define CR_ERROR_FIRST 2000 /*Copy first error nr.*/
58#define CR_UNKNOWN_ERROR 2000
59#define CR_SOCKET_CREATE_ERROR 2001
60#define CR_CONNECTION_ERROR 2002
61#define CR_CONN_HOST_ERROR 2003
62#define CR_IPSOCK_ERROR 2004
63#define CR_UNKNOWN_HOST 2005
64#define CR_SERVER_GONE_ERROR 2006
65#define CR_VERSION_ERROR 2007
66#define CR_OUT_OF_MEMORY 2008
67#define CR_WRONG_HOST_INFO 2009
68#define CR_LOCALHOST_CONNECTION 2010
69#define CR_TCP_CONNECTION 2011
70#define CR_SERVER_HANDSHAKE_ERR 2012
71#define CR_SERVER_LOST 2013
72#define CR_COMMANDS_OUT_OF_SYNC 2014
73#define CR_NAMEDPIPE_CONNECTION 2015
74#define CR_NAMEDPIPEWAIT_ERROR 2016
75#define CR_NAMEDPIPEOPEN_ERROR 2017
76#define CR_NAMEDPIPESETSTATE_ERROR 2018
77#define CR_CANT_READ_CHARSET 2019
78#define CR_NET_PACKET_TOO_LARGE 2020
79#define CR_EMBEDDED_CONNECTION 2021
80#define CR_PROBE_REPLICA_STATUS 2022
81#define CR_PROBE_REPLICA_HOSTS 2023
82#define CR_PROBE_REPLICA_CONNECT 2024
83#define CR_PROBE_SOURCE_CONNECT 2025
84#define CR_SSL_CONNECTION_ERROR 2026
85#define CR_MALFORMED_PACKET 2027
86#define CR_WRONG_LICENSE 2028
87
88/* new 4.1 error codes */
89#define CR_NULL_POINTER 2029
90#define CR_NO_PREPARE_STMT 2030
91#define CR_PARAMS_NOT_BOUND 2031
92#define CR_DATA_TRUNCATED 2032
93#define CR_NO_PARAMETERS_EXISTS 2033
94#define CR_INVALID_PARAMETER_NO 2034
95#define CR_INVALID_BUFFER_USE 2035
96#define CR_UNSUPPORTED_PARAM_TYPE 2036
97
98#define CR_SHARED_MEMORY_CONNECTION 2037
99#define CR_SHARED_MEMORY_CONNECT_REQUEST_ERROR 2038
100#define CR_SHARED_MEMORY_CONNECT_ANSWER_ERROR 2039
101#define CR_SHARED_MEMORY_CONNECT_FILE_MAP_ERROR 2040
102#define CR_SHARED_MEMORY_CONNECT_MAP_ERROR 2041
103#define CR_SHARED_MEMORY_FILE_MAP_ERROR 2042
104#define CR_SHARED_MEMORY_MAP_ERROR 2043
105#define CR_SHARED_MEMORY_EVENT_ERROR 2044
106#define CR_SHARED_MEMORY_CONNECT_ABANDONED_ERROR 2045
107#define CR_SHARED_MEMORY_CONNECT_SET_ERROR 2046
108#define CR_CONN_UNKNOW_PROTOCOL 2047
109#define CR_INVALID_CONN_HANDLE 2048
110#define CR_UNUSED_1 2049
111#define CR_FETCH_CANCELED 2050
112#define CR_NO_DATA 2051
113#define CR_NO_STMT_METADATA 2052
114#define CR_NO_RESULT_SET 2053
115#define CR_NOT_IMPLEMENTED 2054
116#define CR_SERVER_LOST_EXTENDED 2055
117#define CR_STMT_CLOSED 2056
118#define CR_NEW_STMT_METADATA 2057
119#define CR_ALREADY_CONNECTED 2058
120#define CR_AUTH_PLUGIN_CANNOT_LOAD 2059
121#define CR_DUPLICATE_CONNECTION_ATTR 2060
122#define CR_AUTH_PLUGIN_ERR 2061
123#define CR_INSECURE_API_ERR 2062
124#define CR_FILE_NAME_TOO_LONG 2063
125#define CR_SSL_FIPS_MODE_ERR 2064
126#define CR_DEPRECATED_COMPRESSION_NOT_SUPPORTED 2065
127#define CR_COMPRESSION_WRONGLY_CONFIGURED 2066
128#define CR_KERBEROS_USER_NOT_FOUND 2067
129#define CR_LOAD_DATA_LOCAL_INFILE_REJECTED 2068
130#define CR_LOAD_DATA_LOCAL_INFILE_REALPATH_FAIL 2069
131#define CR_DNS_SRV_LOOKUP_FAILED 2070
132#define CR_MANDATORY_TRACKER_NOT_FOUND 2071
133#define CR_INVALID_FACTOR_NO 2072
134#define CR_CANT_GET_SESSION_DATA 2073
135#define CR_INVALID_CLIENT_CHARSET 2074
136#define CR_ERROR_LAST /*Copy last error nr:*/ 2074
137/* Add error numbers before CR_ERROR_LAST and change it accordingly. */
138
139/* Visual Studio requires '__inline' for C code */
140static inline const char *ER_CLIENT(int client_errno) {
141 if (client_errno >= CR_ERROR_FIRST && client_errno <= CR_ERROR_LAST)
142 return client_errors[client_errno - CR_ERROR_FIRST];
143 return client_errors[CR_UNKNOWN_ERROR - CR_ERROR_FIRST];
144}
145
146#endif /* ERRMSG_INCLUDED */
147

source code of include/mysql/errmsg.h