diff options
author | unknown <ingo@mysql.com> | 2005-09-23 10:15:11 +0200 |
---|---|---|
committer | unknown <ingo@mysql.com> | 2005-09-23 10:15:11 +0200 |
commit | 674c8165ea4b3430f397d84b0c79642de7b12ce4 (patch) | |
tree | cc4780b69204be49c89964f8598a382e90523fe0 /myisam/mi_dbug.c | |
parent | a89807336f8fa8b39bd519198f26db6c2b1fb247 (diff) | |
download | mariadb-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.c | 4 |
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) { |