You've already forked mariadb-connector-c
mirror of
https://github.com/mariadb-corporation/mariadb-connector-c.git
synced 2025-08-08 14:02:17 +03:00
removed api function mysql_get_server_status (introduced in last commit). Instead of mariadb_get_infov now supports additional parameters:
* MARIADB_CONNECTION_SERVER_STATUS * MARIADB_CONNECTION_SERVER_CAPABILITIES * MARIADB_CONNECTION_EXTENDED_SERVER_CAPABILITIES * MARIADB_CONNECTION_CLIENT_CAPABILITIES
This commit is contained in:
@@ -232,7 +232,7 @@ INCLUDE(${CC_SOURCE_DIR}/cmake/CheckFunctions.cmake)
|
|||||||
# check for various types
|
# check for various types
|
||||||
INCLUDE(${CC_SOURCE_DIR}/cmake/CheckTypes.cmake)
|
INCLUDE(${CC_SOURCE_DIR}/cmake/CheckTypes.cmake)
|
||||||
|
|
||||||
IF(NOT WITH_SSL AND NOT WITH_SSL STREQUAL "OFF")
|
IF(NOT WITH_SSL OR WITH_SSL STREQUAL "OFF")
|
||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
SET(WITH_SSL "SCHANNEL")
|
SET(WITH_SSL "SCHANNEL")
|
||||||
ELSE()
|
ELSE()
|
||||||
|
@@ -265,6 +265,10 @@ extern const char *SQLSTATE_UNKNOWN;
|
|||||||
MARIADB_CONNECTION_USER,
|
MARIADB_CONNECTION_USER,
|
||||||
MARIADB_MAX_ALLOWED_PACKET,
|
MARIADB_MAX_ALLOWED_PACKET,
|
||||||
MARIADB_NET_BUFFER_LENGTH,
|
MARIADB_NET_BUFFER_LENGTH,
|
||||||
|
MARIADB_CONNECTION_SERVER_STATUS,
|
||||||
|
MARIADB_CONNECTION_SERVER_CAPABILITIES,
|
||||||
|
MARIADB_CONNECTION_EXTENDED_SERVER_CAPABILITIES,
|
||||||
|
MARIADB_CONNECTION_CLIENT_CAPABILITIES
|
||||||
};
|
};
|
||||||
|
|
||||||
enum mysql_status { MYSQL_STATUS_READY,
|
enum mysql_status { MYSQL_STATUS_READY,
|
||||||
@@ -519,7 +523,6 @@ int STDCALL mysql_kill(MYSQL *mysql,unsigned long pid);
|
|||||||
int STDCALL mysql_ping(MYSQL *mysql);
|
int STDCALL mysql_ping(MYSQL *mysql);
|
||||||
char * STDCALL mysql_stat(MYSQL *mysql);
|
char * STDCALL mysql_stat(MYSQL *mysql);
|
||||||
char * STDCALL mysql_get_server_info(MYSQL *mysql);
|
char * STDCALL mysql_get_server_info(MYSQL *mysql);
|
||||||
unsigned int STDCALL mysql_get_server_status(MYSQL *mysql);
|
|
||||||
unsigned long STDCALL mysql_get_server_version(MYSQL *mysql);
|
unsigned long STDCALL mysql_get_server_version(MYSQL *mysql);
|
||||||
char * STDCALL mysql_get_host_info(MYSQL *mysql);
|
char * STDCALL mysql_get_host_info(MYSQL *mysql);
|
||||||
unsigned int STDCALL mysql_get_proto_info(MYSQL *mysql);
|
unsigned int STDCALL mysql_get_proto_info(MYSQL *mysql);
|
||||||
@@ -738,7 +741,6 @@ struct st_mariadb_api {
|
|||||||
int (STDCALL *mysql_ping)(MYSQL *mysql);
|
int (STDCALL *mysql_ping)(MYSQL *mysql);
|
||||||
char * (STDCALL *mysql_stat)(MYSQL *mysql);
|
char * (STDCALL *mysql_stat)(MYSQL *mysql);
|
||||||
char * (STDCALL *mysql_get_server_info)(MYSQL *mysql);
|
char * (STDCALL *mysql_get_server_info)(MYSQL *mysql);
|
||||||
unsigned int (STDCALL *mysql_get_server_status)(MYSQL *mysql);
|
|
||||||
unsigned long (STDCALL *mysql_get_server_version)(MYSQL *mysql);
|
unsigned long (STDCALL *mysql_get_server_version)(MYSQL *mysql);
|
||||||
char * (STDCALL *mysql_get_host_info)(MYSQL *mysql);
|
char * (STDCALL *mysql_get_host_info)(MYSQL *mysql);
|
||||||
unsigned int (STDCALL *mysql_get_proto_info)(MYSQL *mysql);
|
unsigned int (STDCALL *mysql_get_proto_info)(MYSQL *mysql);
|
||||||
|
@@ -55,7 +55,6 @@ SET(MARIADB_LIB_SYMBOLS
|
|||||||
mysql_get_parameters
|
mysql_get_parameters
|
||||||
mysql_get_proto_info
|
mysql_get_proto_info
|
||||||
mysql_get_server_info
|
mysql_get_server_info
|
||||||
mysql_get_server_status
|
|
||||||
mysql_get_server_name
|
mysql_get_server_name
|
||||||
mysql_get_server_version
|
mysql_get_server_version
|
||||||
mysql_get_socket
|
mysql_get_socket
|
||||||
|
@@ -2523,12 +2523,6 @@ mysql_get_server_info(MYSQL *mysql)
|
|||||||
return((char*) mysql->server_version);
|
return((char*) mysql->server_version);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int STDCALL
|
|
||||||
mysql_get_server_status(MYSQL *mysql)
|
|
||||||
{
|
|
||||||
return mysql->server_status;
|
|
||||||
}
|
|
||||||
|
|
||||||
static size_t mariadb_server_version_id(MYSQL *mysql)
|
static size_t mariadb_server_version_id(MYSQL *mysql)
|
||||||
{
|
{
|
||||||
size_t major, minor, patch;
|
size_t major, minor, patch;
|
||||||
@@ -3786,6 +3780,29 @@ my_bool STDCALL mariadb_get_infov(MYSQL *mysql, enum mariadb_value value, void *
|
|||||||
else
|
else
|
||||||
goto error;
|
goto error;
|
||||||
break;
|
break;
|
||||||
|
case MARIADB_CONNECTION_SERVER_STATUS:
|
||||||
|
if (mysql)
|
||||||
|
*((unsigned int *)arg)= mysql->server_status;
|
||||||
|
else
|
||||||
|
goto error;
|
||||||
|
break;
|
||||||
|
case MARIADB_CONNECTION_SERVER_CAPABILITIES:
|
||||||
|
if (mysql)
|
||||||
|
*((unsigned long *)arg)= mysql->server_capabilities;
|
||||||
|
else
|
||||||
|
goto error;
|
||||||
|
break;
|
||||||
|
case MARIADB_CONNECTION_EXTENDED_SERVER_CAPABILITIES:
|
||||||
|
if (mysql)
|
||||||
|
*((unsigned long *)arg)= mysql->extension->mariadb_server_capabilities;
|
||||||
|
else
|
||||||
|
goto error;
|
||||||
|
break;
|
||||||
|
case MARIADB_CONNECTION_CLIENT_CAPABILITIES:
|
||||||
|
if (mysql)
|
||||||
|
*((unsigned long *)arg)= mysql->client_flag;
|
||||||
|
else
|
||||||
|
goto error;
|
||||||
default:
|
default:
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
return(-1);
|
return(-1);
|
||||||
@@ -3902,7 +3919,6 @@ struct st_mariadb_api MARIADB_API=
|
|||||||
mysql_ping,
|
mysql_ping,
|
||||||
mysql_stat,
|
mysql_stat,
|
||||||
mysql_get_server_info,
|
mysql_get_server_info,
|
||||||
mysql_get_server_status,
|
|
||||||
mysql_get_server_version,
|
mysql_get_server_version,
|
||||||
mysql_get_host_info,
|
mysql_get_host_info,
|
||||||
mysql_get_proto_info,
|
mysql_get_proto_info,
|
||||||
|
@@ -638,7 +638,7 @@ unsigned char* mysql_stmt_execute_generate_request(MYSQL_STMT *stmt, size_t *req
|
|||||||
|
|
||||||
size_t length= 1024;
|
size_t length= 1024;
|
||||||
size_t free_bytes= 0;
|
size_t free_bytes= 0;
|
||||||
size_t null_byte_offset;
|
size_t null_byte_offset= 0;
|
||||||
uint i, j, num_rows= 1;
|
uint i, j, num_rows= 1;
|
||||||
|
|
||||||
uchar *start= NULL, *p;
|
uchar *start= NULL, *p;
|
||||||
|
@@ -138,7 +138,7 @@ static int auth_dialog_open(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql)
|
|||||||
my_bool first_loop= TRUE;
|
my_bool first_loop= TRUE;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if ((packet_length= vio->read_packet(vio, &packet)) == (size_t)-1)
|
if ((packet_length= vio->read_packet(vio, &packet)) == -1)
|
||||||
/* read error */
|
/* read error */
|
||||||
return CR_ERROR;
|
return CR_ERROR;
|
||||||
|
|
||||||
|
@@ -1133,24 +1133,49 @@ static int test_zerofill(MYSQL *mysql)
|
|||||||
static int test_server_status(MYSQL *mysql)
|
static int test_server_status(MYSQL *mysql)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
|
unsigned long server_status;
|
||||||
|
MYSQL_STMT *stmt= mysql_stmt_init(mysql);
|
||||||
|
|
||||||
rc= mysql_autocommit(mysql, 1);
|
rc= mysql_autocommit(mysql, 1);
|
||||||
FAIL_IF(!(mysql_get_server_status(mysql) & SERVER_STATUS_AUTOCOMMIT),
|
mariadb_get_infov(mysql, MARIADB_CONNECTION_SERVER_STATUS, &server_status);
|
||||||
|
FAIL_IF(!(server_status & SERVER_STATUS_AUTOCOMMIT),
|
||||||
"autocommit flag not set");
|
"autocommit flag not set");
|
||||||
|
|
||||||
rc= mysql_query(mysql, "DROP TABLE IF EXISTS t1");
|
rc= mysql_query(mysql, "DROP TABLE IF EXISTS t1");
|
||||||
check_mysql_rc(rc, mysql);
|
check_mysql_rc(rc, mysql);
|
||||||
|
|
||||||
rc= mysql_query(mysql, "CREATE TABLE t1 (a int)");
|
rc= mysql_query(mysql, "CREATE TABLE t1 (a int, b int)");
|
||||||
check_mysql_rc(rc, mysql);
|
check_mysql_rc(rc, mysql);
|
||||||
|
|
||||||
rc= mysql_query(mysql, "INSERT INTO t1 VALUES (1),(2),(3),(4),(5)");
|
rc= mysql_query(mysql, "INSERT INTO t1 (a) VALUES (1),(2),(3),(4),(5)");
|
||||||
check_mysql_rc(rc, mysql);
|
check_mysql_rc(rc, mysql);
|
||||||
|
|
||||||
rc= mysql_query(mysql, "UPDATE t1 SET a=9 WHERE a=8");
|
rc= mysql_query(mysql, "UPDATE t1 SET a=9 WHERE a=8");
|
||||||
check_mysql_rc(rc, mysql);
|
check_mysql_rc(rc, mysql);
|
||||||
|
|
||||||
FAIL_IF(!(mysql_get_server_status(mysql) & SERVER_QUERY_NO_INDEX_USED), "autocommit flag not set");
|
mariadb_get_infov(mysql, MARIADB_CONNECTION_SERVER_STATUS, &server_status);
|
||||||
|
FAIL_IF(!(server_status & SERVER_QUERY_NO_INDEX_USED), "autocommit flag not set");
|
||||||
|
|
||||||
|
rc= mysql_query(mysql, "CREATE SCHEMA test_tmp");
|
||||||
|
check_mysql_rc(rc, mysql);
|
||||||
|
|
||||||
|
rc= mysql_select_db(mysql, "test_tmp");
|
||||||
|
check_mysql_rc(rc, mysql);
|
||||||
|
|
||||||
|
rc= mysql_query(mysql, "DROP SCHEMA test_tmp");
|
||||||
|
check_mysql_rc(rc, mysql);
|
||||||
|
|
||||||
|
mariadb_get_infov(mysql, MARIADB_CONNECTION_SERVER_STATUS, &server_status);
|
||||||
|
FAIL_IF(!(server_status & SERVER_STATUS_DB_DROPPED),
|
||||||
|
"DB_DROP flag not set");
|
||||||
|
|
||||||
|
FAIL_IF(!(server_status & SERVER_SESSION_STATE_CHANGED),
|
||||||
|
"SESSION_STATE_CHANGED flag not set");
|
||||||
|
|
||||||
|
rc= mysql_select_db(mysql, schema);
|
||||||
|
check_mysql_rc(rc, mysql);
|
||||||
|
|
||||||
|
mysql_stmt_close(stmt);
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user