1
0
mirror of https://github.com/mariadb-corporation/mariadb-connector-c.git synced 2025-08-08 14:02:17 +03:00

Added new API function mysql_get_info/mysql_get_infov which retrieves

global or connection dependent information:

mysql_get_infov(MYSQL *mysql, enum mariadb_value value, void *arg, ...)

the following value types are supported:
    MARIADB_CHARSET_ID (requires numeric 4th parameter)
    MARIADB_CHARSET_INFO (requires string 4th parameter)
    MARIADB_CHARSET_NAME
    MARIADB_CLIENT_ERRORS
    MARIADB_CLIENT_VERSION
    MARIADB_CLIENT_VERSION_ID
    MARIADB_CONNECTION_ASYNC_TIMEOUT
    MARIADB_CONNECTION_ASYNC_TIMEOUT_MS
    MARIADB_CONNECTION_HOST
    MARIADB_CONNECTION_INFO
    MARIADB_CONNECTION_PORT
    MARIADB_CONNECTION_PROTOCOL_VERSION_ID
    MARIADB_CONNECTION_PVIO_TYPE
    MARIADB_CONNECTION_SCHEMA
    MARIADB_CONNECTION_SERVER_TYPE
    MARIADB_CONNECTION_SERVER_VERSION
    MARIADB_CONNECTION_SERVER_VERSION_ID
    MARIADB_CONNECTION_SOCKET
    MARIADB_CONNECTION_SSL_CIPHER
    MARIADB_CONNECTION_SSL_VERSION
    MARIADB_CONNECTION_SSL_VERSION_ID
    MARIADB_CONNECTION_TYPE
    MARIADB_CONNECTION_UNIX_SOCKET
    MARIADB_CONNECTION_USER
    MARIADB_MAX_ALLOWED_PACKET
    MARIADB_NET_BUFFER_LENGTH

MARIADB_CONNECTION prefix indicates that a valid connection handle has
to be passed as first parameter.
This commit is contained in:
Georg Richter
2015-12-28 07:32:53 +01:00
parent 2c8ef31641
commit d73e4c23a2
15 changed files with 502 additions and 50 deletions

View File

@@ -42,13 +42,6 @@ int repl_command(MYSQL *mysql,enum enum_server_command command, const char *arg,
size_t length, my_bool skipp_check, void *opt_arg);
int repl_set_options(MYSQL *msql, enum mysql_option option, void *arg);
#ifdef HAVE_REPLICATION_DYNAMIC
#undef my_free
#define my_malloc(a,b) malloc(a)
#define my_free(a) free(a)
#endif
#define MARIADB_MASTER 0
#define MARIADB_SLAVE 1
@@ -120,7 +113,7 @@ my_bool repl_parse_url(const char *url, REPL_DATA *data)
memset(data->port, 0, 2 * sizeof(int));
if (!data->url)
data->url= my_strdup(url, MYF(0));
data->url= strdup(url);
data->host[MARIADB_MASTER]= p= data->url;
/* get slaves */
@@ -188,7 +181,7 @@ MYSQL *repl_connect(MYSQL *mysql, const char *host, const char *user, const char
if ((data= (REPL_DATA *)hdlr->data))
{
ma_pvio_close(data->pvio[MARIADB_MASTER]);
data->pvio[MARIADB_MASTER]->methods->close(data->pvio[MARIADB_MASTER]);
data->pvio[MARIADB_MASTER]= 0;
repl_close(mysql);
}
@@ -234,8 +227,8 @@ error:
if (data)
{
if (data->url)
my_free(data->url);
my_free(data);
free(data->url);
free(data);
}
return NULL;
}
@@ -259,8 +252,8 @@ void repl_close(MYSQL *mysql)
}
/* free masrwe information and close connection */
my_free(data->url);
my_free(data);
free(data->url);
free(data);
mysql->net.conn_hdlr->data= NULL;
}