diff options
author | unknown <tomas@poseidon.ndb.mysql.com> | 2005-05-02 13:18:26 +0200 |
---|---|---|
committer | unknown <tomas@poseidon.ndb.mysql.com> | 2005-05-02 13:18:26 +0200 |
commit | 00ad6116bc4f01ea0d267b279ecba209fe015282 (patch) | |
tree | 3e17ad766a1ecabf2eda4cd41b97efb6367c627e /storage/heap/hp_hash.c | |
parent | 32f76aea5cc59ba3aab9cf0cafe6c3165bd882c4 (diff) | |
parent | 186e5cd2298cc51c13f80967480b12a3f13b5dfa (diff) | |
download | mariadb-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.c | 11 |
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) { |