null+****@clear*****
null+****@clear*****
2011年 9月 24日 (土) 19:07:46 JST
Kouhei Sutou 2011-09-24 10:07:46 +0000 (Sat, 24 Sep 2011) New Revision: 21eebdc99ba027ca48f5a8de9b80c84957066c83 Log: remove duplicated cursor clear codes. Modified files: ha_mroonga.cc ha_mroonga.h Modified: ha_mroonga.cc (+22 -61) =================================================================== --- ha_mroonga.cc 2011-09-24 10:03:21 +0000 (c1f29e0) +++ ha_mroonga.cc 2011-09-24 10:07:46 +0000 (2c2fe36) @@ -2731,14 +2731,7 @@ int ha_mroonga::wrapper_rnd_end() int ha_mroonga::storage_rnd_end() { MRN_DBUG_ENTER_METHOD(); - if (cursor) { - grn_table_cursor_close(ctx, cursor); - cursor = NULL; - } - if (index_table_cursor) { - grn_table_cursor_close(ctx, index_table_cursor); - index_table_cursor = NULL; - } + clear_cursor(); DBUG_RETURN(0); } @@ -4096,14 +4089,7 @@ int ha_mroonga::wrapper_index_end() int ha_mroonga::storage_index_end() { MRN_DBUG_ENTER_METHOD(); - if (cursor) { - grn_table_cursor_close(ctx, cursor); - cursor = NULL; - } - if (index_table_cursor) { - grn_table_cursor_close(ctx, index_table_cursor); - index_table_cursor = NULL; - } + clear_cursor(); DBUG_RETURN(0); } @@ -4149,14 +4135,7 @@ int ha_mroonga::storage_index_read_map(uchar *buf, const uchar *key, uint size_min = 0, size_max = 0; const void *val_min = NULL, *val_max = NULL; - if (cursor) { - grn_table_cursor_close(ctx, cursor); - cursor = NULL; - } - if (index_table_cursor) { - grn_table_cursor_close(ctx, index_table_cursor); - index_table_cursor = NULL; - } + clear_cursor(); bool is_multiple_column_index = key_info.key_parts > 1; if (is_multiple_column_index) { @@ -4298,14 +4277,7 @@ int ha_mroonga::storage_index_read_last_map(uchar *buf, const uchar *key, uint size_min = 0, size_max = 0; const void *val_min = NULL, *val_max = NULL; - if (cursor) { - grn_table_cursor_close(ctx, cursor); - cursor = NULL; - } - if (index_table_cursor) { - grn_table_cursor_close(ctx, index_table_cursor); - index_table_cursor = NULL; - } + clear_cursor(); bool is_multiple_column_index = key_info.key_parts > 1; if (is_multiple_column_index) { @@ -4505,14 +4477,7 @@ int ha_mroonga::wrapper_index_first(uchar *buf) int ha_mroonga::storage_index_first(uchar *buf) { MRN_DBUG_ENTER_METHOD(); - if (cursor) { - grn_table_cursor_close(ctx, cursor); - cursor = NULL; - } - if (index_table_cursor) { - grn_table_cursor_close(ctx, index_table_cursor); - index_table_cursor = NULL; - } + clear_cursor(); bool is_multiple_column_index = table->key_info[active_index].key_parts > 1; uint pkey_nr = table->s->primary_key; if (is_multiple_column_index) { // multiple column index @@ -4591,14 +4556,7 @@ int ha_mroonga::wrapper_index_last(uchar *buf) int ha_mroonga::storage_index_last(uchar *buf) { MRN_DBUG_ENTER_METHOD(); - if (cursor) { - grn_table_cursor_close(ctx, cursor); - cursor = NULL; - } - if (index_table_cursor) { - grn_table_cursor_close(ctx, index_table_cursor); - index_table_cursor = NULL; - } + clear_cursor(); int flags = GRN_CURSOR_DESCENDING; uint pkey_nr = table->s->primary_key; if (active_index == pkey_nr) { // primary index @@ -4739,14 +4697,7 @@ int ha_mroonga::storage_read_range_first(const key_range *start_key, const void *val_min = NULL, *val_max = NULL; KEY key_info = table->s->key_info[active_index]; - if (cursor) { - grn_table_cursor_close(ctx, cursor); - cursor = NULL; - } - if (index_table_cursor) { - grn_table_cursor_close(ctx, index_table_cursor); - index_table_cursor = NULL; - } + clear_cursor(); bool is_multiple_column_index = key_info.key_parts > 1; if (is_multiple_column_index) { @@ -5350,6 +5301,20 @@ bool ha_mroonga::get_error_message(int error, String *buf) DBUG_RETURN(success); } +void ha_mroonga::clear_cursor() +{ + MRN_DBUG_ENTER_METHOD(); + if (cursor) { + grn_table_cursor_close(ctx, cursor); + cursor = NULL; + } + if (index_table_cursor) { + grn_table_cursor_close(ctx, index_table_cursor); + index_table_cursor = NULL; + } + DBUG_VOID_RETURN; +} + void ha_mroonga::check_count_skip(key_part_map start_key_part_map, key_part_map end_key_part_map, bool fulltext) { @@ -5646,11 +5611,7 @@ int ha_mroonga::reset() int error; MRN_DBUG_ENTER_METHOD(); DBUG_PRINT("info", ("mroonga this=%p", this)); - if (cursor) - { - grn_table_cursor_close(ctx, cursor); - cursor = NULL; - } + clear_cursor(); if (share->wrapper_mode) error = wrapper_reset(); else Modified: ha_mroonga.h (+1 -0) =================================================================== --- ha_mroonga.h 2011-09-24 10:03:21 +0000 (2981241) +++ ha_mroonga.h 2011-09-24 10:07:46 +0000 (f8b669a) @@ -323,6 +323,7 @@ protected: #endif private: + void clear_cursor(); #ifdef MRN_HANDLER_HAVE_HA_CLOSE int close(); #endif