1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

[Spider] Add add checking default_value for default_file, host, port

This commit is contained in:
Kentoku SHIBA
2020-08-05 10:10:33 +09:00
parent 5585c9f984
commit 09be96ff08
6 changed files with 199 additions and 24 deletions

View File

@@ -313,8 +313,14 @@ int spider_udf_direct_sql_create_conn_key(
*direct_sql->conn_key = '0' + direct_sql->connection_channel;
DBUG_PRINT("info",("spider tgt_wrapper=%s", direct_sql->tgt_wrapper));
tmp_name = strmov(direct_sql->conn_key + 1, direct_sql->tgt_wrapper);
DBUG_PRINT("info",("spider tgt_host=%s", direct_sql->tgt_host));
tmp_name = strmov(tmp_name + 1, direct_sql->tgt_host);
if (direct_sql->tgt_host)
{
DBUG_PRINT("info",("spider tgt_host=%s", direct_sql->tgt_host));
tmp_name = strmov(tmp_name + 1, direct_sql->tgt_host);
} else {
DBUG_PRINT("info",("spider tgt_host=NULL"));
tmp_name++;
}
my_sprintf(port_str, (port_str, "%05ld", direct_sql->tgt_port));
DBUG_PRINT("info",("spider port_str=%s", port_str));
tmp_name = strmov(tmp_name + 1, port_str);
@@ -1429,8 +1435,14 @@ int spider_udf_set_direct_sql_param_default(
) {
bool check_socket;
bool check_database;
bool check_default_file;
bool check_host;
bool check_port;
bool socket_has_default_value;
bool database_has_default_value;
bool default_file_has_default_value;
bool host_has_default_value;
bool port_has_default_value;
int error_num, roop_count;
DBUG_ENTER("spider_udf_set_direct_sql_param_default");
if (direct_sql->server_name)
@@ -1456,10 +1468,35 @@ int spider_udf_set_direct_sql_param_default(
} else {
check_database = FALSE;
}
if (check_socket || check_database)
if (
!direct_sql->tgt_default_file &&
direct_sql->tgt_default_group &&
(*spd_defaults_file || *spd_defaults_extra_file)
) {
check_default_file = TRUE;
} else {
check_default_file = FALSE;
}
if (!direct_sql->tgt_host)
{
check_host = TRUE;
} else {
check_host = FALSE;
}
if (direct_sql->tgt_port == -1)
{
check_port = TRUE;
} else {
check_port = FALSE;
}
if (check_socket || check_database || check_default_file || check_host ||
check_port)
{
socket_has_default_value = check_socket;
database_has_default_value = check_database;
default_file_has_default_value = check_default_file;
host_has_default_value = check_host;
port_has_default_value = check_port;
if (direct_sql->tgt_wrapper)
{
for (roop_count = 0; roop_count < SPIDER_DBTON_SIZE; roop_count++)
@@ -1487,6 +1524,21 @@ int spider_udf_set_direct_sql_param_default(
database_has_default_value = spider_dbton[roop_count].
db_util->database_has_default_value();
}
if (check_default_file)
{
default_file_has_default_value = spider_dbton[roop_count].
db_util->default_file_has_default_value();
}
if (check_host)
{
host_has_default_value = spider_dbton[roop_count].
db_util->host_has_default_value();
}
if (check_port)
{
port_has_default_value = spider_dbton[roop_count].
db_util->port_has_default_value();
}
break;
}
}
@@ -1495,6 +1547,9 @@ int spider_udf_set_direct_sql_param_default(
} else {
socket_has_default_value = FALSE;
database_has_default_value = FALSE;
default_file_has_default_value = FALSE;
host_has_default_value = FALSE;
port_has_default_value = FALSE;
}
if (database_has_default_value)
@@ -1525,7 +1580,7 @@ int spider_udf_set_direct_sql_param_default(
}
}
if (!direct_sql->tgt_host)
if (host_has_default_value)
{
DBUG_PRINT("info",("spider create default tgt_host"));
direct_sql->tgt_host_length = strlen(my_localhost);
@@ -1539,11 +1594,8 @@ int spider_udf_set_direct_sql_param_default(
}
}
if (
!direct_sql->tgt_default_file &&
direct_sql->tgt_default_group &&
(*spd_defaults_file || *spd_defaults_extra_file)
) {
if (default_file_has_default_value)
{
DBUG_PRINT("info",("spider create default tgt_default_file"));
if (*spd_defaults_extra_file)
{
@@ -1574,7 +1626,7 @@ int spider_udf_set_direct_sql_param_default(
direct_sql->access_mode = 0;
#endif
if (direct_sql->tgt_port == -1)
if (port_has_default_value)
{
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
if (direct_sql->access_mode == 1)