Bit type: code cleanup.

sql/field.cc:
  We have to use memcmp() here to get determinate results.
sql/sql_table.cc:
  Should set pack_flag here instead of doing |=
This commit is contained in:
unknown 2005-04-12 19:36:21 +05:00
parent 79c62d3168
commit 3767fb0118
2 changed files with 5 additions and 3 deletions

View File

@ -7879,7 +7879,7 @@ int Field_bit::key_cmp(const byte *str, uint length)
str++;
length--;
}
return bcmp(ptr, str, length);
return memcmp(ptr, str, length);
}
@ -7893,7 +7893,7 @@ int Field_bit::cmp_offset(uint row_offset)
if ((flag= (int) (bits_a - bits_b)))
return flag;
}
return bcmp(ptr, ptr + row_offset, field_length);
return memcmp(ptr, ptr + row_offset, field_length);
}

View File

@ -563,7 +563,9 @@ int prepare_create_field(create_field *sql_field,
sql_field->pack_flag=f_settype((uint) sql_field->sql_type);
break;
case FIELD_TYPE_BIT:
sql_field->pack_flag|= FIELDFLAG_NUMBER;
sql_field->pack_flag= f_bit_as_char(sql_field->pack_flag) ?
FIELDFLAG_NUMBER | FIELDFLAG_TREAT_BIT_AS_CHAR :
FIELDFLAG_NUMBER;
break;
case FIELD_TYPE_NEWDECIMAL:
sql_field->pack_flag=(FIELDFLAG_NUMBER |