diff options
author | Kentoku SHIBA <kentokushiba@gmail.com> | 2013-09-17 03:19:55 +0900 |
---|---|---|
committer | Kentoku SHIBA <kentokushiba@gmail.com> | 2013-09-17 03:19:55 +0900 |
commit | e9d53a384cdfd4174bc1c69100cf04006d217ec7 (patch) | |
tree | d9282302380ecab5b36e1cbe55544ef1c9b5f507 | |
parent | 74bea98ea50ff82a9b6c7b39da26bfc4a4aa79d6 (diff) | |
download | mariadb-git-e9d53a384cdfd4174bc1c69100cf04006d217ec7.tar.gz |
fix a case of different linked table name for mrr.
-rw-r--r-- | storage/spider/ha_spider.cc | 64 | ||||
-rw-r--r-- | storage/spider/ha_spider.h | 2 | ||||
-rw-r--r-- | storage/spider/spd_db_handlersocket.cc | 27 | ||||
-rw-r--r-- | storage/spider/spd_db_handlersocket.h | 7 | ||||
-rw-r--r-- | storage/spider/spd_db_include.h | 7 | ||||
-rw-r--r-- | storage/spider/spd_db_mysql.cc | 95 | ||||
-rw-r--r-- | storage/spider/spd_db_mysql.h | 9 | ||||
-rw-r--r-- | storage/spider/spd_db_oracle.cc | 95 | ||||
-rw-r--r-- | storage/spider/spd_db_oracle.h | 9 | ||||
-rw-r--r-- | storage/spider/spd_include.h | 10 |
10 files changed, 308 insertions, 17 deletions
diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index 74ebcfb6190..c069ddfb770 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -5023,8 +5023,11 @@ int ha_spider::read_multi_range_first_internal( } } else { result_list.limit_num = result_list.internal_limit; - if ((error_num = append_union_all_start_sql_part( - SPIDER_SQL_TYPE_SELECT_SQL))) + if ( + (error_num = init_union_table_name_pos_sql()) || + (error_num = append_union_all_start_sql_part( + SPIDER_SQL_TYPE_SELECT_SQL)) + ) DBUG_RETURN(error_num); #ifdef HA_MRR_USE_DEFAULT_IMPL @@ -5050,7 +5053,10 @@ int ha_spider::read_multi_range_first_internal( if ((error_num = append_multi_range_cnt_sql_part( SPIDER_SQL_TYPE_SELECT_SQL, multi_range_cnt, TRUE))) DBUG_RETURN(error_num); - if ((error_num = spider_db_append_select_columns(this))) + if ( + (error_num = spider_db_append_select_columns(this)) || + (error_num = set_union_table_name_pos_sql()) + ) DBUG_RETURN(error_num); high_priority = FALSE; if ( @@ -6371,8 +6377,11 @@ int ha_spider::read_multi_range_next( } else { result_list.limit_num = result_list.internal_limit - result_list.record_num; - if ((error_num = - append_union_all_start_sql_part(SPIDER_SQL_TYPE_SELECT_SQL))) + if ( + (error_num = init_union_table_name_pos_sql()) || + (error_num = + append_union_all_start_sql_part(SPIDER_SQL_TYPE_SELECT_SQL)) + ) DBUG_RETURN(error_num); #ifdef HA_MRR_USE_DEFAULT_IMPL do @@ -6396,7 +6405,10 @@ int ha_spider::read_multi_range_next( if ((error_num = append_multi_range_cnt_sql_part( SPIDER_SQL_TYPE_SELECT_SQL, multi_range_cnt, TRUE))) DBUG_RETURN(error_num); - if ((error_num = spider_db_append_select_columns(this))) + if ( + (error_num = spider_db_append_select_columns(this)) || + (error_num = set_union_table_name_pos_sql()) + ) DBUG_RETURN(error_num); high_priority = FALSE; if ( @@ -13958,3 +13970,43 @@ bool ha_spider::support_bulk_access_hs() const DBUG_RETURN(TRUE); } #endif + +int ha_spider::init_union_table_name_pos_sql() +{ + int error_num; + uint roop_count, dbton_id; + spider_db_handler *dbton_hdl; + DBUG_ENTER("ha_spider::init_union_table_name_pos_sql"); + for (roop_count = 0; roop_count < share->use_sql_dbton_count; roop_count++) + { + dbton_id = share->use_sql_dbton_ids[roop_count]; + dbton_hdl = dbton_handler[dbton_id]; + if ( + dbton_hdl->first_link_idx >= 0 && + (error_num = dbton_hdl->init_union_table_name_pos()) + ) { + DBUG_RETURN(error_num); + } + } + DBUG_RETURN(0); +} + +int ha_spider::set_union_table_name_pos_sql() +{ + int error_num; + uint roop_count, dbton_id; + spider_db_handler *dbton_hdl; + DBUG_ENTER("ha_spider::set_union_table_name_pos_sql"); + for (roop_count = 0; roop_count < share->use_sql_dbton_count; roop_count++) + { + dbton_id = share->use_sql_dbton_ids[roop_count]; + dbton_hdl = dbton_handler[dbton_id]; + if ( + dbton_hdl->first_link_idx >= 0 && + (error_num = dbton_hdl->set_union_table_name_pos()) + ) { + DBUG_RETURN(error_num); + } + } + DBUG_RETURN(0); +} diff --git a/storage/spider/ha_spider.h b/storage/spider/ha_spider.h index de34e085359..50ddeb1c050 100644 --- a/storage/spider/ha_spider.h +++ b/storage/spider/ha_spider.h @@ -1043,4 +1043,6 @@ public: #if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET) bool support_bulk_access_hs() const; #endif + int init_union_table_name_pos_sql(); + int set_union_table_name_pos_sql(); }; diff --git a/storage/spider/spd_db_handlersocket.cc b/storage/spider/spd_db_handlersocket.cc index a828a98c597..876eeeb656c 100644 --- a/storage/spider/spd_db_handlersocket.cc +++ b/storage/spider/spd_db_handlersocket.cc @@ -5415,4 +5415,31 @@ void spider_handlersocket_handler::copy_minimum_select_bitmap( }
DBUG_VOID_RETURN;
}
+
+int spider_handlersocket_handler::init_union_table_name_pos()
+{
+ DBUG_ENTER("spider_handlersocket_handler::init_union_table_name_pos");
+ DBUG_PRINT("info",("spider this=%p", this));
+ DBUG_ASSERT(0);
+ DBUG_RETURN(0);
+}
+
+int spider_handlersocket_handler::set_union_table_name_pos()
+{
+ DBUG_ENTER("spider_handlersocket_handler::set_union_table_name_pos");
+ DBUG_PRINT("info",("spider this=%p", this));
+ DBUG_ASSERT(0);
+ DBUG_RETURN(0);
+}
+
+int spider_handlersocket_handler::reset_union_table_name(
+ spider_string *str,
+ int link_idx,
+ ulong sql_type
+) {
+ DBUG_ENTER("spider_handlersocket_handler::reset_union_table_name");
+ DBUG_PRINT("info",("spider this=%p", this));
+ DBUG_ASSERT(0);
+ DBUG_RETURN(0);
+}
#endif
diff --git a/storage/spider/spd_db_handlersocket.h b/storage/spider/spd_db_handlersocket.h index 51cbc7e6c79..ed3d55752bc 100644 --- a/storage/spider/spd_db_handlersocket.h +++ b/storage/spider/spd_db_handlersocket.h @@ -914,4 +914,11 @@ public: void copy_minimum_select_bitmap(
uchar *bitmap
);
+ int init_union_table_name_pos();
+ int set_union_table_name_pos();
+ int reset_union_table_name(
+ spider_string *str,
+ int link_idx,
+ ulong sql_type
+ );
};
diff --git a/storage/spider/spd_db_include.h b/storage/spider/spd_db_include.h index f35652646ea..c51bca146cd 100644 --- a/storage/spider/spd_db_include.h +++ b/storage/spider/spd_db_include.h @@ -1371,6 +1371,13 @@ public: virtual void copy_minimum_select_bitmap( uchar *bitmap ) = 0; + virtual int init_union_table_name_pos() = 0; + virtual int set_union_table_name_pos() = 0; + virtual int reset_union_table_name( + spider_string *str, + int link_idx, + ulong sql_type + ) = 0; }; class spider_db_copy_table diff --git a/storage/spider/spd_db_mysql.cc b/storage/spider/spd_db_mysql.cc index cea61083d29..f6ef1ff947e 100644 --- a/storage/spider/spd_db_mysql.cc +++ b/storage/spider/spd_db_mysql.cc @@ -4552,6 +4552,8 @@ spider_mysql_handler::spider_mysql_handler( tmp_sql_pos4(0),
tmp_sql_pos5(0),
reading_from_bulk_tmp_table(FALSE),
+ union_table_name_pos_first(NULL),
+ union_table_name_pos_current(NULL),
mysql_share(db_share),
link_for_hash(NULL)
{
@@ -4566,6 +4568,12 @@ spider_mysql_handler::~spider_mysql_handler() {
DBUG_ENTER("spider_mysql_handler::~spider_mysql_handler");
DBUG_PRINT("info",("spider this=%p", this));
+ while (union_table_name_pos_first)
+ {
+ SPIDER_INT_HLD *tmp_pos = union_table_name_pos_first;
+ union_table_name_pos_first = tmp_pos->next;
+ spider_free(spider_current_trx, tmp_pos, MYF(0));
+ }
if (link_for_hash)
{
spider_free(spider_current_trx, link_for_hash, MYF(0));
@@ -9114,14 +9122,14 @@ int spider_mysql_handler::set_sql_for_exec( uint table_name_lengths[2], table_alias_lengths[2];
tgt_table_name_str.init_calc_mem(104);
tgt_table_name_str.length(0);
- if (result_list->tmp_table_join)
+ if (result_list->tmp_table_join && spider->bka_mode != 2)
{
create_tmp_bka_table_name(tmp_table_name, &tmp_table_name_length,
link_idx);
append_table_name_with_adjusting(&tgt_table_name_str, link_idx,
SPIDER_SQL_TYPE_TMP_SQL);
table_names[0] = tmp_table_name;
- table_names[1] = tgt_table_name_str.c_ptr();
+ table_names[1] = tgt_table_name_str.ptr();
table_name_lengths[0] = tmp_table_name_length;
table_name_lengths[1] = tgt_table_name_str.length();
table_aliases[0] = SPIDER_SQL_A_STR;
@@ -9134,10 +9142,15 @@ int spider_mysql_handler::set_sql_for_exec( exec_sql = &result_list->sqls[link_idx];
if (exec_sql->copy(sql))
DBUG_RETURN(HA_ERR_OUT_OF_MEM);
- else {
+ else if (result_list->use_union)
+ {
+ if ((error_num = reset_union_table_name(exec_sql, link_idx,
+ SPIDER_SQL_TYPE_SELECT_SQL)))
+ DBUG_RETURN(error_num);
+ } else {
tmp_pos = exec_sql->length();
exec_sql->length(table_name_pos);
- if (result_list->tmp_table_join)
+ if (result_list->tmp_table_join && spider->bka_mode != 2)
{
if ((error_num = spider_db_mysql_utility.append_from_with_alias(
exec_sql, table_names, table_name_lengths,
@@ -9145,6 +9158,7 @@ int spider_mysql_handler::set_sql_for_exec( &table_name_pos, TRUE))
)
DBUG_RETURN(error_num);
+ exec_sql->q_append(SPIDER_SQL_SPACE_STR, SPIDER_SQL_SPACE_LEN);
} else {
append_table_name_with_adjusting(exec_sql, link_idx,
SPIDER_SQL_TYPE_SELECT_SQL);
@@ -9155,7 +9169,7 @@ int spider_mysql_handler::set_sql_for_exec( if (sql_type & SPIDER_SQL_TYPE_TMP_SQL)
{
exec_tmp_sql = &result_list->tmp_sqls[link_idx];
- if (result_list->tmp_table_join)
+ if (result_list->tmp_table_join && spider->bka_mode != 2)
{
if (exec_tmp_sql->copy(tmp_sql))
DBUG_RETURN(HA_ERR_OUT_OF_MEM);
@@ -10743,6 +10757,77 @@ void spider_mysql_handler::copy_minimum_select_bitmap( DBUG_VOID_RETURN;
}
+int spider_mysql_handler::init_union_table_name_pos()
+{
+ DBUG_ENTER("spider_mysql_handler::init_union_table_name_pos");
+ DBUG_PRINT("info",("spider this=%p", this));
+ if (!union_table_name_pos_first)
+ {
+ if (!spider_bulk_malloc(spider_current_trx, 236, MYF(MY_WME),
+ &union_table_name_pos_first, sizeof(SPIDER_INT_HLD),
+ NullS)
+ ) {
+ DBUG_RETURN(HA_ERR_OUT_OF_MEM);
+ }
+ union_table_name_pos_first->next = NULL;
+ }
+ union_table_name_pos_current = union_table_name_pos_first;
+ union_table_name_pos_current->tgt_num = 0;
+ DBUG_RETURN(0);
+}
+
+int spider_mysql_handler::set_union_table_name_pos()
+{
+ DBUG_ENTER("spider_mysql_handler::set_union_table_name_pos");
+ DBUG_PRINT("info",("spider this=%p", this));
+ if (union_table_name_pos_current->tgt_num >= SPIDER_INT_HLD_TGT_SIZE)
+ {
+ if (!union_table_name_pos_current->next)
+ {
+ if (!spider_bulk_malloc(spider_current_trx, 237, MYF(MY_WME),
+ &union_table_name_pos_current->next, sizeof(SPIDER_INT_HLD),
+ NullS)
+ ) {
+ DBUG_RETURN(HA_ERR_OUT_OF_MEM);
+ }
+ union_table_name_pos_current->next->next = NULL;
+ }
+ union_table_name_pos_current = union_table_name_pos_current->next;
+ union_table_name_pos_current->tgt_num = 0;
+ }
+ union_table_name_pos_current->tgt[union_table_name_pos_current->tgt_num] =
+ table_name_pos;
+ ++union_table_name_pos_current->tgt_num;
+ DBUG_RETURN(0);
+}
+
+int spider_mysql_handler::reset_union_table_name(
+ spider_string *str,
+ int link_idx,
+ ulong sql_type
+) {
+ DBUG_ENTER("spider_mysql_handler::reset_union_table_name");
+ DBUG_PRINT("info",("spider this=%p", this));
+ if (!union_table_name_pos_current)
+ DBUG_RETURN(0);
+
+ SPIDER_INT_HLD *tmp_pos = union_table_name_pos_first;
+ uint cur_num, pos_backup = str->length();
+ while(TRUE)
+ {
+ for (cur_num = 0; cur_num < tmp_pos->tgt_num; ++cur_num)
+ {
+ str->length(tmp_pos->tgt[cur_num]);
+ append_table_name_with_adjusting(str, link_idx, sql_type);
+ }
+ if (tmp_pos == union_table_name_pos_current)
+ break;
+ tmp_pos = tmp_pos->next;
+ }
+ str->length(pos_backup);
+ DBUG_RETURN(0);
+}
+
spider_mysql_copy_table::spider_mysql_copy_table(
spider_mysql_share *db_share
) : spider_db_copy_table(
diff --git a/storage/spider/spd_db_mysql.h b/storage/spider/spd_db_mysql.h index 96436a90b7b..71d6a262cf8 100644 --- a/storage/spider/spd_db_mysql.h +++ b/storage/spider/spd_db_mysql.h @@ -521,6 +521,8 @@ class spider_mysql_handler: public spider_db_handler #if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
SPIDER_DB_HS_STRING_REF_BUFFER hs_upds;
#endif
+ SPIDER_INT_HLD *union_table_name_pos_first;
+ SPIDER_INT_HLD *union_table_name_pos_current;
public:
spider_mysql_share *mysql_share;
SPIDER_LINK_FOR_HASH *link_for_hash;
@@ -1249,6 +1251,13 @@ public: void copy_minimum_select_bitmap(
uchar *bitmap
);
+ int init_union_table_name_pos();
+ int set_union_table_name_pos();
+ int reset_union_table_name(
+ spider_string *str,
+ int link_idx,
+ ulong sql_type
+ );
};
class spider_mysql_copy_table: public spider_db_copy_table
diff --git a/storage/spider/spd_db_oracle.cc b/storage/spider/spd_db_oracle.cc index 7446156c1d5..1254dd8332e 100644 --- a/storage/spider/spd_db_oracle.cc +++ b/storage/spider/spd_db_oracle.cc @@ -4638,6 +4638,8 @@ spider_oracle_handler::spider_oracle_handler( filled_up(FALSE),
select_rownum_appended(FALSE),
update_rownum_appended(FALSE),
+ union_table_name_pos_first(NULL),
+ union_table_name_pos_current(NULL),
oracle_share(db_share),
link_for_hash(NULL)
{
@@ -4652,6 +4654,12 @@ spider_oracle_handler::~spider_oracle_handler() {
DBUG_ENTER("spider_oracle_handler::~spider_oracle_handler");
DBUG_PRINT("info",("spider this=%p", this));
+ while (union_table_name_pos_first)
+ {
+ SPIDER_INT_HLD *tmp_pos = union_table_name_pos_first;
+ union_table_name_pos_first = tmp_pos->next;
+ spider_free(spider_current_trx, tmp_pos, MYF(0));
+ }
if (link_for_hash)
{
spider_free(spider_current_trx, link_for_hash, MYF(0));
@@ -9622,14 +9630,14 @@ int spider_oracle_handler::set_sql_for_exec( uint table_name_lengths[2], table_alias_lengths[2];
tgt_table_name_str.init_calc_mem(212);
tgt_table_name_str.length(0);
- if (result_list->tmp_table_join)
+ if (result_list->tmp_table_join && spider->bka_mode != 2)
{
create_tmp_bka_table_name(tmp_table_name, &tmp_table_name_length,
link_idx);
append_table_name_with_adjusting(&tgt_table_name_str, link_idx,
SPIDER_SQL_TYPE_TMP_SQL);
table_names[0] = tmp_table_name;
- table_names[1] = tgt_table_name_str.c_ptr();
+ table_names[1] = tgt_table_name_str.ptr();
table_name_lengths[0] = tmp_table_name_length;
table_name_lengths[1] = tgt_table_name_str.length();
table_aliases[0] = SPIDER_SQL_A_STR;
@@ -9642,10 +9650,15 @@ int spider_oracle_handler::set_sql_for_exec( exec_sql = &result_list->sqls[link_idx];
if (exec_sql->copy(sql))
DBUG_RETURN(HA_ERR_OUT_OF_MEM);
- else {
+ else if (result_list->use_union)
+ {
+ if ((error_num = reset_union_table_name(exec_sql, link_idx,
+ SPIDER_SQL_TYPE_SELECT_SQL)))
+ DBUG_RETURN(error_num);
+ } else {
tmp_pos = exec_sql->length();
exec_sql->length(table_name_pos);
- if (result_list->tmp_table_join)
+ if (result_list->tmp_table_join && spider->bka_mode != 2)
{
if ((error_num = spider_db_oracle_utility.append_from_with_alias(
exec_sql, table_names, table_name_lengths,
@@ -9653,6 +9666,7 @@ int spider_oracle_handler::set_sql_for_exec( &table_name_pos, TRUE))
)
DBUG_RETURN(error_num);
+ exec_sql->q_append(SPIDER_SQL_SPACE_STR, SPIDER_SQL_SPACE_LEN);
} else {
append_table_name_with_adjusting(exec_sql, link_idx,
SPIDER_SQL_TYPE_SELECT_SQL);
@@ -9663,7 +9677,7 @@ int spider_oracle_handler::set_sql_for_exec( if (sql_type & SPIDER_SQL_TYPE_TMP_SQL)
{
exec_tmp_sql = &result_list->tmp_sqls[link_idx];
- if (result_list->tmp_table_join)
+ if (result_list->tmp_table_join && spider->bka_mode != 2)
{
if (exec_tmp_sql->copy(tmp_sql))
DBUG_RETURN(HA_ERR_OUT_OF_MEM);
@@ -11352,6 +11366,77 @@ void spider_oracle_handler::copy_minimum_select_bitmap( DBUG_VOID_RETURN;
}
+int spider_oracle_handler::init_union_table_name_pos()
+{
+ DBUG_ENTER("spider_oracle_handler::init_union_table_name_pos");
+ DBUG_PRINT("info",("spider this=%p", this));
+ if (!union_table_name_pos_first)
+ {
+ if (!spider_bulk_malloc(spider_current_trx, 238, MYF(MY_WME),
+ &union_table_name_pos_first, sizeof(SPIDER_INT_HLD),
+ NullS)
+ ) {
+ DBUG_RETURN(HA_ERR_OUT_OF_MEM);
+ }
+ union_table_name_pos_first->next = NULL;
+ }
+ union_table_name_pos_current = union_table_name_pos_first;
+ union_table_name_pos_current->tgt_num = 0;
+ DBUG_RETURN(0);
+}
+
+int spider_oracle_handler::set_union_table_name_pos()
+{
+ DBUG_ENTER("spider_oracle_handler::set_union_table_name_pos");
+ DBUG_PRINT("info",("spider this=%p", this));
+ if (union_table_name_pos_current->tgt_num >= SPIDER_INT_HLD_TGT_SIZE)
+ {
+ if (!union_table_name_pos_current->next)
+ {
+ if (!spider_bulk_malloc(spider_current_trx, 239, MYF(MY_WME),
+ &union_table_name_pos_current->next, sizeof(SPIDER_INT_HLD),
+ NullS)
+ ) {
+ DBUG_RETURN(HA_ERR_OUT_OF_MEM);
+ }
+ union_table_name_pos_current->next->next = NULL;
+ }
+ union_table_name_pos_current = union_table_name_pos_current->next;
+ union_table_name_pos_current->tgt_num = 0;
+ }
+ union_table_name_pos_current->tgt[union_table_name_pos_current->tgt_num] =
+ table_name_pos;
+ ++union_table_name_pos_current->tgt_num;
+ DBUG_RETURN(0);
+}
+
+int spider_oracle_handler::reset_union_table_name(
+ spider_string *str,
+ int link_idx,
+ ulong sql_type
+) {
+ DBUG_ENTER("spider_oracle_handler::reset_union_table_name");
+ DBUG_PRINT("info",("spider this=%p", this));
+ if (!union_table_name_pos_current)
+ DBUG_RETURN(0);
+
+ SPIDER_INT_HLD *tmp_pos = union_table_name_pos_first;
+ uint cur_num, pos_backup = str->length();
+ while(TRUE)
+ {
+ for (cur_num = 0; cur_num < tmp_pos->tgt_num; ++cur_num)
+ {
+ str->length(tmp_pos->tgt[cur_num]);
+ append_table_name_with_adjusting(str, link_idx, sql_type);
+ }
+ if (tmp_pos == union_table_name_pos_current)
+ break;
+ tmp_pos = tmp_pos->next;
+ }
+ str->length(pos_backup);
+ DBUG_RETURN(0);
+}
+
spider_oracle_copy_table::spider_oracle_copy_table(
spider_oracle_share *db_share
) : spider_db_copy_table(
diff --git a/storage/spider/spd_db_oracle.h b/storage/spider/spd_db_oracle.h index 79dfe56d27d..db5eac88ca9 100644 --- a/storage/spider/spd_db_oracle.h +++ b/storage/spider/spd_db_oracle.h @@ -604,6 +604,8 @@ class spider_oracle_handler: public spider_db_handler #if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
SPIDER_DB_HS_STRING_REF_BUFFER hs_upds;
#endif
+ SPIDER_INT_HLD *union_table_name_pos_first;
+ SPIDER_INT_HLD *union_table_name_pos_current;
public:
spider_oracle_share *oracle_share;
SPIDER_LINK_FOR_HASH *link_for_hash;
@@ -1335,6 +1337,13 @@ public: void copy_minimum_select_bitmap(
uchar *bitmap
);
+ int init_union_table_name_pos();
+ int set_union_table_name_pos();
+ int reset_union_table_name(
+ spider_string *str,
+ int link_idx,
+ ulong sql_type
+ );
};
class spider_oracle_copy_table: public spider_db_copy_table
diff --git a/storage/spider/spd_include.h b/storage/spider/spd_include.h index 4dc97cef505..6db537462ef 100644 --- a/storage/spider/spd_include.h +++ b/storage/spider/spd_include.h @@ -118,7 +118,7 @@ #define SPIDER_TMP_SHARE_LONG_COUNT 15 #define SPIDER_TMP_SHARE_LONGLONG_COUNT 3 -#define SPIDER_MEM_CALC_LIST_NUM 236 +#define SPIDER_MEM_CALC_LIST_NUM 240 #define SPIDER_BACKUP_DASTATUS \ bool da_status; if (thd) da_status = thd->is_error(); else da_status = FALSE; @@ -1150,6 +1150,14 @@ typedef struct st_spider_bulk_access_link } SPIDER_BULK_ACCESS_LINK; #endif +#define SPIDER_INT_HLD_TGT_SIZE 100 +typedef struct st_spider_int_hld +{ + uint tgt_num; + int tgt[SPIDER_INT_HLD_TGT_SIZE]; + st_spider_int_hld *next; +} SPIDER_INT_HLD; + char *spider_create_string( const char *str, uint length |