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
Move mariadb specific client flags and server capabilities to mysql->extension
This commit is contained in:
@@ -84,6 +84,8 @@ struct st_mariadb_session_state
|
||||
struct st_mariadb_extension {
|
||||
MA_CONNECTION_HANDLER *conn_hdlr;
|
||||
struct st_mariadb_session_state session_state[SESSION_TRACK_TYPES];
|
||||
unsigned long mariadb_client_flag; /* MariaDB specific client flags */
|
||||
unsigned long mariadb_server_capabilities; /* MariaDB specific server capabilities */
|
||||
};
|
||||
|
||||
#define OPT_HAS_EXT_VAL(a,key) \
|
||||
|
@@ -171,7 +171,8 @@ enum enum_server_command
|
||||
!(mysql->server_capabilities & CLIENT_MYSQL)
|
||||
|
||||
#define MARIADB_CLIENT_SUPPORTED_FLAGS (MARIADB_CLIENT_PROGRESS |\
|
||||
MARIADB_CLIENT_COM_MULTI)
|
||||
MARIADB_CLIENT_COM_MULTI |\
|
||||
MARIADB_CLIENT_STMT_BULK_OPERATIONS)
|
||||
|
||||
#define CLIENT_SUPPORTED_FLAGS (CLIENT_MYSQL |\
|
||||
CLIENT_FOUND_ROWS |\
|
||||
|
@@ -44,8 +44,6 @@ typedef char my_bool;
|
||||
#define STDCALL __stdcall
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifndef my_socket_defined
|
||||
#define my_socket_defined
|
||||
#if defined(_WIN64)
|
||||
@@ -335,8 +333,8 @@ struct st_mysql_options {
|
||||
unsigned long thread_id; /* Id for connection in server */
|
||||
unsigned long packet_length;
|
||||
unsigned int port;
|
||||
unsigned long long client_flag;
|
||||
unsigned long long server_capabilities; /* changed from long to longlong in 10.2 protocol */
|
||||
unsigned long client_flag;
|
||||
unsigned long server_capabilities;
|
||||
unsigned int protocol_version;
|
||||
unsigned int field_count;
|
||||
unsigned int server_status;
|
||||
|
@@ -206,7 +206,7 @@ restart:
|
||||
|
||||
if (last_errno== 65535 &&
|
||||
((mariadb_connection(mysql) && (mysql->server_capabilities & CLIENT_PROGRESS)) ||
|
||||
(!(mysql->server_capabilities & CLIENT_MYSQL) && mysql->server_capabilities & MARIADB_CLIENT_PROGRESS)))
|
||||
(!(mysql->extension->mariadb_server_capabilities & MARIADB_CLIENT_PROGRESS >> 32))))
|
||||
{
|
||||
if (cli_report_progress(mysql, (uchar *)pos, (uint) (len-1)))
|
||||
{
|
||||
@@ -1371,7 +1371,7 @@ MYSQL *mthd_my_real_connect(MYSQL *mysql, const char *host, const char *user,
|
||||
/* check if MariaD2B specific capabilities are available */
|
||||
if (is_maria && !(mysql->server_capabilities & CLIENT_MYSQL))
|
||||
{
|
||||
mysql->server_capabilities|= (ulonglong) uint4korr(end + 14) << 32;
|
||||
mysql->extension->mariadb_server_capabilities= (ulonglong) uint4korr(end + 14);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -54,6 +54,7 @@
|
||||
#include <signal.h>
|
||||
#include <time.h>
|
||||
#include <mysql/client_plugin.h>
|
||||
#include <ma_common.h>
|
||||
|
||||
#define STMT_NUM_OFS(type, a,r) ((type *)(a))[r]
|
||||
#define MADB_RESET_ERROR 1
|
||||
@@ -598,7 +599,7 @@ unsigned char* mysql_stmt_execute_generate_request(MYSQL_STMT *stmt, size_t *req
|
||||
uint i, j, num_rows= 1;
|
||||
my_bool bulk_supported= stmt->array_size > 0 &&
|
||||
(!(stmt->mysql->server_capabilities & CLIENT_MYSQL) &&
|
||||
(stmt->mysql->server_capabilities & MARIADB_CLIENT_STMT_BULK_OPERATIONS));
|
||||
(stmt->mysql->extension->mariadb_server_capabilities & MARIADB_CLIENT_STMT_BULK_OPERATIONS >> 32));
|
||||
|
||||
uchar *start= NULL, *p;
|
||||
|
||||
|
@@ -218,8 +218,8 @@ static int send_client_reply_packet(MCPVIO_EXT *mpvio,
|
||||
memset(buff + 9, 0, 32-9);
|
||||
if (!(mysql->server_capabilities & CLIENT_MYSQL))
|
||||
{
|
||||
mysql->client_flag |= MARIADB_CLIENT_SUPPORTED_FLAGS;
|
||||
int4store(buff + 28, mysql->client_flag >> 32);
|
||||
mysql->extension->mariadb_client_flag = MARIADB_CLIENT_SUPPORTED_FLAGS >> 32;
|
||||
int4store(buff + 28, mysql->extension->mariadb_client_flag);
|
||||
}
|
||||
end= buff+32;
|
||||
}
|
||||
|
@@ -921,7 +921,7 @@ static int test_sess_track_db(MYSQL *mysql)
|
||||
|
||||
if (!(mysql->server_capabilities & CLIENT_SESSION_TRACKING))
|
||||
{
|
||||
diag("Server doesn't support session tracking (cap=%llu)", mysql->server_capabilities);
|
||||
diag("Server doesn't support session tracking (cap=%lu)", mysql->server_capabilities);
|
||||
return SKIP;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user