Moved proxysql_find_charset_* functions out of MySQL_Thread.cpp

v2.x_cleanup231208
René Cannaò 2 years ago
parent 1e98de78af
commit 699fe7efcd

@ -10,9 +10,6 @@
class MySQL_Session;
extern const MARIADB_CHARSET_INFO * proxysql_find_charset_nr(unsigned int nr);
extern MARIADB_CHARSET_INFO * proxysql_find_charset_name(const char *name);
extern MARIADB_CHARSET_INFO * proxysql_find_charset_collate(const char *collatename);
extern void print_backtrace(void);
typedef bool (*verify_var)(MySQL_Session* session, int idx, uint32_t client_hash, uint32_t server_hash);

@ -0,0 +1,7 @@
#include "mysql.h"
#include "mariadb_com.h"
MARIADB_CHARSET_INFO * proxysql_find_charset_name(const char * const name);
MARIADB_CHARSET_INFO * proxysql_find_charset_collate_names(const char *csname, const char *collatename);
const MARIADB_CHARSET_INFO * proxysql_find_charset_nr(unsigned int nr);
MARIADB_CHARSET_INFO * proxysql_find_charset_collate(const char *collatename);

@ -144,7 +144,8 @@ MYCXXFLAGS=-std=c++11 $(MYCFLAGS) $(PSQLCH) $(ENABLE_EPOLL)
default: libproxysql.a
.PHONY: default
_OBJ_CXX = ProxySQL_GloVars.oo network.oo debug.oo configfile.oo Query_Cache.oo SpookyV2.oo MySQL_Authentication.oo gen_utils.oo sqlite3db.oo mysql_connection.oo MySQL_HostGroups_Manager.oo mysql_data_stream.oo MySQL_Thread.oo MySQL_Session.oo MySQL_Protocol.oo mysql_backend.oo Query_Processor.oo ProxySQL_Admin.oo ProxySQL_Config.oo ProxySQL_Restapi.oo MySQL_Monitor.oo MySQL_Logger.oo thread.oo MySQL_PreparedStatement.oo ProxySQL_Cluster.oo ClickHouse_Authentication.oo ClickHouse_Server.oo ProxySQL_Statistics.oo Chart_bundle_js.oo ProxySQL_HTTP_Server.oo ProxySQL_RESTAPI_Server.oo font-awesome.min.css.oo main-bundle.min.css.oo set_parser.oo MySQL_Variables.oo c_tokenizer.oo proxysql_utils.oo proxysql_coredump.oo proxysql_sslkeylog.oo
_OBJ_CXX = ProxySQL_GloVars.oo network.oo debug.oo configfile.oo Query_Cache.oo SpookyV2.oo MySQL_Authentication.oo gen_utils.oo sqlite3db.oo mysql_connection.oo MySQL_HostGroups_Manager.oo mysql_data_stream.oo MySQL_Thread.oo MySQL_Session.oo MySQL_Protocol.oo mysql_backend.oo Query_Processor.oo ProxySQL_Admin.oo ProxySQL_Config.oo ProxySQL_Restapi.oo MySQL_Monitor.oo MySQL_Logger.oo thread.oo MySQL_PreparedStatement.oo ProxySQL_Cluster.oo ClickHouse_Authentication.oo ClickHouse_Server.oo ProxySQL_Statistics.oo Chart_bundle_js.oo ProxySQL_HTTP_Server.oo ProxySQL_RESTAPI_Server.oo font-awesome.min.css.oo main-bundle.min.css.oo set_parser.oo MySQL_Variables.oo c_tokenizer.oo proxysql_utils.oo proxysql_coredump.oo proxysql_sslkeylog.oo \
proxysql_find_charset.oo
OBJ_CXX = $(patsubst %,$(ODIR)/%,$(_OBJ_CXX))
HEADERS = ../include/*.h ../include/*.hpp

@ -32,8 +32,7 @@ extern ClickHouse_Authentication *GloClickHouseAuth;
#define CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA 0x00200000
#endif
extern const MARIADB_CHARSET_INFO * proxysql_find_charset_nr(unsigned int nr);
MARIADB_CHARSET_INFO * proxysql_find_charset_name(const char *name);
#include "proxysql_find_charset.h"
#ifdef DEBUG
static void __dump_pkt(const char *func, unsigned char *_ptr, unsigned int len) {

@ -119,10 +119,7 @@ static const std::set<std::string> mysql_variables_strings = {
"wsrep_osu_method",
};
extern MARIADB_CHARSET_INFO * proxysql_find_charset_name(const char * const name);
extern MARIADB_CHARSET_INFO * proxysql_find_charset_collate_names(const char *csname, const char *collatename);
extern const MARIADB_CHARSET_INFO * proxysql_find_charset_nr(unsigned int nr);
extern MARIADB_CHARSET_INFO * proxysql_find_charset_collate(const char *collatename);
#include "proxysql_find_charset.h"
extern MySQL_Authentication *GloMyAuth;
extern MySQL_LDAP_Authentication *GloMyLdapAuth;

@ -105,71 +105,6 @@ mythr_g_st_vars_t MySQL_Thread_status_variables_gauge_array[] {
extern mysql_variable_st mysql_tracked_variables[];
const MARIADB_CHARSET_INFO * proxysql_find_charset_nr(unsigned int nr) {
const MARIADB_CHARSET_INFO * c = mariadb_compiled_charsets;
do {
if (c->nr == nr) {
return c;
}
++c;
} while (c[0].nr != 0);
return NULL;
}
MARIADB_CHARSET_INFO * proxysql_find_charset_name(const char *name_) {
MARIADB_CHARSET_INFO *c = (MARIADB_CHARSET_INFO *)mariadb_compiled_charsets;
const char *name;
if (strcasecmp(name_,(const char *)"utf8mb3")==0) {
name = (const char *)"utf8";
} else {
name = name_;
}
do {
if (!strcasecmp(c->csname, name)) {
return c;
}
++c;
} while (c[0].nr != 0);
return NULL;
}
MARIADB_CHARSET_INFO * proxysql_find_charset_collate_names(const char *csname_, const char *collatename_) {
MARIADB_CHARSET_INFO *c = (MARIADB_CHARSET_INFO *)mariadb_compiled_charsets;
char buf[64];
const char *csname;
const char *collatename;
if (strcasecmp(csname_,(const char *)"utf8mb3")==0) {
csname = (const char *)"utf8";
} else {
csname = csname_;
}
if (strncasecmp(collatename_,(const char *)"utf8mb3", 7)==0) {
memcpy(buf,(const char *)"utf8",4);
strcpy(buf+4,collatename_+7);
collatename = buf;
} else {
collatename = collatename_;
}
do {
if (!strcasecmp(c->csname, csname) && !strcasecmp(c->name, collatename)) {
return c;
}
++c;
} while (c[0].nr != 0);
return NULL;
}
MARIADB_CHARSET_INFO * proxysql_find_charset_collate(const char *collatename) {
MARIADB_CHARSET_INFO *c = (MARIADB_CHARSET_INFO *)mariadb_compiled_charsets;
do {
if (!strcasecmp(c->name, collatename)) {
return c;
}
++c;
} while (c[0].nr != 0);
return NULL;
}
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

@ -17,6 +17,7 @@ static inline char is_digit(char c) {
return 0;
}
#include "proxysql_find_charset.h"
verify_var MySQL_Variables::verifiers[SQL_NAME_LAST_HIGH_WM];
update_var MySQL_Variables::updaters[SQL_NAME_LAST_HIGH_WM];

@ -102,7 +102,7 @@ extern char *ssl_ca_fp;
int admin___web_verbosity = 0;
char * proxysql_version = NULL;
MARIADB_CHARSET_INFO * proxysql_find_charset_name(const char *name);
#include "proxysql_find_charset.h"
static const vector<string> mysql_servers_tablenames = {

@ -107,8 +107,7 @@ void ma_free_root(MA_MEM_ROOT *root, myf MyFlags)
extern char * binary_sha1;
extern const MARIADB_CHARSET_INFO * proxysql_find_charset_nr(unsigned int nr);
MARIADB_CHARSET_INFO * proxysql_find_charset_name(const char *name);
#include "proxysql_find_charset.h"
void Variable::fill_server_internal_session(json &j, int conn_num, int idx) {
if (idx == SQL_CHARACTER_SET_RESULTS || idx == SQL_CHARACTER_SET_CLIENT || idx == SQL_CHARACTER_SET_DATABASE) {

@ -0,0 +1,67 @@
#include "proxysql_find_charset.h"
#include <string.h>
const MARIADB_CHARSET_INFO * proxysql_find_charset_nr(unsigned int nr) {
const MARIADB_CHARSET_INFO * c = mariadb_compiled_charsets;
do {
if (c->nr == nr) {
return c;
}
++c;
} while (c[0].nr != 0);
return NULL;
}
MARIADB_CHARSET_INFO * proxysql_find_charset_name(const char *name_) {
MARIADB_CHARSET_INFO *c = (MARIADB_CHARSET_INFO *)mariadb_compiled_charsets;
const char *name;
if (strcasecmp(name_,(const char *)"utf8mb3")==0) {
name = (const char *)"utf8";
} else {
name = name_;
}
do {
if (!strcasecmp(c->csname, name)) {
return c;
}
++c;
} while (c[0].nr != 0);
return NULL;
}
MARIADB_CHARSET_INFO * proxysql_find_charset_collate_names(const char *csname_, const char *collatename_) {
MARIADB_CHARSET_INFO *c = (MARIADB_CHARSET_INFO *)mariadb_compiled_charsets;
char buf[64];
const char *csname;
const char *collatename;
if (strcasecmp(csname_,(const char *)"utf8mb3")==0) {
csname = (const char *)"utf8";
} else {
csname = csname_;
}
if (strncasecmp(collatename_,(const char *)"utf8mb3", 7)==0) {
memcpy(buf,(const char *)"utf8",4);
strcpy(buf+4,collatename_+7);
collatename = buf;
} else {
collatename = collatename_;
}
do {
if (!strcasecmp(c->csname, csname) && !strcasecmp(c->name, collatename)) {
return c;
}
++c;
} while (c[0].nr != 0);
return NULL;
}
MARIADB_CHARSET_INFO * proxysql_find_charset_collate(const char *collatename) {
MARIADB_CHARSET_INFO *c = (MARIADB_CHARSET_INFO *)mariadb_compiled_charsets;
do {
if (!strcasecmp(c->name, collatename)) {
return c;
}
++c;
} while (c[0].nr != 0);
return NULL;
}
Loading…
Cancel
Save