ha_innodb.cc, ha_innodb.h:

  Move to the right place the flag which bans use of HA_READ_PREFIX_LAST; add diagnostics and remove the assertion on line 2180 of ha_innodb.cc
parent 9aeb138a
...@@ -2179,7 +2179,12 @@ convert_search_mode_to_innobase( ...@@ -2179,7 +2179,12 @@ convert_search_mode_to_innobase(
case HA_READ_AFTER_KEY: return(PAGE_CUR_G); case HA_READ_AFTER_KEY: return(PAGE_CUR_G);
case HA_READ_BEFORE_KEY: return(PAGE_CUR_L); case HA_READ_BEFORE_KEY: return(PAGE_CUR_L);
case HA_READ_PREFIX: return(PAGE_CUR_GE); case HA_READ_PREFIX: return(PAGE_CUR_GE);
case HA_READ_PREFIX_LAST: ut_a(0); return(PAGE_CUR_LE); case HA_READ_PREFIX_LAST:
ut_print_timestamp(stderr);
fprintf(stderr,
" InnoDB: Warning: Using HA_READ_PREFIX_LAST\n");
return(PAGE_CUR_LE);
/* InnoDB does not yet support ..PREFIX_LAST! /* InnoDB does not yet support ..PREFIX_LAST!
We have to add a new search flag We have to add a new search flag
PAGE_CUR_LE_OR_PREFIX to InnoDB. */ PAGE_CUR_LE_OR_PREFIX to InnoDB. */
......
...@@ -82,6 +82,7 @@ class ha_innobase: public handler ...@@ -82,6 +82,7 @@ class ha_innobase: public handler
HA_PRIMARY_KEY_IN_READ_INDEX | HA_PRIMARY_KEY_IN_READ_INDEX |
HA_DROP_BEFORE_CREATE | HA_DROP_BEFORE_CREATE |
HA_NO_PREFIX_CHAR_KEYS | HA_NO_PREFIX_CHAR_KEYS |
HA_NOT_READ_PREFIX_LAST |
HA_TABLE_SCAN_ON_INDEX), HA_TABLE_SCAN_ON_INDEX),
last_dup_key((uint) -1), last_dup_key((uint) -1),
start_of_scan(0) start_of_scan(0)
...@@ -96,7 +97,7 @@ class ha_innobase: public handler ...@@ -96,7 +97,7 @@ class ha_innobase: public handler
ulong index_flags(uint idx) const ulong index_flags(uint idx) const
{ {
return (HA_READ_NEXT | HA_READ_PREV | HA_READ_ORDER | return (HA_READ_NEXT | HA_READ_PREV | HA_READ_ORDER |
HA_KEY_READ_ONLY | HA_NOT_READ_PREFIX_LAST); HA_KEY_READ_ONLY);
} }
uint max_record_length() const { return HA_MAX_REC_LENGTH; } uint max_record_length() const { return HA_MAX_REC_LENGTH; }
uint max_keys() const { return MAX_KEY; } uint max_keys() const { return MAX_KEY; }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment