diff options
author | unknown <igor@rurik.mysql.com> | 2004-09-07 19:46:09 -0700 |
---|---|---|
committer | unknown <igor@rurik.mysql.com> | 2004-09-07 19:46:09 -0700 |
commit | 3be674036fa9adc961a3100ea69dd7c7fa6675e4 (patch) | |
tree | 6b4d2d0566207823bf99bb46602fc6d497449426 /sql/opt_sum.cc | |
parent | 49d90b09f558b30adf1578dfcaf7d094e51609bd (diff) | |
download | mariadb-git-3be674036fa9adc961a3100ea69dd7c7fa6675e4.tar.gz |
func_group.test, func_group.result:
Added test case for bug #5406.
opt_sum.cc:
Fixed bug #5406.
sql/opt_sum.cc:
Fixed bug #5406.
mysql-test/r/func_group.result:
Added test case for bug #5406.
mysql-test/t/func_group.test:
Added test case for bug #5406.
Diffstat (limited to 'sql/opt_sum.cc')
-rw-r--r-- | sql/opt_sum.cc | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/sql/opt_sum.cc b/sql/opt_sum.cc index f4c39462d0c..538f5c6097d 100644 --- a/sql/opt_sum.cc +++ b/sql/opt_sum.cc @@ -186,16 +186,15 @@ int opt_sum_query(TABLE_LIST *tables, List<Item> &all_fields,COND *conds) if (!ref.key_length) error= table->file->index_first(table->record[0]); else - { error= table->file->index_read(table->record[0],key_buff, ref.key_length, range_fl & NEAR_MIN ? HA_READ_AFTER_KEY : HA_READ_KEY_OR_NEXT); - if (!error && reckey_in_range(0, &ref, item_field->field, - conds, range_fl, prefix_len)) - error= HA_ERR_KEY_NOT_FOUND; - } + if ((!error || error == HA_ERR_KEY_NOT_FOUND) && + reckey_in_range(0, &ref, item_field->field, + conds, range_fl, prefix_len)) + error= HA_ERR_KEY_NOT_FOUND; if (table->key_read) { table->key_read= 0; @@ -260,16 +259,15 @@ int opt_sum_query(TABLE_LIST *tables, List<Item> &all_fields,COND *conds) if (!ref.key_length) error= table->file->index_last(table->record[0]); else - { error= table->file->index_read(table->record[0], key_buff, ref.key_length, range_fl & NEAR_MAX ? HA_READ_BEFORE_KEY : HA_READ_PREFIX_LAST_OR_PREV); - if (!error && reckey_in_range(1, &ref, item_field->field, - conds, range_fl, prefix_len)) - error= HA_ERR_KEY_NOT_FOUND; - } + if ((!error || error == HA_ERR_KEY_NOT_FOUND) && + reckey_in_range(1, &ref, item_field->field, + conds, range_fl, prefix_len)) + error= HA_ERR_KEY_NOT_FOUND; if (table->key_read) { table->key_read=0; |