1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Fixed LP bug #899777.

KEYUSE elements for a possible hash join key are not sorted by field
numbers of the second table T of the hash join operation. Besides
some of these KEYUSE elements cannot be used to build any key as their
key expressions depend on the tables that are planned to be accessed
after the table T. 
The code before the patch did not take this into account and, as a result,
execition of a query the employing block-based hash join algorithm could
cause a crash or return a wrong result set.
This commit is contained in:
Igor Babaev
2011-12-05 09:50:24 -08:00
parent b5a05df61e
commit 7d1f41265c
4 changed files with 135 additions and 14 deletions

View File

@ -77,6 +77,8 @@ typedef struct keyuse_t {
bool is_for_hash_join() { return is_hash_join_key_no(key); }
} KEYUSE;
#define NO_KEYPART ((uint)(-1))
class store_key;
const int NO_REF_PART= uint(-1);