Hi! Here is a review of this <cut>
--- a/storage/heap/hp_create.c 2010-08-05 19:56:11 +0000 +++ b/storage/heap/hp_create.c 2010-11-16 21:03:26 +0000 @@ -104,6 +104,13 @@ int heap_create(const char *name, uint k */ keyinfo->seg[j].type= HA_KEYTYPE_VARTEXT1; break; + case HA_KEYTYPE_BIT: + /* + The odd bits which stored separately (if they are present + (bit_pos, bit_length)) are already present in seg[j].length as + additional byte.
Add: See field.h, function key_length() <cut>
@@ -720,7 +765,8 @@ uint hp_rb_make_key(HP_KEYDEF *keydef, u { uint length= seg->length; uchar *pos= (uchar*) rec + seg->start; - + DBUG_ASSERT(seg->type != HA_KEYTYPE_BIT);
Add a check in the test suite that one can't create a rb key with bit fields. Add also a MRT for this. (you can probable reuse something from type_bit.test and archive_bitfield.test for this) Regards, Monty