-
Notifications
You must be signed in to change notification settings - Fork 760
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Replace the windows mysql connector with MariaDB C Connector 3.1.5 / …
…Client Lib 10.4.3
- Loading branch information
Showing
53 changed files
with
4,445 additions
and
5,720 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,244 @@ | ||
/* Copyright (C) 2010 - 2012 Sergei Golubchik and Monty Program Ab | ||
2014 MariaDB Corporation AB | ||
This library is free software; you can redistribute it and/or | ||
modify it under the terms of the GNU Library General Public | ||
License as published by the Free Software Foundation; either | ||
version 2 of the License, or (at your option) any later version. | ||
This library 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 | ||
Library General Public License for more details. | ||
You should have received a copy of the GNU Library General Public | ||
License along with this library; if not see <http://www.gnu.org/licenses> | ||
or write to the Free Software Foundation, Inc., | ||
51 Franklin St., Fifth Floor, Boston, MA 02110, USA */ | ||
|
||
/** | ||
@file | ||
MySQL Client Plugin API | ||
This file defines the API for plugins that work on the client side | ||
*/ | ||
#ifndef MYSQL_CLIENT_PLUGIN_INCLUDED | ||
#define MYSQL_CLIENT_PLUGIN_INCLUDED | ||
|
||
#ifndef MYSQL_ABI_CHECK | ||
#include <stdarg.h> | ||
#include <stdlib.h> | ||
#endif | ||
|
||
|
||
#ifndef PLUGINDIR | ||
#define PLUGINDIR "lib/plugin" | ||
#endif | ||
|
||
#define plugin_declarations_sym "_mysql_client_plugin_declaration_" | ||
|
||
/* known plugin types */ | ||
#define MYSQL_CLIENT_PLUGIN_RESERVED 0 | ||
#define MYSQL_CLIENT_PLUGIN_RESERVED2 1 | ||
#define MYSQL_CLIENT_AUTHENTICATION_PLUGIN 2 /* authentication */ | ||
|
||
#define MYSQL_CLIENT_AUTHENTICATION_PLUGIN_INTERFACE_VERSION 0x0100 | ||
#define MYSQL_CLIENT_MAX_PLUGINS 3 | ||
|
||
/* Connector/C specific plugin types */ | ||
#define MARIADB_CLIENT_REMOTEIO_PLUGIN 100 /* communication IO */ | ||
#define MARIADB_CLIENT_PVIO_PLUGIN 101 | ||
#define MARIADB_CLIENT_TRACE_PLUGIN 102 | ||
#define MARIADB_CLIENT_CONNECTION_PLUGIN 103 | ||
|
||
#define MARIADB_CLIENT_REMOTEIO_PLUGIN_INTERFACE_VERSION 0x0100 | ||
#define MARIADB_CLIENT_PVIO_PLUGIN_INTERFACE_VERSION 0x0100 | ||
#define MARIADB_CLIENT_TRACE_PLUGIN_INTERFACE_VERSION 0x0100 | ||
#define MARIADB_CLIENT_CONNECTION_PLUGIN_INTERFACE_VERSION 0x0100 | ||
|
||
#define MARIADB_CLIENT_MAX_PLUGINS 4 | ||
|
||
#define mysql_declare_client_plugin(X) \ | ||
struct st_mysql_client_plugin_ ## X \ | ||
_mysql_client_plugin_declaration_ = { \ | ||
MYSQL_CLIENT_ ## X ## _PLUGIN, \ | ||
MYSQL_CLIENT_ ## X ## _PLUGIN_INTERFACE_VERSION, | ||
#define mysql_end_client_plugin } | ||
|
||
/* generic plugin header structure */ | ||
#ifndef MYSQL_CLIENT_PLUGIN_HEADER | ||
#define MYSQL_CLIENT_PLUGIN_HEADER \ | ||
int type; \ | ||
unsigned int interface_version; \ | ||
const char *name; \ | ||
const char *author; \ | ||
const char *desc; \ | ||
unsigned int version[3]; \ | ||
const char *license; \ | ||
void *mysql_api; \ | ||
int (*init)(char *, size_t, int, va_list); \ | ||
int (*deinit)(); \ | ||
int (*options)(const char *option, const void *); | ||
struct st_mysql_client_plugin | ||
{ | ||
MYSQL_CLIENT_PLUGIN_HEADER | ||
}; | ||
#endif | ||
|
||
struct st_mysql; | ||
|
||
/********* connection handler plugin specific declarations **********/ | ||
|
||
typedef struct st_ma_connection_plugin | ||
{ | ||
MYSQL_CLIENT_PLUGIN_HEADER | ||
/* functions */ | ||
MYSQL *(*connect)(MYSQL *mysql, const char *host, | ||
const char *user, const char *passwd, | ||
const char *db, unsigned int port, | ||
const char *unix_socket, unsigned long clientflag); | ||
void (*close)(MYSQL *mysql); | ||
int (*set_optionsv)(MYSQL *mysql, unsigned int option, ...); | ||
int (*set_connection)(MYSQL *mysql,enum enum_server_command command, | ||
const char *arg, | ||
size_t length, my_bool skipp_check, void *opt_arg); | ||
my_bool (*reconnect)(MYSQL *mysql); | ||
int (*reset)(MYSQL *mysql); | ||
} MARIADB_CONNECTION_PLUGIN; | ||
|
||
#define MARIADB_DB_DRIVER(a) ((a)->ext_db) | ||
|
||
/******************* Communication IO plugin *****************/ | ||
#include <ma_pvio.h> | ||
|
||
typedef struct st_mariadb_client_plugin_PVIO | ||
{ | ||
MYSQL_CLIENT_PLUGIN_HEADER | ||
struct st_ma_pvio_methods *methods; | ||
} MARIADB_PVIO_PLUGIN; | ||
|
||
/******** authentication plugin specific declarations *********/ | ||
#include <mysql/plugin_auth_common.h> | ||
|
||
struct st_mysql_client_plugin_AUTHENTICATION | ||
{ | ||
MYSQL_CLIENT_PLUGIN_HEADER | ||
int (*authenticate_user)(MYSQL_PLUGIN_VIO *vio, struct st_mysql *mysql); | ||
}; | ||
|
||
/******** trace plugin *******/ | ||
struct st_mysql_client_plugin_TRACE | ||
{ | ||
MYSQL_CLIENT_PLUGIN_HEADER | ||
}; | ||
|
||
/** | ||
type of the mysql_authentication_dialog_ask function | ||
@param mysql mysql | ||
@param type type of the input | ||
1 - ordinary string input | ||
2 - password string | ||
@param prompt prompt | ||
@param buf a buffer to store the use input | ||
@param buf_len the length of the buffer | ||
@retval a pointer to the user input string. | ||
It may be equal to 'buf' or to 'mysql->password'. | ||
In all other cases it is assumed to be an allocated | ||
string, and the "dialog" plugin will free() it. | ||
*/ | ||
typedef char *(*mysql_authentication_dialog_ask_t)(struct st_mysql *mysql, | ||
int type, const char *prompt, char *buf, int buf_len); | ||
|
||
/********************** remote IO plugin **********************/ | ||
#ifdef HAVE_REMOTEIO | ||
#include <mariadb/ma_io.h> | ||
|
||
/* Remote IO plugin */ | ||
typedef struct st_mysql_client_plugin_REMOTEIO | ||
{ | ||
MYSQL_CLIENT_PLUGIN_HEADER | ||
struct st_rio_methods *methods; | ||
} MARIADB_REMOTEIO_PLUGIN; | ||
#endif | ||
|
||
/******** using plugins ************/ | ||
|
||
/** | ||
loads a plugin and initializes it | ||
@param mysql MYSQL structure. only MYSQL_PLUGIN_DIR option value is used, | ||
and last_errno/last_error, for error reporting | ||
@param name a name of the plugin to load | ||
@param type type of plugin that should be loaded, -1 to disable type check | ||
@param argc number of arguments to pass to the plugin initialization | ||
function | ||
@param ... arguments for the plugin initialization function | ||
@retval | ||
a pointer to the loaded plugin, or NULL in case of a failure | ||
*/ | ||
struct st_mysql_client_plugin * | ||
mysql_load_plugin(struct st_mysql *mysql, const char *name, int type, | ||
int argc, ...); | ||
|
||
/** | ||
loads a plugin and initializes it, taking va_list as an argument | ||
This is the same as mysql_load_plugin, but take va_list instead of | ||
a list of arguments. | ||
@param mysql MYSQL structure. only MYSQL_PLUGIN_DIR option value is used, | ||
and last_errno/last_error, for error reporting | ||
@param name a name of the plugin to load | ||
@param type type of plugin that should be loaded, -1 to disable type check | ||
@param argc number of arguments to pass to the plugin initialization | ||
function | ||
@param args arguments for the plugin initialization function | ||
@retval | ||
a pointer to the loaded plugin, or NULL in case of a failure | ||
*/ | ||
struct st_mysql_client_plugin * STDCALL | ||
mysql_load_plugin_v(struct st_mysql *mysql, const char *name, int type, | ||
int argc, va_list args); | ||
|
||
/** | ||
finds an already loaded plugin by name, or loads it, if necessary | ||
@param mysql MYSQL structure. only MYSQL_PLUGIN_DIR option value is used, | ||
and last_errno/last_error, for error reporting | ||
@param name a name of the plugin to load | ||
@param type type of plugin that should be loaded | ||
@retval | ||
a pointer to the plugin, or NULL in case of a failure | ||
*/ | ||
struct st_mysql_client_plugin * STDCALL | ||
mysql_client_find_plugin(struct st_mysql *mysql, const char *name, int type); | ||
|
||
/** | ||
adds a plugin structure to the list of loaded plugins | ||
This is useful if an application has the necessary functionality | ||
(for example, a special load data handler) statically linked into | ||
the application binary. It can use this function to register the plugin | ||
directly, avoiding the need to factor it out into a shared object. | ||
@param mysql MYSQL structure. It is only used for error reporting | ||
@param plugin an st_mysql_client_plugin structure to register | ||
@retval | ||
a pointer to the plugin, or NULL in case of a failure | ||
*/ | ||
struct st_mysql_client_plugin * STDCALL | ||
mysql_client_register_plugin(struct st_mysql *mysql, | ||
struct st_mysql_client_plugin *plugin); | ||
|
||
extern struct st_mysql_client_plugin *mysql_client_builtins[]; | ||
|
||
#endif | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB | ||
2012-2016 SkySQL AB, MariaDB Corporation AB | ||
This library is free software; you can redistribute it and/or | ||
modify it under the terms of the GNU Library General Public | ||
License as published by the Free Software Foundation; either | ||
version 2 of the License, or (at your option) any later version. | ||
This library 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 | ||
Library General Public License for more details. | ||
You should have received a copy of the GNU Library General Public | ||
License along with this library; if not, write to the Free | ||
Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
MA 02111-1301, USA */ | ||
|
||
/* Error messages for mysql clients */ | ||
/* error messages for the demon is in share/language/errmsg.sys */ | ||
#ifndef _errmsg_h_ | ||
#define _errmsg_h_ | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
void init_client_errs(void); | ||
extern const char *client_errors[]; /* Error messages */ | ||
extern const char *mariadb_client_errors[]; /* Error messages */ | ||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
|
||
|
||
#define CR_MIN_ERROR 2000 /* For easier client code */ | ||
#define CR_MAX_ERROR 2999 | ||
#define CER_MIN_ERROR 5000 | ||
#define CER_MAX_ERROR 5999 | ||
#define CER(X) mariadb_client_errors[(X)-CER_MIN_ERROR] | ||
#define ER(X) client_errors[(X)-CR_MIN_ERROR] | ||
#define CLIENT_ERRMAP 2 /* Errormap used by ma_error() */ | ||
|
||
#define CR_UNKNOWN_ERROR 2000 | ||
#define CR_SOCKET_CREATE_ERROR 2001 | ||
#define CR_CONNECTION_ERROR 2002 | ||
#define CR_CONN_HOST_ERROR 2003 /* never sent to a client, message only */ | ||
#define CR_IPSOCK_ERROR 2004 | ||
#define CR_UNKNOWN_HOST 2005 | ||
#define CR_SERVER_GONE_ERROR 2006 /* disappeared _between_ queries */ | ||
#define CR_VERSION_ERROR 2007 | ||
#define CR_OUT_OF_MEMORY 2008 | ||
#define CR_WRONG_HOST_INFO 2009 | ||
#define CR_LOCALHOST_CONNECTION 2010 | ||
#define CR_TCP_CONNECTION 2011 | ||
#define CR_SERVER_HANDSHAKE_ERR 2012 | ||
#define CR_SERVER_LOST 2013 /* disappeared _during_ a query */ | ||
#define CR_COMMANDS_OUT_OF_SYNC 2014 | ||
#define CR_NAMEDPIPE_CONNECTION 2015 | ||
#define CR_NAMEDPIPEWAIT_ERROR 2016 | ||
#define CR_NAMEDPIPEOPEN_ERROR 2017 | ||
#define CR_NAMEDPIPESETSTATE_ERROR 2018 | ||
#define CR_CANT_READ_CHARSET 2019 | ||
#define CR_NET_PACKET_TOO_LARGE 2020 | ||
#define CR_SSL_CONNECTION_ERROR 2026 | ||
#define CR_MALFORMED_PACKET 2027 | ||
#define CR_NO_PREPARE_STMT 2030 | ||
#define CR_PARAMS_NOT_BOUND 2031 | ||
#define CR_INVALID_PARAMETER_NO 2034 | ||
#define CR_INVALID_BUFFER_USE 2035 | ||
#define CR_UNSUPPORTED_PARAM_TYPE 2036 | ||
|
||
#define CR_SHARED_MEMORY_CONNECTION 2037 | ||
#define CR_SHARED_MEMORY_CONNECT_ERROR 2038 | ||
|
||
#define CR_CONN_UNKNOWN_PROTOCOL 2047 | ||
#define CR_SECURE_AUTH 2049 | ||
#define CR_NO_DATA 2051 | ||
#define CR_NO_STMT_METADATA 2052 | ||
#define CR_NOT_IMPLEMENTED 2054 | ||
#define CR_SERVER_LOST_EXTENDED 2055 /* never sent to a client, message only */ | ||
#define CR_STMT_CLOSED 2056 | ||
#define CR_NEW_STMT_METADATA 2057 | ||
#define CR_ALREADY_CONNECTED 2058 | ||
#define CR_AUTH_PLUGIN_CANNOT_LOAD 2059 | ||
#define CR_DUPLICATE_CONNECTION_ATTR 2060 | ||
#define CR_AUTH_PLUGIN_ERR 2061 | ||
/* Always last, if you add new error codes please update the | ||
value for CR_MYSQL_LAST_ERROR */ | ||
#define CR_MYSQL_LAST_ERROR CR_AUTH_PLUGIN_ERR | ||
|
||
/* | ||
* MariaDB Connector/C errors: | ||
*/ | ||
#define CR_EVENT_CREATE_FAILED 5000 | ||
#define CR_BIND_ADDR_FAILED 5001 | ||
#define CR_ASYNC_NOT_SUPPORTED 5002 | ||
#define CR_FUNCTION_NOT_SUPPORTED 5003 | ||
#define CR_FILE_NOT_FOUND 5004 | ||
#define CR_FILE_READ 5005 | ||
#define CR_BULK_WITHOUT_PARAMETERS 5006 | ||
#define CR_INVALID_STMT 5007 | ||
#define CR_VERSION_MISMATCH 5008 | ||
/* Always last, if you add new error codes please update the | ||
value for CR_MARIADB_LAST_ERROR */ | ||
#define CR_MARIADB_LAST_ERROR CR_INVALID_STMT | ||
#endif |
Oops, something went wrong.