summaryrefslogtreecommitdiff
path: root/storage/heap/hp_hash.c
diff options
context:
space:
mode:
authorunknown <tomas@poseidon.ndb.mysql.com>2005-05-02 13:18:26 +0200
committerunknown <tomas@poseidon.ndb.mysql.com>2005-05-02 13:18:26 +0200
commit00ad6116bc4f01ea0d267b279ecba209fe015282 (patch)
tree3e17ad766a1ecabf2eda4cd41b97efb6367c627e /storage/heap/hp_hash.c
parent32f76aea5cc59ba3aab9cf0cafe6c3165bd882c4 (diff)
parent186e5cd2298cc51c13f80967480b12a3f13b5dfa (diff)
downloadmariadb-git-00ad6116bc4f01ea0d267b279ecba209fe015282.tar.gz
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-clean BitKeeper/etc/logging_ok: auto-union configure.in: Auto merged sql/ha_innodb.cc: Auto merged sql/ha_myisam.cc: Auto merged sql/ha_myisammrg.cc: Auto merged sql/lock.cc: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_repl.cc: Auto merged storage/heap/hp_hash.c: Auto merged storage/innobase/dict/dict0dict.c: Auto merged storage/innobase/fil/fil0fil.c: Auto merged storage/innobase/include/dict0dict.h: Auto merged storage/myisam/Makefile.am: Auto merged storage/myisam/mi_key.c: Auto merged storage/myisam/myisampack.c: Auto merged storage/myisammrg/myrg_open.c: Auto merged storage/ndb/include/ndbapi/NdbDictionary.hpp: Auto merged storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp: Auto merged storage/ndb/src/ndbapi/ndberror.c: Auto merged
Diffstat (limited to 'storage/heap/hp_hash.c')
-rw-r--r--storage/heap/hp_hash.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/storage/heap/hp_hash.c b/storage/heap/hp_hash.c
index 3121ef71fb0..52a250bd7af 100644
--- a/storage/heap/hp_hash.c
+++ b/storage/heap/hp_hash.c
@@ -255,6 +255,9 @@ ulong hp_hashnr(register HP_KEYDEF *keydef, register const byte *key)
if (*pos) /* Found null */
{
nr^= (nr << 1) | 1;
+ /* Add key pack length (2) to key for VARCHAR segments */
+ if (seg->type == HA_KEYTYPE_VARTEXT1)
+ key+= 2;
continue;
}
pos++;
@@ -390,6 +393,9 @@ ulong hp_hashnr(register HP_KEYDEF *keydef, register const byte *key)
if (*pos)
{
nr^= (nr << 1) | 1;
+ /* Add key pack length (2) to key for VARCHAR segments */
+ if (seg->type == HA_KEYTYPE_VARTEXT1)
+ key+= 2;
continue;
}
pos++;
@@ -584,7 +590,12 @@ int hp_key_cmp(HP_KEYDEF *keydef, const byte *rec, const byte *key)
if (found_null != (int) *key++)
return 1;
if (found_null)
+ {
+ /* Add key pack length (2) to key for VARCHAR segments */
+ if (seg->type == HA_KEYTYPE_VARTEXT1)
+ key+= 2;
continue;
+ }
}
if (seg->type == HA_KEYTYPE_TEXT)
{