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++; str++;
length--; 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))) if ((flag= (int) (bits_a - bits_b)))
return flag; 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); sql_field->pack_flag=f_settype((uint) sql_field->sql_type);
break; break;
case FIELD_TYPE_BIT: 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; break;
case FIELD_TYPE_NEWDECIMAL: case FIELD_TYPE_NEWDECIMAL:
sql_field->pack_flag=(FIELDFLAG_NUMBER | sql_field->pack_flag=(FIELDFLAG_NUMBER |