Commit 09be96ff authored by Kentoku SHIBA's avatar Kentoku SHIBA

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

parent 5585c9f9
...@@ -141,21 +141,42 @@ bool spider_db_util::tables_on_different_db_are_joinable() ...@@ -141,21 +141,42 @@ bool spider_db_util::tables_on_different_db_are_joinable()
{ {
DBUG_ENTER("spider_db_util::tables_on_different_db_are_joinable"); DBUG_ENTER("spider_db_util::tables_on_different_db_are_joinable");
DBUG_PRINT("info",("spider this=%p", this)); DBUG_PRINT("info",("spider this=%p", this));
DBUG_RETURN(TRUE); DBUG_RETURN(FALSE);
} }
bool spider_db_util::socket_has_default_value() bool spider_db_util::socket_has_default_value()
{ {
DBUG_ENTER("spider_db_util::socket_has_default_value"); DBUG_ENTER("spider_db_util::socket_has_default_value");
DBUG_PRINT("info",("spider this=%p", this)); DBUG_PRINT("info",("spider this=%p", this));
DBUG_RETURN(TRUE); DBUG_RETURN(FALSE);
} }
bool spider_db_util::database_has_default_value() bool spider_db_util::database_has_default_value()
{ {
DBUG_ENTER("spider_db_util::database_has_default_value"); DBUG_ENTER("spider_db_util::database_has_default_value");
DBUG_PRINT("info",("spider this=%p", this)); DBUG_PRINT("info",("spider this=%p", this));
DBUG_RETURN(TRUE); DBUG_RETURN(FALSE);
}
bool spider_db_util::default_file_has_default_value()
{
DBUG_ENTER("spider_db_util::default_file_has_default_value");
DBUG_PRINT("info",("spider this=%p", this));
DBUG_RETURN(FALSE);
}
bool spider_db_util::host_has_default_value()
{
DBUG_ENTER("spider_db_util::host_has_default_value");
DBUG_PRINT("info",("spider this=%p", this));
DBUG_RETURN(FALSE);
}
bool spider_db_util::port_has_default_value()
{
DBUG_ENTER("spider_db_util::port_has_default_value");
DBUG_PRINT("info",("spider this=%p", this));
DBUG_RETURN(FALSE);
} }
bool spider_db_util::append_charset_name_before_string() bool spider_db_util::append_charset_name_before_string()
......
...@@ -961,6 +961,9 @@ class spider_db_util ...@@ -961,6 +961,9 @@ class spider_db_util
virtual bool tables_on_different_db_are_joinable(); virtual bool tables_on_different_db_are_joinable();
virtual bool socket_has_default_value(); virtual bool socket_has_default_value();
virtual bool database_has_default_value(); virtual bool database_has_default_value();
virtual bool default_file_has_default_value();
virtual bool host_has_default_value();
virtual bool port_has_default_value();
virtual bool append_charset_name_before_string(); virtual bool append_charset_name_before_string();
virtual uint limit_mode(); virtual uint limit_mode();
}; };
......
...@@ -7280,6 +7280,48 @@ int spider_db_mbase_util::append_having( ...@@ -7280,6 +7280,48 @@ int spider_db_mbase_util::append_having(
} }
#endif #endif
bool spider_db_mbase_util::tables_on_different_db_are_joinable()
{
DBUG_ENTER("spider_db_mbase_util::tables_on_different_db_are_joinable");
DBUG_PRINT("info",("spider this=%p", this));
DBUG_RETURN(TRUE);
}
bool spider_db_mbase_util::socket_has_default_value()
{
DBUG_ENTER("spider_db_mbase_util::socket_has_default_value");
DBUG_PRINT("info",("spider this=%p", this));
DBUG_RETURN(TRUE);
}
bool spider_db_mbase_util::database_has_default_value()
{
DBUG_ENTER("spider_db_mbase_util::database_has_default_value");
DBUG_PRINT("info",("spider this=%p", this));
DBUG_RETURN(TRUE);
}
bool spider_db_mbase_util::default_file_has_default_value()
{
DBUG_ENTER("spider_db_mbase_util::default_file_has_default_value");
DBUG_PRINT("info",("spider this=%p", this));
DBUG_RETURN(TRUE);
}
bool spider_db_mbase_util::host_has_default_value()
{
DBUG_ENTER("spider_db_mbase_util::host_has_default_value");
DBUG_PRINT("info",("spider this=%p", this));
DBUG_RETURN(TRUE);
}
bool spider_db_mbase_util::port_has_default_value()
{
DBUG_ENTER("spider_db_mbase_util::port_has_default_value");
DBUG_PRINT("info",("spider this=%p", this));
DBUG_RETURN(TRUE);
}
bool spider_db_mbase_util::append_charset_name_before_string() bool spider_db_mbase_util::append_charset_name_before_string()
{ {
DBUG_ENTER("spider_db_mbase_util::append_charset_name_before_string"); DBUG_ENTER("spider_db_mbase_util::append_charset_name_before_string");
......
...@@ -199,6 +199,12 @@ class spider_db_mbase_util: public spider_db_util ...@@ -199,6 +199,12 @@ class spider_db_mbase_util: public spider_db_util
spider_string *str spider_string *str
); );
#endif #endif
bool tables_on_different_db_are_joinable();
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();
bool append_charset_name_before_string(); bool append_charset_name_before_string();
}; };
......
...@@ -313,8 +313,14 @@ int spider_udf_direct_sql_create_conn_key( ...@@ -313,8 +313,14 @@ int spider_udf_direct_sql_create_conn_key(
*direct_sql->conn_key = '0' + direct_sql->connection_channel; *direct_sql->conn_key = '0' + direct_sql->connection_channel;
DBUG_PRINT("info",("spider tgt_wrapper=%s", direct_sql->tgt_wrapper)); DBUG_PRINT("info",("spider tgt_wrapper=%s", direct_sql->tgt_wrapper));
tmp_name = strmov(direct_sql->conn_key + 1, 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)); if (direct_sql->tgt_host)
tmp_name = strmov(tmp_name + 1, 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)); my_sprintf(port_str, (port_str, "%05ld", direct_sql->tgt_port));
DBUG_PRINT("info",("spider port_str=%s", port_str)); DBUG_PRINT("info",("spider port_str=%s", port_str));
tmp_name = strmov(tmp_name + 1, port_str); tmp_name = strmov(tmp_name + 1, port_str);
...@@ -1429,8 +1435,14 @@ int spider_udf_set_direct_sql_param_default( ...@@ -1429,8 +1435,14 @@ int spider_udf_set_direct_sql_param_default(
) { ) {
bool check_socket; bool check_socket;
bool check_database; bool check_database;
bool check_default_file;
bool check_host;
bool check_port;
bool socket_has_default_value; bool socket_has_default_value;
bool database_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; int error_num, roop_count;
DBUG_ENTER("spider_udf_set_direct_sql_param_default"); DBUG_ENTER("spider_udf_set_direct_sql_param_default");
if (direct_sql->server_name) if (direct_sql->server_name)
...@@ -1456,10 +1468,35 @@ int spider_udf_set_direct_sql_param_default( ...@@ -1456,10 +1468,35 @@ int spider_udf_set_direct_sql_param_default(
} else { } else {
check_database = FALSE; 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; socket_has_default_value = check_socket;
database_has_default_value = check_database; 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) if (direct_sql->tgt_wrapper)
{ {
for (roop_count = 0; roop_count < SPIDER_DBTON_SIZE; roop_count++) for (roop_count = 0; roop_count < SPIDER_DBTON_SIZE; roop_count++)
...@@ -1487,6 +1524,21 @@ int spider_udf_set_direct_sql_param_default( ...@@ -1487,6 +1524,21 @@ int spider_udf_set_direct_sql_param_default(
database_has_default_value = spider_dbton[roop_count]. database_has_default_value = spider_dbton[roop_count].
db_util->database_has_default_value(); 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; break;
} }
} }
...@@ -1495,6 +1547,9 @@ int spider_udf_set_direct_sql_param_default( ...@@ -1495,6 +1547,9 @@ int spider_udf_set_direct_sql_param_default(
} else { } else {
socket_has_default_value = FALSE; socket_has_default_value = FALSE;
database_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) if (database_has_default_value)
...@@ -1525,7 +1580,7 @@ int spider_udf_set_direct_sql_param_default( ...@@ -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")); DBUG_PRINT("info",("spider create default tgt_host"));
direct_sql->tgt_host_length = strlen(my_localhost); direct_sql->tgt_host_length = strlen(my_localhost);
...@@ -1539,11 +1594,8 @@ int spider_udf_set_direct_sql_param_default( ...@@ -1539,11 +1594,8 @@ int spider_udf_set_direct_sql_param_default(
} }
} }
if ( if (default_file_has_default_value)
!direct_sql->tgt_default_file && {
direct_sql->tgt_default_group &&
(*spd_defaults_file || *spd_defaults_extra_file)
) {
DBUG_PRINT("info",("spider create default tgt_default_file")); DBUG_PRINT("info",("spider create default tgt_default_file"));
if (*spd_defaults_extra_file) if (*spd_defaults_extra_file)
{ {
...@@ -1574,7 +1626,7 @@ int spider_udf_set_direct_sql_param_default( ...@@ -1574,7 +1626,7 @@ int spider_udf_set_direct_sql_param_default(
direct_sql->access_mode = 0; direct_sql->access_mode = 0;
#endif #endif
if (direct_sql->tgt_port == -1) if (port_has_default_value)
{ {
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET) #if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
if (direct_sql->access_mode == 1) if (direct_sql->access_mode == 1)
......
...@@ -3730,8 +3730,14 @@ int spider_set_connect_info_default( ...@@ -3730,8 +3730,14 @@ int spider_set_connect_info_default(
) { ) {
bool check_socket; bool check_socket;
bool check_database; bool check_database;
bool check_default_file;
bool check_host;
bool check_port;
bool socket_has_default_value; bool socket_has_default_value;
bool database_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, roop_count2; int error_num, roop_count, roop_count2;
DBUG_ENTER("spider_set_connect_info_default"); DBUG_ENTER("spider_set_connect_info_default");
for (roop_count = 0; roop_count < (int) share->all_link_count; roop_count++) for (roop_count = 0; roop_count < (int) share->all_link_count; roop_count++)
...@@ -3759,10 +3765,35 @@ int spider_set_connect_info_default( ...@@ -3759,10 +3765,35 @@ int spider_set_connect_info_default(
} else { } else {
check_database = FALSE; check_database = FALSE;
} }
if (check_socket || check_database) if (
!share->tgt_default_files[roop_count] &&
share->tgt_default_groups[roop_count] &&
(*spd_defaults_file || *spd_defaults_extra_file)
) {
check_default_file = TRUE;
} else {
check_default_file = FALSE;
}
if (!share->tgt_hosts[roop_count])
{
check_host = TRUE;
} else {
check_host = FALSE;
}
if (share->tgt_ports[roop_count] == -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; socket_has_default_value = check_socket;
database_has_default_value = check_database; 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 (share->tgt_wrappers[roop_count]) if (share->tgt_wrappers[roop_count])
{ {
for (roop_count2 = 0; roop_count2 < SPIDER_DBTON_SIZE; roop_count2++) for (roop_count2 = 0; roop_count2 < SPIDER_DBTON_SIZE; roop_count2++)
...@@ -3790,6 +3821,21 @@ int spider_set_connect_info_default( ...@@ -3790,6 +3821,21 @@ int spider_set_connect_info_default(
database_has_default_value = spider_dbton[roop_count2]. database_has_default_value = spider_dbton[roop_count2].
db_util->database_has_default_value(); db_util->database_has_default_value();
} }
if (check_default_file)
{
default_file_has_default_value = spider_dbton[roop_count2].
db_util->default_file_has_default_value();
}
if (check_host)
{
host_has_default_value = spider_dbton[roop_count2].
db_util->host_has_default_value();
}
if (check_port)
{
port_has_default_value = spider_dbton[roop_count2].
db_util->port_has_default_value();
}
break; break;
} }
} }
...@@ -3798,6 +3844,9 @@ int spider_set_connect_info_default( ...@@ -3798,6 +3844,9 @@ int spider_set_connect_info_default(
} else { } else {
socket_has_default_value = FALSE; socket_has_default_value = FALSE;
database_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 (!share->tgt_wrappers[roop_count]) if (!share->tgt_wrappers[roop_count])
...@@ -3813,7 +3862,7 @@ int spider_set_connect_info_default( ...@@ -3813,7 +3862,7 @@ int spider_set_connect_info_default(
} }
} }
if (!share->tgt_hosts[roop_count]) if (host_has_default_value)
{ {
DBUG_PRINT("info",("spider create default tgt_hosts")); DBUG_PRINT("info",("spider create default tgt_hosts"));
share->tgt_hosts_lengths[roop_count] = strlen(my_localhost); share->tgt_hosts_lengths[roop_count] = strlen(my_localhost);
...@@ -3859,11 +3908,8 @@ int spider_set_connect_info_default( ...@@ -3859,11 +3908,8 @@ int spider_set_connect_info_default(
} }
} }
if ( if (default_file_has_default_value)
!share->tgt_default_files[roop_count] && {
share->tgt_default_groups[roop_count] &&
(*spd_defaults_file || *spd_defaults_extra_file)
) {
DBUG_PRINT("info",("spider create default tgt_default_files")); DBUG_PRINT("info",("spider create default tgt_default_files"));
if (*spd_defaults_extra_file) if (*spd_defaults_extra_file)
{ {
...@@ -3934,7 +3980,7 @@ int spider_set_connect_info_default( ...@@ -3934,7 +3980,7 @@ int spider_set_connect_info_default(
} }
*/ */
if (share->tgt_ports[roop_count] == -1) if (port_has_default_value)
{ {
share->tgt_ports[roop_count] = MYSQL_PORT; share->tgt_ports[roop_count] = MYSQL_PORT;
} else if (share->tgt_ports[roop_count] < 0) } else if (share->tgt_ports[roop_count] < 0)
...@@ -4562,9 +4608,14 @@ int spider_create_conn_keys( ...@@ -4562,9 +4608,14 @@ int spider_create_conn_keys(
DBUG_PRINT("info",("spider tgt_wrappers[%d]=%s", roop_count, DBUG_PRINT("info",("spider tgt_wrappers[%d]=%s", roop_count,
share->tgt_wrappers[roop_count])); share->tgt_wrappers[roop_count]));
tmp_name = strmov(tmp_name + 1, share->tgt_wrappers[roop_count]); tmp_name = strmov(tmp_name + 1, share->tgt_wrappers[roop_count]);
DBUG_PRINT("info",("spider tgt_hosts[%d]=%s", roop_count, if (share->tgt_hosts[roop_count])
share->tgt_hosts[roop_count])); {
tmp_name = strmov(tmp_name + 1, share->tgt_hosts[roop_count]); DBUG_PRINT("info",("spider tgt_hosts[%d]=%s", roop_count,
share->tgt_hosts[roop_count]));
tmp_name = strmov(tmp_name + 1, share->tgt_hosts[roop_count]);
} else {
tmp_name++;
}
my_sprintf(port_str, (port_str, "%05ld", share->tgt_ports[roop_count])); my_sprintf(port_str, (port_str, "%05ld", share->tgt_ports[roop_count]));
DBUG_PRINT("info",("spider port_str=%s", port_str)); DBUG_PRINT("info",("spider port_str=%s", port_str));
tmp_name = strmov(tmp_name + 1, port_str); tmp_name = strmov(tmp_name + 1, port_str);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment