Skip to content

Commit e1f9a80

Browse files
Alexey Botchkovsanja-byelkin
authored andcommitted
MDEV-19275 SQL service for plugins.
host/user/db arguments of the mysql_real_connect_local() are removed.
1 parent 74daa97 commit e1f9a80

File tree

10 files changed

+28
-65
lines changed

10 files changed

+28
-65
lines changed

include/mysql/plugin_audit.h.pp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -467,9 +467,7 @@
467467
extern "C" {
468468
extern struct sql_service_st {
469469
MYSQL *(STDCALL *mysql_init_func)(MYSQL *mysql);
470-
MYSQL *(*mysql_real_connect_local_func)(MYSQL *mysql,
471-
const char *host, const char *user, const char *db,
472-
unsigned long clientflag);
470+
MYSQL *(*mysql_real_connect_local_func)(MYSQL *mysql);
473471
MYSQL *(STDCALL *mysql_real_connect_func)(MYSQL *mysql, const char *host,
474472
const char *user, const char *passwd, const char *db, unsigned int port,
475473
const char *unix_socket, unsigned long clientflag);
@@ -484,9 +482,7 @@
484482
MYSQL_ROW (STDCALL *mysql_fetch_row_func)(MYSQL_RES *result);
485483
void (STDCALL *mysql_close_func)(MYSQL *mysql);
486484
} *sql_service;
487-
MYSQL *mysql_real_connect_local(MYSQL *mysql,
488-
const char *host, const char *user, const char *db,
489-
unsigned long clientflag);
485+
MYSQL *mysql_real_connect_local(MYSQL *mysql);
490486
}
491487
}
492488
struct st_mysql_xid {

include/mysql/plugin_auth.h.pp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -467,9 +467,7 @@
467467
extern "C" {
468468
extern struct sql_service_st {
469469
MYSQL *(STDCALL *mysql_init_func)(MYSQL *mysql);
470-
MYSQL *(*mysql_real_connect_local_func)(MYSQL *mysql,
471-
const char *host, const char *user, const char *db,
472-
unsigned long clientflag);
470+
MYSQL *(*mysql_real_connect_local_func)(MYSQL *mysql);
473471
MYSQL *(STDCALL *mysql_real_connect_func)(MYSQL *mysql, const char *host,
474472
const char *user, const char *passwd, const char *db, unsigned int port,
475473
const char *unix_socket, unsigned long clientflag);
@@ -484,9 +482,7 @@
484482
MYSQL_ROW (STDCALL *mysql_fetch_row_func)(MYSQL_RES *result);
485483
void (STDCALL *mysql_close_func)(MYSQL *mysql);
486484
} *sql_service;
487-
MYSQL *mysql_real_connect_local(MYSQL *mysql,
488-
const char *host, const char *user, const char *db,
489-
unsigned long clientflag);
485+
MYSQL *mysql_real_connect_local(MYSQL *mysql);
490486
}
491487
}
492488
struct st_mysql_xid {

include/mysql/plugin_data_type.h.pp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -467,9 +467,7 @@
467467
extern "C" {
468468
extern struct sql_service_st {
469469
MYSQL *(STDCALL *mysql_init_func)(MYSQL *mysql);
470-
MYSQL *(*mysql_real_connect_local_func)(MYSQL *mysql,
471-
const char *host, const char *user, const char *db,
472-
unsigned long clientflag);
470+
MYSQL *(*mysql_real_connect_local_func)(MYSQL *mysql);
473471
MYSQL *(STDCALL *mysql_real_connect_func)(MYSQL *mysql, const char *host,
474472
const char *user, const char *passwd, const char *db, unsigned int port,
475473
const char *unix_socket, unsigned long clientflag);
@@ -484,9 +482,7 @@
484482
MYSQL_ROW (STDCALL *mysql_fetch_row_func)(MYSQL_RES *result);
485483
void (STDCALL *mysql_close_func)(MYSQL *mysql);
486484
} *sql_service;
487-
MYSQL *mysql_real_connect_local(MYSQL *mysql,
488-
const char *host, const char *user, const char *db,
489-
unsigned long clientflag);
485+
MYSQL *mysql_real_connect_local(MYSQL *mysql);
490486
}
491487
}
492488
struct st_mysql_xid {

include/mysql/plugin_encryption.h.pp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -467,9 +467,7 @@
467467
extern "C" {
468468
extern struct sql_service_st {
469469
MYSQL *(STDCALL *mysql_init_func)(MYSQL *mysql);
470-
MYSQL *(*mysql_real_connect_local_func)(MYSQL *mysql,
471-
const char *host, const char *user, const char *db,
472-
unsigned long clientflag);
470+
MYSQL *(*mysql_real_connect_local_func)(MYSQL *mysql);
473471
MYSQL *(STDCALL *mysql_real_connect_func)(MYSQL *mysql, const char *host,
474472
const char *user, const char *passwd, const char *db, unsigned int port,
475473
const char *unix_socket, unsigned long clientflag);
@@ -484,9 +482,7 @@
484482
MYSQL_ROW (STDCALL *mysql_fetch_row_func)(MYSQL_RES *result);
485483
void (STDCALL *mysql_close_func)(MYSQL *mysql);
486484
} *sql_service;
487-
MYSQL *mysql_real_connect_local(MYSQL *mysql,
488-
const char *host, const char *user, const char *db,
489-
unsigned long clientflag);
485+
MYSQL *mysql_real_connect_local(MYSQL *mysql);
490486
}
491487
}
492488
struct st_mysql_xid {

include/mysql/plugin_ftparser.h.pp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -467,9 +467,7 @@
467467
extern "C" {
468468
extern struct sql_service_st {
469469
MYSQL *(STDCALL *mysql_init_func)(MYSQL *mysql);
470-
MYSQL *(*mysql_real_connect_local_func)(MYSQL *mysql,
471-
const char *host, const char *user, const char *db,
472-
unsigned long clientflag);
470+
MYSQL *(*mysql_real_connect_local_func)(MYSQL *mysql);
473471
MYSQL *(STDCALL *mysql_real_connect_func)(MYSQL *mysql, const char *host,
474472
const char *user, const char *passwd, const char *db, unsigned int port,
475473
const char *unix_socket, unsigned long clientflag);
@@ -484,9 +482,7 @@
484482
MYSQL_ROW (STDCALL *mysql_fetch_row_func)(MYSQL_RES *result);
485483
void (STDCALL *mysql_close_func)(MYSQL *mysql);
486484
} *sql_service;
487-
MYSQL *mysql_real_connect_local(MYSQL *mysql,
488-
const char *host, const char *user, const char *db,
489-
unsigned long clientflag);
485+
MYSQL *mysql_real_connect_local(MYSQL *mysql);
490486
}
491487
}
492488
struct st_mysql_xid {

include/mysql/plugin_function.h.pp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -467,9 +467,7 @@
467467
extern "C" {
468468
extern struct sql_service_st {
469469
MYSQL *(STDCALL *mysql_init_func)(MYSQL *mysql);
470-
MYSQL *(*mysql_real_connect_local_func)(MYSQL *mysql,
471-
const char *host, const char *user, const char *db,
472-
unsigned long clientflag);
470+
MYSQL *(*mysql_real_connect_local_func)(MYSQL *mysql);
473471
MYSQL *(STDCALL *mysql_real_connect_func)(MYSQL *mysql, const char *host,
474472
const char *user, const char *passwd, const char *db, unsigned int port,
475473
const char *unix_socket, unsigned long clientflag);
@@ -484,9 +482,7 @@
484482
MYSQL_ROW (STDCALL *mysql_fetch_row_func)(MYSQL_RES *result);
485483
void (STDCALL *mysql_close_func)(MYSQL *mysql);
486484
} *sql_service;
487-
MYSQL *mysql_real_connect_local(MYSQL *mysql,
488-
const char *host, const char *user, const char *db,
489-
unsigned long clientflag);
485+
MYSQL *mysql_real_connect_local(MYSQL *mysql);
490486
}
491487
}
492488
struct st_mysql_xid {

include/mysql/plugin_password_validation.h.pp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -467,9 +467,7 @@
467467
extern "C" {
468468
extern struct sql_service_st {
469469
MYSQL *(STDCALL *mysql_init_func)(MYSQL *mysql);
470-
MYSQL *(*mysql_real_connect_local_func)(MYSQL *mysql,
471-
const char *host, const char *user, const char *db,
472-
unsigned long clientflag);
470+
MYSQL *(*mysql_real_connect_local_func)(MYSQL *mysql);
473471
MYSQL *(STDCALL *mysql_real_connect_func)(MYSQL *mysql, const char *host,
474472
const char *user, const char *passwd, const char *db, unsigned int port,
475473
const char *unix_socket, unsigned long clientflag);
@@ -484,9 +482,7 @@
484482
MYSQL_ROW (STDCALL *mysql_fetch_row_func)(MYSQL_RES *result);
485483
void (STDCALL *mysql_close_func)(MYSQL *mysql);
486484
} *sql_service;
487-
MYSQL *mysql_real_connect_local(MYSQL *mysql,
488-
const char *host, const char *user, const char *db,
489-
unsigned long clientflag);
485+
MYSQL *mysql_real_connect_local(MYSQL *mysql);
490486
}
491487
}
492488
struct st_mysql_xid {

include/mysql/service_sql.h

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,7 @@ extern "C" {
4848

4949
extern struct sql_service_st {
5050
MYSQL *(STDCALL *mysql_init_func)(MYSQL *mysql);
51-
MYSQL *(*mysql_real_connect_local_func)(MYSQL *mysql,
52-
const char *host, const char *user, const char *db,
53-
unsigned long clientflag);
51+
MYSQL *(*mysql_real_connect_local_func)(MYSQL *mysql);
5452
MYSQL *(STDCALL *mysql_real_connect_func)(MYSQL *mysql, const char *host,
5553
const char *user, const char *passwd, const char *db, unsigned int port,
5654
const char *unix_socket, unsigned long clientflag);
@@ -69,7 +67,7 @@ extern struct sql_service_st {
6967
#ifdef MYSQL_DYNAMIC_PLUGIN
7068

7169
#define mysql_init(M) sql_service->mysql_init_func(M)
72-
#define mysql_real_connect_local(M,H,U,D,F) sql_service->mysql_real_connect_local_func(M,H,U,D,F)
70+
#define mysql_real_connect_local(M) sql_service->mysql_real_connect_local_func(M)
7371
#define mysql_real_connect(M,H,U,PW,D,P,S,F) sql_service->mysql_real_connect_func(M,H,U,PW,D,P,S,F)
7472
#define mysql_errno(M) sql_service->mysql_errno_func(M)
7573
#define mysql_error(M) sql_service->mysql_error_func(M)
@@ -83,9 +81,14 @@ extern struct sql_service_st {
8381

8482
#else
8583

86-
MYSQL *mysql_real_connect_local(MYSQL *mysql,
87-
const char *host, const char *user, const char *db,
88-
unsigned long clientflag);
84+
/*
85+
Establishes the connection to the 'local' server that started the plugin.
86+
Like the mysql_real_connect() does for the remote server.
87+
The established connection has no user/host associated to it,
88+
neither it has the current db, so the queries should have
89+
database/table name specified.
90+
*/
91+
MYSQL *mysql_real_connect_local(MYSQL *mysql);
8992

9093
/* The rest of the function declarations mest be taken from the mysql.h */
9194

plugin/test_sql_service/test_sql_service.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ static int do_tests()
104104
int result= 1;
105105

106106
mysql= mysql_init(NULL);
107-
if (mysql_real_connect_local(mysql, NULL, NULL, NULL, 0) == NULL)
107+
if (mysql_real_connect_local(mysql) == NULL)
108108
return 1;
109109

110110
if (run_queries(mysql))
@@ -188,7 +188,7 @@ static int run_sql_local(MYSQL_THD thd, struct st_mysql_sys_var *var, void *save
188188
int result= 1;
189189

190190
mysql= mysql_init(NULL);
191-
if (mysql_real_connect_local(mysql, NULL, NULL, NULL, 0) == NULL)
191+
if (mysql_real_connect_local(mysql) == NULL)
192192
return 1;
193193

194194
if (run_sql(mysql, save, value))
@@ -217,7 +217,7 @@ static int test_sql_service_plugin_init(void *p __attribute__((unused)))
217217
global_mysql= mysql_init(NULL);
218218

219219
if (!global_mysql ||
220-
mysql_real_connect_local(global_mysql, NULL, NULL, NULL, 0) == NULL)
220+
mysql_real_connect_local(global_mysql) == NULL)
221221
return 1;
222222

223223
init_done= 1;

sql/sql_prepare.cc

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6344,9 +6344,7 @@ static MYSQL_METHODS local_methods=
63446344

63456345
Atomic_counter<uint32_t> local_connection_thread_count;
63466346

6347-
extern "C" MYSQL *mysql_real_connect_local(MYSQL *mysql,
6348-
const char *host, const char *user, const char *db,
6349-
unsigned long clientflag)
6347+
extern "C" MYSQL *mysql_real_connect_local(MYSQL *mysql)
63506348
{
63516349
THD *thd_orig= current_thd;
63526350
THD *new_thd;
@@ -6360,17 +6358,7 @@ extern "C" MYSQL *mysql_real_connect_local(MYSQL *mysql,
63606358
DBUG_RETURN(0);
63616359
}
63626360

6363-
if (!host || !host[0])
6364-
host= mysql->options.host;
6365-
63666361
mysql->methods= &local_methods;
6367-
6368-
if (!db || !db[0])
6369-
db=mysql->options.db;
6370-
6371-
if (!user || !user[0])
6372-
user=mysql->options.user;
6373-
63746362
mysql->user= NULL;
63756363

63766364
mysql->info_buffer= (char *) my_malloc(PSI_INSTRUMENT_ME,

0 commit comments

Comments
 (0)