summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/ha_ndbcluster.cc25
-rw-r--r--sql/ha_ndbcluster.h4
-rw-r--r--sql/handler.cc6
3 files changed, 27 insertions, 8 deletions
diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc
index 10ac9fbf84f..00b2dee7165 100644
--- a/sql/ha_ndbcluster.cc
+++ b/sql/ha_ndbcluster.cc
@@ -1948,8 +1948,8 @@ int ha_ndbcluster::index_end()
int ha_ndbcluster::index_read(byte *buf,
- const byte *key, uint key_len,
- enum ha_rkey_function find_flag)
+ const byte *key, uint key_len,
+ enum ha_rkey_function find_flag)
{
DBUG_ENTER("index_read");
DBUG_PRINT("enter", ("active_index: %u, key_len: %u, find_flag: %d",
@@ -1959,7 +1959,7 @@ int ha_ndbcluster::index_read(byte *buf,
start_key.key= key;
start_key.length= key_len;
start_key.flag= find_flag;
- DBUG_RETURN(read_range_first(&start_key, NULL, false, true));
+ DBUG_RETURN(read_range_first_to_buf(&start_key, NULL, false, true, buf));
}
@@ -2013,10 +2013,25 @@ int ha_ndbcluster::read_range_first(const key_range *start_key,
const key_range *end_key,
bool eq_range, bool sorted)
{
- KEY* key_info;
- int error= 1;
byte* buf= table->record[0];
DBUG_ENTER("ha_ndbcluster::read_range_first");
+
+ DBUG_RETURN(read_range_first_to_buf(start_key,
+ end_key,
+ eq_range,
+ sorted,
+ buf));
+}
+
+inline
+int ha_ndbcluster::read_range_first_to_buf(const key_range *start_key,
+ const key_range *end_key,
+ bool eq_range, bool sorted,
+ byte* buf)
+{
+ KEY* key_info;
+ int error= 1;
+ DBUG_ENTER("ha_ndbcluster::read_range_first_to_buf");
DBUG_PRINT("info", ("eq_range: %d, sorted: %d", eq_range, sorted));
if (m_active_cursor)
diff --git a/sql/ha_ndbcluster.h b/sql/ha_ndbcluster.h
index c49a6078e7a..d71db9268bb 100644
--- a/sql/ha_ndbcluster.h
+++ b/sql/ha_ndbcluster.h
@@ -93,6 +93,10 @@ class ha_ndbcluster: public handler
int read_range_first(const key_range *start_key,
const key_range *end_key,
bool eq_range, bool sorted);
+ int read_range_first_to_buf(const key_range *start_key,
+ const key_range *end_key,
+ bool eq_range, bool sorted,
+ byte* buf);
int read_range_next();
bool get_error_message(int error, String *buf);
diff --git a/sql/handler.cc b/sql/handler.cc
index b7634b3cf33..237d4ce02de 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -1433,9 +1433,9 @@ int handler::read_range_first(const key_range *start_key,
start_key->length,
start_key->flag);
if (result)
- DBUG_RETURN((result == HA_ERR_KEY_NOT_FOUND ||
- result == HA_ERR_END_OF_FILE) ? HA_ERR_END_OF_FILE :
- result);
+ DBUG_RETURN((result == HA_ERR_KEY_NOT_FOUND)
+ ? HA_ERR_END_OF_FILE
+ : result);
DBUG_RETURN (compare_key(end_range) <= 0 ? 0 : HA_ERR_END_OF_FILE);
}