null+****@clear*****
null+****@clear*****
2011年 9月 11日 (日) 18:09:46 JST
Kentoku 2011-09-11 09:09:46 +0000 (Sun, 11 Sep 2011)
New Revision: 17b4b9ca79bb08087b26576588ae02d644ce72df
Log:
#1072 more efficiency
Modified files:
ha_mroonga.cc
Modified: ha_mroonga.cc (+9 -17)
===================================================================
--- ha_mroonga.cc 2011-09-11 03:45:44 +0000 (71e183c)
+++ ha_mroonga.cc 2011-09-11 09:09:46 +0000 (dd2454f)
@@ -4862,27 +4862,19 @@ void ha_mroonga::store_fields_from_primary_table(uchar *buf, grn_id record_id)
int n_columns = table->s->fields;
for (i = 0; i < n_columns; i++) {
Field *field = table->field[i];
- const char *col_name = field->field_name;
- int col_name_size = strlen(col_name);
- bool need_store_field = true;
- if (ignoring_no_key_columns) {
- need_store_field = false;
- uint n_keys = table->s->keys;
- for (uint j = 0; j < n_keys; j++) {
- KEY key_info = table->s->key_info[j];
- if (strcmp(key_info.key_part[0].field->field_name, col_name) == 0) {
- need_store_field = true;
- break;
+ if (bitmap_is_set(table->read_set, field->field_index) ||
+ bitmap_is_set(table->write_set, field->field_index)) {
+ const char *col_name = field->field_name;
+ int col_name_size = strlen(col_name);
+
+ if (ignoring_no_key_columns) {
+ KEY key_info = table->s->key_info[active_index];
+ if (strcmp(key_info.key_part[0].field->field_name, col_name)) {
+ continue;
}
}
- }
- if (!need_store_field) {
- continue;
- }
- if (bitmap_is_set(table->read_set, field->field_index) ||
- bitmap_is_set(table->write_set, field->field_index)) {
#ifndef DBUG_OFF
my_bitmap_map *tmp_map = dbug_tmp_use_all_columns(table,
table->write_set);