summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql')
-rw-r--r--sql/ha_berkeley.cc6
-rw-r--r--sql/sql_select.cc1
-rw-r--r--sql/table.cc3
3 files changed, 6 insertions, 4 deletions
diff --git a/sql/ha_berkeley.cc b/sql/ha_berkeley.cc
index 2a5fe775ca6..fbfd5031656 100644
--- a/sql/ha_berkeley.cc
+++ b/sql/ha_berkeley.cc
@@ -2646,7 +2646,11 @@ ha_rows ha_berkeley::estimate_rows_upper_bound()
int ha_berkeley::cmp_ref(const byte *ref1, const byte *ref2)
{
if (hidden_primary_key)
- return memcmp(ref1, ref2, BDB_HIDDEN_PRIMARY_KEY_LENGTH);
+ {
+ ulonglong a=uint5korr((char*) ref1);
+ ulonglong b=uint5korr((char*) ref2);
+ return a < b ? -1 : (a > b ? 1 : 0);
+ }
int result;
Field *field;
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 2d9d261bb31..d82a0fdcf41 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -12033,7 +12033,6 @@ static int test_if_order_by_key(ORDER *order, TABLE *table, uint idx,
*/
if (!on_primary_key &&
(table->file->table_flags() & HA_PRIMARY_KEY_IN_READ_INDEX) &&
- table->s->db_type == DB_TYPE_INNODB &&
table->s->primary_key != MAX_KEY)
{
on_primary_key= TRUE;
diff --git a/sql/table.cc b/sql/table.cc
index ce894e6910f..18a395d69af 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -782,8 +782,7 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat,
if (ha_option & HA_PRIMARY_KEY_IN_READ_INDEX)
{
field->part_of_key= share->keys_in_use;
- if (share->db_type == DB_TYPE_INNODB &&
- field->part_of_sortkey.is_set(key))
+ if (field->part_of_sortkey.is_set(key))
field->part_of_sortkey= share->keys_in_use;
}
}