mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 10:14:19 +01:00
ha_innodb.cc:
Since MySQL uses HA_READ_PREFIX_LAST in a wrong place, we make InnoDB to convert it to a right search condition sql/ha_innodb.cc: Since MySQL uses HA_READ_PREFIX_LAST in a wrong place, we make InnoDB to convert it to a right search condition
This commit is contained in:
parent
b2f8f07d92
commit
2760ecc829
1 changed files with 12 additions and 1 deletions
|
@ -2255,7 +2255,18 @@ convert_search_mode_to_innobase(
|
|||
case HA_READ_AFTER_KEY: return(PAGE_CUR_G);
|
||||
case HA_READ_BEFORE_KEY: return(PAGE_CUR_L);
|
||||
case HA_READ_PREFIX: return(PAGE_CUR_GE);
|
||||
case HA_READ_PREFIX_LAST: return(PAGE_CUR_LE_OR_EXTENDS);
|
||||
case HA_READ_PREFIX_LAST: return(PAGE_CUR_LE);
|
||||
/* TODO: 1) this should really be
|
||||
return(PAGE_CUR_LE_OR_EXTENDS); but since MySQL uses
|
||||
a wrong flag in search, we convert this to PAGE_CUR_LE;
|
||||
2) if the character set is not latin1, then InnoDB
|
||||
uses a MySQL function innobase_mysql_cmp() to
|
||||
compare CHAR and VARCHAR strings; since that function
|
||||
does not return the number of matched bytes,
|
||||
PAGE_CUR_LE_OR_EXTENDS does not currently work: we
|
||||
should probably write my_sortncmp_with_n_matcehd_bytes()
|
||||
to determine if a field 'extends' another;
|
||||
see dev-public discussion on Feb 7th, 2003 */
|
||||
default: assert(0);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue