Skip to content

Commit 2651434

Browse files
committed
Merge branch '11.4' into mariadb-11.4.4
2 parents e9a502d + 021343d commit 2651434

File tree

6 files changed

+69
-28
lines changed

6 files changed

+69
-28
lines changed

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
MYSQL_VERSION_MAJOR=11
22
MYSQL_VERSION_MINOR=4
3-
MYSQL_VERSION_PATCH=4
3+
MYSQL_VERSION_PATCH=5
44
SERVER_MATURITY=stable

storage/spider/spd_conn.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ SPIDER_CONN *spider_create_conn(
453453
&tmp_driver,
454454
(uint) (share->tgt_drivers_lengths[link_idx] + 1),
455455
&tmp_odbc_conn_str,
456-
(uint) (share->tgt_odbc_conn_str_length + 1),
456+
(uint) (share->tgt_odbc_conn_strs_lengths[link_idx] + 1),
457457
&need_mon, (uint) (sizeof(int)),
458458
NullS))
459459
) {
@@ -530,9 +530,9 @@ SPIDER_CONN *spider_create_conn(
530530
&conn->tgt_driver_length,
531531
share->tgt_drivers_lengths[link_idx]);
532532
spider_memcpy_or_null(&conn->tgt_odbc_conn_str, tmp_odbc_conn_str,
533-
share->tgt_odbc_conn_str,
533+
share->tgt_odbc_conn_strs[link_idx],
534534
&conn->tgt_odbc_conn_str_length,
535-
share->tgt_odbc_conn_str_length);
535+
share->tgt_odbc_conn_strs_lengths[link_idx]);
536536
conn->tgt_port = share->tgt_ports[link_idx];
537537
conn->tgt_ssl_vsc = share->tgt_ssl_vscs[link_idx];
538538
conn->dbton_id = share->sql_dbton_ids[link_idx];

storage/spider/spd_direct_sql.cc

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include <my_global.h>
1919
#include "mysql_version.h"
2020
#include "sql_priv.h"
21+
#include "create_options.h"
2122
#include "probes_mysql.h"
2223
#include "sql_class.h"
2324
#include "sql_partition.h"
@@ -235,7 +236,8 @@ int spider_udf_direct_sql_create_conn_key(
235236
+ (direct_sql->tgt_default_group ? direct_sql->tgt_default_group_length + 2 : 0)
236237
+ (direct_sql->tgt_dsn ? direct_sql->tgt_dsn_length + 2 : 0)
237238
+ (direct_sql->tgt_filedsn ? direct_sql->tgt_filedsn_length + 2 : 0)
238-
+ (direct_sql->tgt_driver ? direct_sql->tgt_driver_length + 2 : 0);
239+
+ (direct_sql->tgt_driver ? direct_sql->tgt_driver_length + 2 : 0)
240+
+ (direct_sql->tgt_odbc_conn_str ? direct_sql->tgt_odbc_conn_str_length + 2 : 0);
239241
if (!(direct_sql->conn_key = (char *)
240242
spider_malloc(spider_current_trx, SPD_MID_UDF_DIRECT_SQL_CREATE_CONN_KEY_1, direct_sql->conn_key_length + 1,
241243
MYF(MY_WME | MY_ZEROFILL)))
@@ -276,6 +278,7 @@ int spider_udf_direct_sql_create_conn_key(
276278
spider_create_conn_key_add_one(&counter, &tmp_name, direct_sql->tgt_dsn);
277279
spider_create_conn_key_add_one(&counter, &tmp_name, direct_sql->tgt_filedsn);
278280
spider_create_conn_key_add_one(&counter, &tmp_name, direct_sql->tgt_driver);
281+
spider_create_conn_key_add_one(&counter, &tmp_name, direct_sql->tgt_odbc_conn_str);
279282
tmp_name++;
280283
direct_sql->conn_key_hash_value = my_calc_hash(&spider_open_connections,
281284
(uchar*) direct_sql->conn_key, direct_sql->conn_key_length);
@@ -308,7 +311,7 @@ SPIDER_CONN *spider_udf_direct_sql_create_conn(
308311
char *tmp_name, *tmp_host, *tmp_username, *tmp_password, *tmp_socket;
309312
char *tmp_wrapper, *tmp_db, *tmp_ssl_ca, *tmp_ssl_capath, *tmp_ssl_cert;
310313
char *tmp_ssl_cipher, *tmp_ssl_key, *tmp_default_file, *tmp_default_group;
311-
char *tmp_dsn, *tmp_filedsn, *tmp_driver;
314+
char *tmp_dsn, *tmp_filedsn, *tmp_driver, *tmp_odbc_conn_str;
312315
int *need_mon;
313316
bool tables_on_different_db_are_joinable = TRUE;
314317
DBUG_ENTER("spider_udf_direct_sql_create_conn");
@@ -349,6 +352,8 @@ SPIDER_CONN *spider_udf_direct_sql_create_conn(
349352
(uint) (direct_sql->tgt_filedsn_length + 1),
350353
&tmp_driver,
351354
(uint) (direct_sql->tgt_driver_length + 1),
355+
&tmp_odbc_conn_str,
356+
(uint) (direct_sql->tgt_odbc_conn_str_length + 1),
352357
&need_mon, (uint) (sizeof(int)),
353358
NullS))
354359
) {
@@ -410,6 +415,9 @@ SPIDER_CONN *spider_udf_direct_sql_create_conn(
410415
spider_maybe_memcpy_string(
411416
&conn->tgt_driver, direct_sql->tgt_driver, tmp_driver,
412417
&conn->tgt_driver_length, direct_sql->tgt_driver_length);
418+
spider_maybe_memcpy_string(
419+
&conn->tgt_odbc_conn_str, direct_sql->tgt_odbc_conn_str, tmp_odbc_conn_str,
420+
&conn->tgt_odbc_conn_str_length, direct_sql->tgt_odbc_conn_str_length);
413421
conn->tgt_ssl_vsc = direct_sql->tgt_ssl_vsc;
414422
conn->dbton_id = direct_sql->dbton_id;
415423
conn->conn_need_mon = need_mon;
@@ -1282,6 +1290,10 @@ void spider_udf_free_direct_sql_alloc(
12821290
{
12831291
spider_free(spider_current_trx, direct_sql->tgt_driver, MYF(0));
12841292
}
1293+
if (direct_sql->tgt_odbc_conn_str)
1294+
{
1295+
spider_free(spider_current_trx, direct_sql->tgt_odbc_conn_str, MYF(0));
1296+
}
12851297
if (direct_sql->conn_key)
12861298
{
12871299
spider_free(spider_current_trx, direct_sql->conn_key, MYF(0));

storage/spider/spd_include.h

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ typedef start_new_trans *SPIDER_Open_tables_backup;
161161
#define SPIDER_LINK_MON_DRAW_FEW_MON 1
162162
#define SPIDER_LINK_MON_DRAW 2
163163

164-
#define SPIDER_TMP_SHARE_CHAR_PTR_COUNT 23
164+
#define SPIDER_TMP_SHARE_CHAR_PTR_COUNT 24
165165
#define SPIDER_TMP_SHARE_UINT_COUNT SPIDER_TMP_SHARE_CHAR_PTR_COUNT
166166
#define SPIDER_TMP_SHARE_LONG_COUNT 19
167167
#define SPIDER_TMP_SHARE_LONGLONG_COUNT 3
@@ -437,6 +437,7 @@ enum spider_malloc_id {
437437
SPD_MID_PING_TABLE_MON_FROM_TABLE_1,
438438
SPD_MID_RELEASE_PING_TABLE_MON_LIST_1,
439439
SPD_MID_TRX_ANOTHER_LOCK_TABLES_1,
440+
SPD_MID_TRY_ODBC_CONNECTION_STRING_1,
440441
SPD_MID_UDF_COPY_TABLES_CREATE_TABLE_LIST_1,
441442
SPD_MID_UDF_DIRECT_SQL_CREATE_CONN_1,
442443
SPD_MID_UDF_DIRECT_SQL_CREATE_CONN_2,
@@ -1189,7 +1190,7 @@ typedef struct st_spider_share
11891190
char **tgt_dsns;
11901191
char **tgt_filedsns;
11911192
char **tgt_drivers;
1192-
char *tgt_odbc_conn_str;
1193+
char **tgt_odbc_conn_strs;
11931194
char **static_link_ids;
11941195
char **tgt_pk_names;
11951196
char **tgt_sequence_names;
@@ -1232,7 +1233,7 @@ typedef struct st_spider_share
12321233
uint *tgt_dsns_lengths;
12331234
uint *tgt_filedsns_lengths;
12341235
uint *tgt_drivers_lengths;
1235-
uint tgt_odbc_conn_str_length;
1236+
uint *tgt_odbc_conn_strs_lengths;
12361237
uint *static_link_ids_lengths;
12371238
uint *tgt_pk_names_lengths;
12381239
uint *tgt_sequence_names_lengths;
@@ -1281,6 +1282,7 @@ typedef struct st_spider_share
12811282
uint tgt_dsns_length;
12821283
uint tgt_filedsns_length;
12831284
uint tgt_drivers_length;
1285+
uint tgt_odbc_conn_strs_length;
12841286
uint static_link_ids_length;
12851287
uint tgt_pk_names_length;
12861288
uint tgt_sequence_names_length;
@@ -1406,6 +1408,7 @@ typedef struct st_spider_direct_sql
14061408
char *tgt_dsn;
14071409
char *tgt_filedsn;
14081410
char *tgt_driver;
1411+
char *tgt_odbc_conn_str;
14091412
char *conn_key;
14101413
long tgt_port;
14111414
long tgt_ssl_vsc;
@@ -1427,6 +1430,7 @@ typedef struct st_spider_direct_sql
14271430
uint tgt_dsn_length;
14281431
uint tgt_filedsn_length;
14291432
uint tgt_driver_length;
1433+
uint tgt_odbc_conn_str_length;
14301434
uint conn_key_length;
14311435
uint dbton_id;
14321436
my_hash_value_type conn_key_hash_value;

storage/spider/spd_ping_table.cc

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1601,6 +1601,7 @@ int spider_ping_table_mon_from_table(
16011601
TABLE_SHARE *table_share = share->table_share;
16021602
char link_idx_str[SPIDER_CONNECT_INFO_MAX_LEN + 1];
16031603
int link_idx_str_length;
1604+
char *db_or_server;
16041605
uint sql_command = thd_sql_command(thd);
16051606
DBUG_ENTER("spider_ping_table_mon_from_table");
16061607
if (table_share->tmp_table != NO_TMP_TABLE)
@@ -1673,6 +1674,9 @@ int spider_ping_table_mon_from_table(
16731674
goto end;
16741675
}
16751676

1677+
db_or_server= table_mon_list->share->tgt_dbs[0];
1678+
if (!db_or_server)
1679+
db_or_server= table_mon_list->share->server_names[0];
16761680
if (table_mon_list->mon_status == SPIDER_LINK_MON_NG)
16771681
{
16781682
DBUG_PRINT("info",
@@ -1682,8 +1686,7 @@ int spider_ping_table_mon_from_table(
16821686
pthread_mutex_unlock(&spider_udf_table_mon_mutexes[table_mon_list->mutex_hash]);
16831687
error_num = ER_SPIDER_LINK_MON_NG_NUM;
16841688
my_printf_error(error_num,
1685-
ER_SPIDER_LINK_MON_NG_STR, MYF(0),
1686-
table_mon_list->share->tgt_dbs[0],
1689+
ER_SPIDER_LINK_MON_NG_STR, MYF(0), db_or_server,
16871690
table_mon_list->share->tgt_table_names[0]);
16881691
my_afree(buf);
16891692
goto end_with_free_table_mon_list;
@@ -1721,8 +1724,7 @@ int spider_ping_table_mon_from_table(
17211724
"spider mon_table_result->result_status=SPIDER_LINK_MON_DRAW_FEW_MON 1"));
17221725
error_num = ER_SPIDER_LINK_MON_DRAW_FEW_MON_NUM;
17231726
my_printf_error(error_num,
1724-
ER_SPIDER_LINK_MON_DRAW_FEW_MON_STR, MYF(0),
1725-
table_mon_list->share->tgt_dbs[0],
1727+
ER_SPIDER_LINK_MON_DRAW_FEW_MON_STR, MYF(0), db_or_server,
17261728
table_mon_list->share->tgt_table_names[0]);
17271729
break;
17281730
}
@@ -1771,7 +1773,7 @@ int spider_ping_table_mon_from_table(
17711773
error_num = ER_SPIDER_LINK_MON_OK_NUM;
17721774
my_printf_error(error_num,
17731775
ER_SPIDER_LINK_MON_OK_STR, MYF(0),
1774-
table_mon_list->share->tgt_dbs[0],
1776+
db_or_server,
17751777
table_mon_list->share->tgt_table_names[0]);
17761778
break;
17771779
}
@@ -1780,7 +1782,7 @@ int spider_ping_table_mon_from_table(
17801782
error_num = ER_SPIDER_LINK_MON_NG_NUM;
17811783
my_printf_error(error_num,
17821784
ER_SPIDER_LINK_MON_NG_STR, MYF(0),
1783-
table_mon_list->share->tgt_dbs[0],
1785+
db_or_server,
17841786
table_mon_list->share->tgt_table_names[0]);
17851787
break;
17861788
}
@@ -1790,14 +1792,14 @@ int spider_ping_table_mon_from_table(
17901792
error_num = ER_SPIDER_LINK_MON_DRAW_FEW_MON_NUM;
17911793
my_printf_error(error_num,
17921794
ER_SPIDER_LINK_MON_DRAW_FEW_MON_STR, MYF(0),
1793-
table_mon_list->share->tgt_dbs[0],
1795+
db_or_server,
17941796
table_mon_list->share->tgt_table_names[0]);
17951797
break;
17961798
}
17971799
error_num = ER_SPIDER_LINK_MON_DRAW_NUM;
17981800
my_printf_error(error_num,
17991801
ER_SPIDER_LINK_MON_DRAW_STR, MYF(0),
1800-
table_mon_list->share->tgt_dbs[0],
1802+
db_or_server,
18011803
table_mon_list->share->tgt_table_names[0]);
18021804
break;
18031805
}
@@ -1824,29 +1826,25 @@ int spider_ping_table_mon_from_table(
18241826
case SPIDER_LINK_MON_OK:
18251827
error_num = ER_SPIDER_LINK_MON_OK_NUM;
18261828
my_printf_error(error_num,
1827-
ER_SPIDER_LINK_MON_OK_STR, MYF(0),
1828-
table_mon_list->share->tgt_dbs[0],
1829+
ER_SPIDER_LINK_MON_OK_STR, MYF(0), db_or_server,
18291830
table_mon_list->share->tgt_table_names[0]);
18301831
break;
18311832
case SPIDER_LINK_MON_NG:
18321833
error_num = ER_SPIDER_LINK_MON_NG_NUM;
18331834
my_printf_error(error_num,
1834-
ER_SPIDER_LINK_MON_NG_STR, MYF(0),
1835-
table_mon_list->share->tgt_dbs[0],
1835+
ER_SPIDER_LINK_MON_NG_STR, MYF(0), db_or_server,
18361836
table_mon_list->share->tgt_table_names[0]);
18371837
break;
18381838
case SPIDER_LINK_MON_DRAW_FEW_MON:
18391839
error_num = ER_SPIDER_LINK_MON_DRAW_FEW_MON_NUM;
18401840
my_printf_error(error_num,
1841-
ER_SPIDER_LINK_MON_DRAW_FEW_MON_STR, MYF(0),
1842-
table_mon_list->share->tgt_dbs[0],
1841+
ER_SPIDER_LINK_MON_DRAW_FEW_MON_STR, MYF(0), db_or_server,
18431842
table_mon_list->share->tgt_table_names[0]);
18441843
break;
18451844
default:
18461845
error_num = ER_SPIDER_LINK_MON_DRAW_NUM;
18471846
my_printf_error(error_num,
1848-
ER_SPIDER_LINK_MON_DRAW_STR, MYF(0),
1849-
table_mon_list->share->tgt_dbs[0],
1847+
ER_SPIDER_LINK_MON_DRAW_STR, MYF(0), db_or_server,
18501848
table_mon_list->share->tgt_table_names[0]);
18511849
break;
18521850
}

storage/spider/spd_table.cc

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -859,8 +859,17 @@ int spider_free_share_alloc(
859859
}
860860
spider_free(spider_current_trx, share->tgt_drivers, MYF(0));
861861
}
862-
if (share->tgt_odbc_conn_str)
863-
spider_free(spider_current_trx, share->tgt_odbc_conn_str, MYF(0));
862+
if (share->tgt_odbc_conn_strs)
863+
{
864+
for (roop_count = 0; roop_count < (int) share->tgt_odbc_conn_strs_length;
865+
roop_count++)
866+
{
867+
if (share->tgt_odbc_conn_strs[roop_count])
868+
spider_free(spider_current_trx, share->tgt_odbc_conn_strs[roop_count],
869+
MYF(0));
870+
}
871+
spider_free(spider_current_trx, share->tgt_odbc_conn_strs, MYF(0));
872+
}
864873
if (share->tgt_pk_names)
865874
{
866875
for (roop_count = 0; roop_count < (int) share->tgt_pk_names_length;
@@ -1040,6 +1049,11 @@ void spider_free_tmp_share_alloc(
10401049
spider_free(spider_current_trx, share->tgt_drivers[0], MYF(0));
10411050
share->tgt_drivers[0] = NULL;
10421051
}
1052+
if (share->tgt_odbc_conn_strs && share->tgt_odbc_conn_strs[0])
1053+
{
1054+
spider_free(spider_current_trx, share->tgt_odbc_conn_strs[0], MYF(0));
1055+
share->tgt_odbc_conn_strs[0] = NULL;
1056+
}
10431057
if (share->tgt_pk_names && share->tgt_pk_names[0])
10441058
{
10451059
spider_free(spider_current_trx, share->tgt_pk_names[0], MYF(0));
@@ -3322,6 +3336,14 @@ int spider_parse_connect_info(
33223336
&share->tgt_drivers_charlen,
33233337
share->all_link_count)))
33243338
goto error;
3339+
uint unused_charlen;
3340+
if ((error_num = spider_increase_string_list(
3341+
&share->tgt_odbc_conn_strs,
3342+
&share->tgt_odbc_conn_strs_lengths,
3343+
&share->tgt_odbc_conn_strs_length,
3344+
&unused_charlen,
3345+
share->all_link_count)))
3346+
goto error;
33253347
if ((error_num = spider_increase_string_list(
33263348
&share->tgt_pk_names,
33273349
&share->tgt_pk_names_lengths,
@@ -4617,7 +4639,8 @@ int spider_create_conn_keys(
46174639
+ (share->tgt_default_groups[all_link_idx] ? share->tgt_default_groups_lengths[all_link_idx] + 2 : 0)
46184640
+ (share->tgt_dsns[all_link_idx] ? share->tgt_dsns_lengths[all_link_idx] + 2 : 0)
46194641
+ (share->tgt_filedsns[all_link_idx] ? share->tgt_filedsns_lengths[all_link_idx] + 2 : 0)
4620-
+ (share->tgt_drivers[all_link_idx] ? share->tgt_drivers_lengths[all_link_idx] + 2 : 0);
4642+
+ (share->tgt_drivers[all_link_idx] ? share->tgt_drivers_lengths[all_link_idx] + 2 : 0)
4643+
+ (share->tgt_odbc_conn_strs[all_link_idx] ? share->tgt_odbc_conn_strs_lengths[all_link_idx] + 2 : 0);
46214644
share->conn_keys_charlen += conn_keys_lengths[all_link_idx] + 1;
46224645
}
46234646
if (!(share->conn_keys = (char **)
@@ -4686,6 +4709,7 @@ int spider_create_conn_keys(
46864709
spider_create_conn_key_add_one(&counter, &tmp_name, share->tgt_dsns[roop_count]);
46874710
spider_create_conn_key_add_one(&counter, &tmp_name, share->tgt_filedsns[roop_count]);
46884711
spider_create_conn_key_add_one(&counter, &tmp_name, share->tgt_drivers[roop_count]);
4712+
spider_create_conn_key_add_one(&counter, &tmp_name, share->tgt_odbc_conn_strs[roop_count]);
46894713
tmp_name++;
46904714
tmp_name++;
46914715
share->conn_keys_hash_value[roop_count] = my_calc_hash(
@@ -7424,6 +7448,7 @@ void spider_set_tmp_share_pointer(
74247448
tmp_share->tgt_pk_names = &tmp_connect_info[18];
74257449
tmp_share->tgt_sequence_names = &tmp_connect_info[19];
74267450
tmp_share->static_link_ids = &tmp_connect_info[20];
7451+
tmp_share->tgt_odbc_conn_strs = &tmp_connect_info[23];
74277452
tmp_share->tgt_ports = &tmp_long[0];
74287453
tmp_share->tgt_ssl_vscs = &tmp_long[1];
74297454
tmp_share->link_statuses = &tmp_long[2];
@@ -7464,6 +7489,7 @@ void spider_set_tmp_share_pointer(
74647489
tmp_share->tgt_pk_names_lengths = &tmp_connect_info_length[18];
74657490
tmp_share->tgt_sequence_names_lengths = &tmp_connect_info_length[19];
74667491
tmp_share->static_link_ids_lengths = &tmp_connect_info_length[20];
7492+
tmp_share->tgt_odbc_conn_strs_lengths = &tmp_connect_info_length[23];
74677493
tmp_share->server_names_length = 1;
74687494
tmp_share->tgt_table_names_length = 1;
74697495
tmp_share->tgt_dbs_length = 1;
@@ -7482,6 +7508,7 @@ void spider_set_tmp_share_pointer(
74827508
tmp_share->tgt_dsns_length = 1;
74837509
tmp_share->tgt_filedsns_length = 1;
74847510
tmp_share->tgt_drivers_length = 1;
7511+
tmp_share->tgt_odbc_conn_strs_length = 1;
74857512
tmp_share->tgt_pk_names_length = 1;
74867513
tmp_share->tgt_sequence_names_length = 1;
74877514
tmp_share->static_link_ids_length = 1;

0 commit comments

Comments
 (0)