diff options
author | unknown <monty@hundin.mysql.fi> | 2002-01-16 00:42:52 +0200 |
---|---|---|
committer | unknown <monty@hundin.mysql.fi> | 2002-01-16 00:42:52 +0200 |
commit | f015cbdc7e3427cf0f77012c4ce89f3cf8d5dd5f (patch) | |
tree | 890cb295feeab3ebd6413663178be56ec5ed21a2 /heap | |
parent | 71a5af5b52642cbe64960275f1994f5a57832ff3 (diff) | |
download | mariadb-git-f015cbdc7e3427cf0f77012c4ce89f3cf8d5dd5f.tar.gz |
Add support for NULL=NULL in keys (Used in GROUP BY optimization)
Add ISAM to Windows version
Fix of test results
Fixes for NULL keys in HEAP tables.
Docs/manual.texi:
Changelog
heap/hp_open.c:
Add support for NULL=NULL in keys (for GROUP BY)
heap/hp_rkey.c:
Cleanup
heap/hp_write.c:
Cleanup
include/config-win.h:
Add ISAM to Windows version
include/my_base.h:
Add support for NULL=NULL in keys (for GROUP BY)
libmysqld/Makefile.am:
Rename of innobase to innodb
myisam/mi_write.c:
Add support for NULL=NULL in keys (for GROUP BY)
BitKeeper/etc/ignore:
Added libmysqld/ha_innodb.cc to the ignore list
mysql-test/r/group_by.result:
Test of NULL keys in HEAP tables
mysql-test/r/heap.result:
Test of NULL keys in HEAP tables
mysql-test/r/null.result:
Cleanup
mysql-test/r/order_by.result:
Fix for result of new ORDER BY optimization
mysql-test/t/group_by.test:
Test of NULL keys in HEAP tables
mysql-test/t/heap.test:
Test of NULL keys in HEAP tables
mysql-test/t/null.test:
Cleanup
sql/ha_heap.cc:
Add support of NULL keys
sql/item_strfunc.h:
Fix for BINARY and CAST functions
sql/item_timefunc.h:
Fix for BINARY and CAST functions
sql/sql_parse.cc:
Cleanup
sql/sql_select.cc:
Add support for NULL=NULL in keys (for GROUP BY)
Diffstat (limited to 'heap')
-rw-r--r-- | heap/hp_open.c | 3 | ||||
-rw-r--r-- | heap/hp_rkey.c | 2 | ||||
-rw-r--r-- | heap/hp_write.c | 2 |
3 files changed, 4 insertions, 3 deletions
diff --git a/heap/hp_open.c b/heap/hp_open.c index 69e02945253..938ab8c4f78 100644 --- a/heap/hp_open.c +++ b/heap/hp_open.c @@ -46,7 +46,8 @@ HP_INFO *heap_open(const char *name, int mode, uint keys, HP_KEYDEF *keydef, for (j=length=0 ; j < keydef[i].keysegs; j++) { length+=keydef[i].seg[j].length; - if (keydef[i].seg[j].null_bit) + if (keydef[i].seg[j].null_bit && + !(keydef[i].flag & HA_NULL_ARE_EQUAL)) keydef[i].flag |= HA_NULL_PART_KEY; } keydef[i].length=length; diff --git a/heap/hp_rkey.c b/heap/hp_rkey.c index 37ebf5c784e..e7a1d81fba6 100644 --- a/heap/hp_rkey.c +++ b/heap/hp_rkey.c @@ -20,7 +20,7 @@ int heap_rkey(HP_INFO *info, byte *record, int inx, const byte *key) { byte *pos; HP_SHARE *share=info->s; - DBUG_ENTER("hp_rkey"); + DBUG_ENTER("heap_rkey"); DBUG_PRINT("enter",("base: %lx inx: %d",info,inx)); if ((uint) inx >= share->keys) diff --git a/heap/hp_write.c b/heap/hp_write.c index a219c8be23a..806f40e5be5 100644 --- a/heap/hp_write.c +++ b/heap/hp_write.c @@ -238,7 +238,7 @@ int _hp_write_key(register HP_SHARE *info, HP_KEYDEF *keyinfo, _hp_movelink(pos,gpos,empty); } - /* Check if dupplicated keys */ + /* Check if duplicated keys */ if ((keyinfo->flag & HA_NOSAME) && pos == gpos && (!(keyinfo->flag & HA_NULL_PART_KEY) || !hp_if_null_in_key(keyinfo, record))) |