summaryrefslogtreecommitdiff
path: root/myisam/mi_dbug.c
diff options
context:
space:
mode:
authorunknown <ingo@mysql.com>2005-09-23 10:15:11 +0200
committerunknown <ingo@mysql.com>2005-09-23 10:15:11 +0200
commit674c8165ea4b3430f397d84b0c79642de7b12ce4 (patch)
treecc4780b69204be49c89964f8598a382e90523fe0 /myisam/mi_dbug.c
parenta89807336f8fa8b39bd519198f26db6c2b1fb247 (diff)
downloadmariadb-git-674c8165ea4b3430f397d84b0c79642de7b12ce4.tar.gz
Bug#9112 - Merge table with composite index producing invalid results with some queries
The problem was an ab-use of last_rkey_length. Formerly we saved the packed key length (of the search key) in this element. But in certain cases it got replaced by the (packed) result key length. Now we use a new element of MI_INFO to save the packed key length of the search key. myisam/mi_dbug.c: Bug#9112 - Merge table with composite index producing invalid results with some queries Fixed the recognition of NULL values in _mi_print_key(). myisam/mi_rkey.c: Bug#9112 - Merge table with composite index producing invalid results with some queries Saved the packed key length in a new element of MI_INFO. myisam/mi_search.c: Bug#9112 - Merge table with composite index producing invalid results with some queries Added a comment and trace prints. myisam/myisamdef.h: Bug#9112 - Merge table with composite index producing invalid results with some queries Added a new element to store the packed key length for use by the MyISAMMRG engine. myisammrg/myrg_rkey.c: Bug#9112 - Merge table with composite index producing invalid results with some queries Changed to use the new element of MI_INFO to get at the packed key length. mysql-test/r/merge.result: Bug#9112 - Merge table with composite index producing invalid results with some queries The test result. mysql-test/t/merge.test: Bug#9112 - Merge table with composite index producing invalid results with some queries The test case.
Diffstat (limited to 'myisam/mi_dbug.c')
-rw-r--r--myisam/mi_dbug.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/myisam/mi_dbug.c b/myisam/mi_dbug.c
index fe5b36fd304..8e7777e92a5 100644
--- a/myisam/mi_dbug.c
+++ b/myisam/mi_dbug.c
@@ -40,12 +40,12 @@ void _mi_print_key(FILE *stream, register MI_KEYSEG *keyseg,
end= key+ keyseg->length;
if (keyseg->flag & HA_NULL_PART)
{
- if (!*key)
+ /* A NULL value is encoded by a 1-byte flag. Zero means NULL. */
+ if (! *(key++))
{
fprintf(stream,"NULL");
continue;
}
- key++;
}
switch (keyseg->type) {