You've already forked mariadb-connector-c
mirror of
https://github.com/mariadb-corporation/mariadb-connector-c.git
synced 2025-08-07 02:42:49 +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:
@@ -1021,11 +1021,74 @@ static int test_remote2(MYSQL *my)
|
||||
}
|
||||
#endif
|
||||
|
||||
static int test_get_info(MYSQL *mysql)
|
||||
{
|
||||
size_t sval;
|
||||
unsigned int ival;
|
||||
char *cval;
|
||||
int rc;
|
||||
MY_CHARSET_INFO cs;
|
||||
CHARSET_INFO *ci;
|
||||
char **errors;
|
||||
|
||||
rc= mariadb_get_infov(mysql, MARIADB_MAX_ALLOWED_PACKET, &sval);
|
||||
FAIL_IF(rc, "mysql_get_info failed");
|
||||
diag("max_allowed_packet: %d", sval);
|
||||
rc= mariadb_get_infov(mysql, MARIADB_NET_BUFFER_LENGTH, &sval);
|
||||
FAIL_IF(rc, "mysql_get_info failed");
|
||||
diag("net_buffer_length: %d", sval);
|
||||
rc= mariadb_get_infov(mysql, MARIADB_CLIENT_VERSION_ID, &sval);
|
||||
FAIL_IF(rc, "mysql_get_info failed");
|
||||
diag("client_version_id: %d", sval);
|
||||
rc= mariadb_get_infov(mysql, MARIADB_CONNECTION_SERVER_VERSION_ID, &sval);
|
||||
FAIL_IF(rc, "mysql_get_info failed");
|
||||
diag("server_version_id: %d", sval);
|
||||
rc= mariadb_get_infov(mysql, MARIADB_CHARSET_INFO, &cs);
|
||||
FAIL_IF(rc, "mysql_get_info failed");
|
||||
diag("charset name: %s", cs.csname);
|
||||
rc= mariadb_get_infov(mysql, MARIADB_CONNECTION_PVIO_TYPE, &ival);
|
||||
FAIL_IF(rc, "mysql_get_info failed");
|
||||
diag("connection type: %d", ival);
|
||||
rc= mariadb_get_infov(mysql, MARIADB_CONNECTION_PROTOCOL_VERSION_ID, &ival);
|
||||
FAIL_IF(rc, "mysql_get_info failed");
|
||||
diag("protocol_version: %d", ival);
|
||||
rc= mariadb_get_infov(mysql, MARIADB_CONNECTION_SERVER_TYPE, &cval);
|
||||
FAIL_IF(rc, "mysql_get_info failed");
|
||||
diag("server_type: %s", cval);
|
||||
rc= mariadb_get_infov(mysql, MARIADB_CONNECTION_SERVER_VERSION, &cval);
|
||||
FAIL_IF(rc, "mysql_get_info failed");
|
||||
diag("server_version: %s", cval);
|
||||
rc= mariadb_get_infov(mysql, MARIADB_CLIENT_VERSION, &cval);
|
||||
FAIL_IF(rc, "mysql_get_info failed");
|
||||
diag("client_version: %s", cval);
|
||||
rc= mariadb_get_infov(mysql, MARIADB_CHARSET_NAME, &ci, "utf8");
|
||||
FAIL_IF(rc, "mysql_get_info failed");
|
||||
diag("charset_name: %s", ci->csname);
|
||||
diag("charset_nr: %d", ci->nr);
|
||||
rc= mariadb_get_infov(mysql, MARIADB_CHARSET_ID, &ci, 63);
|
||||
FAIL_IF(rc, "mysql_get_info failed");
|
||||
diag("charset_name: %s", ci->csname);
|
||||
rc= mariadb_get_infov(mysql, MARIADB_CLIENT_ERRORS, &errors);
|
||||
FAIL_IF(rc, "mysql_get_info failed");
|
||||
diag("error[0]: %s", errors[0]);
|
||||
rc= mysql_query(mysql, "DROP TABLE IF exists t1");
|
||||
check_mysql_rc(rc, mysql);
|
||||
rc= mysql_query(mysql, "CREATE TABLE t1 (a int)");
|
||||
check_mysql_rc(rc, mysql);
|
||||
rc= mysql_query(mysql, "INSERT INTO t1 VALUES (1),(2)");
|
||||
check_mysql_rc(rc, mysql);
|
||||
rc= mariadb_get_infov(mysql, MARIADB_CONNECTION_INFO, &cval);
|
||||
FAIL_IF(rc, "mysql_get_info failed");
|
||||
diag("mariadb_info: %s", cval);
|
||||
return OK;
|
||||
}
|
||||
|
||||
struct my_tests_st my_tests[] = {
|
||||
#ifdef HAVE_REMOTEIO
|
||||
{"test_remote1", test_remote1, TEST_CONNECTION_NEW, 0, NULL, NULL},
|
||||
{"test_remote2", test_remote2, TEST_CONNECTION_NEW, 0, NULL, NULL},
|
||||
#endif
|
||||
{"test_get_info", test_get_info, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
|
||||
{"test_conc117", test_conc117, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
|
||||
{"test_conc_114", test_conc_114, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
|
||||
{"test_connect_attrs", test_connect_attrs, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
|
||||
|
Reference in New Issue
Block a user