diff options
author | Kentoku SHIBA <kentokushiba@gmail.com> | 2013-08-24 14:51:19 +0900 |
---|---|---|
committer | Kentoku SHIBA <kentokushiba@gmail.com> | 2013-08-24 14:51:19 +0900 |
commit | f12e92db86877488ceb605f101e0a4a1253aea89 (patch) | |
tree | b8eaada142f8a90bd48316d1b3a7f675938e06a9 /storage/spider | |
parent | 49a4bbe1e7e4e3a1abbc26740d45482de4b4b609 (diff) | |
download | mariadb-git-f12e92db86877488ceb605f101e0a4a1253aea89.tar.gz |
Fix for parallel search. #1129074
Diffstat (limited to 'storage/spider')
-rw-r--r-- | storage/spider/ha_spider.cc | 8 | ||||
-rw-r--r-- | storage/spider/spd_conn.cc | 20 |
2 files changed, 20 insertions, 8 deletions
diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index 8c0a9d16d8e..5f12d119149 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -6748,10 +6748,6 @@ int ha_spider::rnd_init( memset(searched_bitmap, 0xFF, no_bytes_in_map(table->read_set)); } -#ifndef WITHOUT_SPIDER_BG_SEARCH - if ((error_num = spider_set_conn_bg_param(this))) - DBUG_RETURN(error_num); -#endif set_select_column_mode(); result_list.keyread = FALSE; @@ -6831,6 +6827,10 @@ int ha_spider::rnd_next_internal( if (sql_kinds & SPIDER_SQL_KIND_HS) DBUG_RETURN(HA_ERR_WRONG_COMMAND); #endif +#ifndef WITHOUT_SPIDER_BG_SEARCH + if ((error_num = spider_set_conn_bg_param(this))) + DBUG_RETURN(error_num); +#endif if ((error_num = rnd_handler_init())) DBUG_RETURN(check_error_mode_eof(error_num)); check_direct_order_limit(); diff --git a/storage/spider/spd_conn.cc b/storage/spider/spd_conn.cc index 13003207f9b..177f1221721 100644 --- a/storage/spider/spd_conn.cc +++ b/storage/spider/spd_conn.cc @@ -1467,11 +1467,23 @@ int spider_set_conn_bg_param( else { result_list->bgs_phase = 1; - result_list->bgs_first_read = - spider_param_bgs_first_read(thd, share->bgs_first_read); - result_list->bgs_second_read = - spider_param_bgs_second_read(thd, share->bgs_second_read); result_list->bgs_split_read = spider_bg_split_read_param(spider); + if (spider->use_pre_call) + { + DBUG_PRINT("info",("spider use_pre_call=TRUE")); + result_list->bgs_first_read = result_list->bgs_split_read; + result_list->bgs_second_read = result_list->bgs_split_read; + } else { + DBUG_PRINT("info",("spider use_pre_call=FALSE")); + result_list->bgs_first_read = + spider_param_bgs_first_read(thd, share->bgs_first_read); + result_list->bgs_second_read = + spider_param_bgs_second_read(thd, share->bgs_second_read); + } + DBUG_PRINT("info",("spider bgs_split_read=%lld", + result_list->bgs_split_read)); + DBUG_PRINT("info",("spider bgs_first_read=%lld", share->bgs_first_read)); + DBUG_PRINT("info",("spider bgs_second_read=%lld", share->bgs_second_read)); result_list->split_read = result_list->bgs_first_read > 0 ? |