After-fix for WL#2649 Number-to-string conversion.
This change fixes test failure for partition_repair_myisam and partition_recover_myisam. The problem was that: - the file std_data/corrupt_crash.MYI contains charsetnr=63 (binary) for index segments. - the new .frm file contains charsetnr=8 (latin1) for the same segments. As a result REPAIR refused to repair frm+MYI files with different segment definition. This fix restores the old behavior for frm and MYI files: they now store charsetnr=63 for numeric/datetime data types.
This commit is contained in:
parent
d59c06d96c
commit
da2e47a533
@ -689,7 +689,7 @@ int ha_heap::create(const char *name, TABLE *table_arg,
|
||||
if (field->flags & (ENUM_FLAG | SET_FLAG))
|
||||
seg->charset= &my_charset_bin;
|
||||
else
|
||||
seg->charset= field->charset();
|
||||
seg->charset= field->charset_for_protocol();
|
||||
if (field->null_ptr)
|
||||
{
|
||||
seg->null_bit= field->null_bit;
|
||||
|
@ -274,7 +274,7 @@ int table2myisam(TABLE *table_arg, MI_KEYDEF **keydef_out,
|
||||
keydef[i].seg[j].bit_start= keydef[i].seg[j].bit_end=
|
||||
keydef[i].seg[j].bit_length= 0;
|
||||
keydef[i].seg[j].bit_pos= 0;
|
||||
keydef[i].seg[j].language= field->charset()->number;
|
||||
keydef[i].seg[j].language= field->charset_for_protocol()->number;
|
||||
|
||||
if (field->null_ptr)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user