From 75782a506d912f8ca8d6616fc727b241241e4e9f Mon Sep 17 00:00:00 2001 From: "heikki@hundin.mysql.fi" <> Date: Tue, 18 Feb 2003 19:57:05 +0200 Subject: [PATCH] my_base.h: Add comment about what kind of key value prefixes HA_READ_KEY_PREFIX_LAST etc. allow as a search key --- include/my_base.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/include/my_base.h b/include/my_base.h index e1761eac8f9..f91b45ee469 100644 --- a/include/my_base.h +++ b/include/my_base.h @@ -49,6 +49,21 @@ /* The following is parameter to ha_rkey() how to use key */ +/* We define a complete-field prefix of a key value as a prefix where the +last included field in the prefix contains the full field, not just some bytes +from the start of the field. A partial-field prefix is allowed to +contain only a few first bytes from the last included field. + +Below HA_READ_KEY_EXACT, ..., HA_READ_BEFORE_KEY can take a +complete-field prefix of a key value as the search key. HA_READ_PREFIX +and HA_READ_PREFIX_LAST could also take a partial-field prefix, but +currently (4.0.10) they are only used with complete-field prefixes. MySQL uses +a padding trick to implement LIKE 'abc%' queries. + +NOTE that in InnoDB HA_READ_PREFIX_LAST will NOT work with a partial-field +prefix because InnoDB currently strips spaces from the end of varchar +fields! */ + enum ha_rkey_function { HA_READ_KEY_EXACT, /* Find first record else error */ HA_READ_KEY_OR_NEXT, /* Record or next record */