diff options
author | Sergei Golubchik <sergii@pisem.net> | 2010-11-25 18:17:28 +0100 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2010-11-25 18:17:28 +0100 |
commit | 65ca700def99289cc31a7040537f5aa6e12bf485 (patch) | |
tree | 97b3a07299b626c519da0e80c122b5b79b933914 /sql/opt_sum.cc | |
parent | 2ab57de38d13d927ddff2d51aed4af34e13998f5 (diff) | |
parent | 6e5bcca7935d3c62f84bb640e5357664a210ee12 (diff) | |
download | mariadb-git-65ca700def99289cc31a7040537f5aa6e12bf485.tar.gz |
merge.
checkpoint.
does not compile.
Diffstat (limited to 'sql/opt_sum.cc')
-rw-r--r-- | sql/opt_sum.cc | 63 |
1 files changed, 29 insertions, 34 deletions
diff --git a/sql/opt_sum.cc b/sql/opt_sum.cc index e020c94a3bd..d94777787fc 100644 --- a/sql/opt_sum.cc +++ b/sql/opt_sum.cc @@ -110,7 +110,7 @@ static int get_index_min_value(TABLE *table, TABLE_REF *ref, int error; if (!ref->key_length) - error= table->file->index_first(table->record[0]); + error= table->file->ha_index_first(table->record[0]); else { /* @@ -132,10 +132,10 @@ static int get_index_min_value(TABLE *table, TABLE_REF *ref, Closed interval: Either The MIN argument is non-nullable, or we have a >= predicate for the MIN argument. */ - error= table->file->index_read_map(table->record[0], - ref->key_buff, - make_prev_keypart_map(ref->key_parts), - HA_READ_KEY_OR_NEXT); + error= table->file->ha_index_read_map(table->record[0], + ref->key_buff, + make_prev_keypart_map(ref->key_parts), + HA_READ_KEY_OR_NEXT); else { /* @@ -147,10 +147,10 @@ static int get_index_min_value(TABLE *table, TABLE_REF *ref, and it would not work. */ DBUG_ASSERT(prefix_len < ref->key_length); - error= table->file->index_read_map(table->record[0], - ref->key_buff, - make_prev_keypart_map(ref->key_parts), - HA_READ_AFTER_KEY); + error= table->file->ha_index_read_map(table->record[0], + ref->key_buff, + make_prev_keypart_map(ref->key_parts), + HA_READ_AFTER_KEY); /* If the found record is outside the group formed by the search prefix, or there is no such record at all, check if all @@ -173,10 +173,10 @@ static int get_index_min_value(TABLE *table, TABLE_REF *ref, key_cmp_if_same(table, ref->key_buff, ref->key, prefix_len))) { DBUG_ASSERT(item_field->field->real_maybe_null()); - error= table->file->index_read_map(table->record[0], - ref->key_buff, - make_prev_keypart_map(ref->key_parts), - HA_READ_KEY_EXACT); + error= table->file->ha_index_read_map(table->record[0], + ref->key_buff, + make_prev_keypart_map(ref->key_parts), + HA_READ_KEY_EXACT); } } } @@ -199,12 +199,12 @@ static int get_index_min_value(TABLE *table, TABLE_REF *ref, static int get_index_max_value(TABLE *table, TABLE_REF *ref, uint range_fl) { return (ref->key_length ? - table->file->index_read_map(table->record[0], ref->key_buff, - make_prev_keypart_map(ref->key_parts), - range_fl & NEAR_MAX ? - HA_READ_BEFORE_KEY : - HA_READ_PREFIX_LAST_OR_PREV) : - table->file->index_last(table->record[0])); + table->file->ha_index_read_map(table->record[0], ref->key_buff, + make_prev_keypart_map(ref->key_parts), + range_fl & NEAR_MAX ? + HA_READ_BEFORE_KEY : + HA_READ_PREFIX_LAST_OR_PREV) : + table->file->ha_index_last(table->record[0])); } @@ -374,18 +374,17 @@ int opt_sum_query(TABLE_LIST *tables, List<Item> &all_fields,COND *conds) const_result= 0; break; } - table->file->ha_index_init((uint) ref.key, 1); - - error= is_max ? - get_index_max_value(table, &ref, range_fl) : - get_index_min_value(table, &ref, item_field, range_fl, - prefix_len); + if (!(error= table->file->ha_index_init((uint) ref.key, 1))) + error= (is_max ? + get_index_max_value(table, &ref, range_fl) : + get_index_min_value(table, &ref, item_field, range_fl, + prefix_len)); /* Verify that the read tuple indeed matches the search key */ if (!error && reckey_in_range(is_max, &ref, item_field->field, conds, range_fl, prefix_len)) error= HA_ERR_KEY_NOT_FOUND; - table->set_keyread(FALSE); + table->disable_keyread(); table->file->ha_index_end(); if (error) { @@ -896,7 +895,7 @@ static bool find_key_for_maxmin(bool max_fl, TABLE_REF *ref, converted (for example to upper case) */ if (field->part_of_key.is_set(idx)) - table->set_keyread(TRUE); + table->enable_keyread(); return 1; } } @@ -984,15 +983,11 @@ static int maxmin_in_range(bool max_fl, Field* field, COND *cond) SELECT MAX(b) FROM t1 WHERE a=const AND b<const */ if (max_fl != less_fl) - return cond->val_int() == 0; // Return 1 if WHERE is false + return cond->val_int() == 0; // Return 1 if WHERE is false return 0; } - case Item_func::EQ_FUNC: - case Item_func::EQUAL_FUNC: - break; - default: // Keep compiler happy - DBUG_ASSERT(1); // Impossible - break; + default: + break; // Ignore } return 0; } |