Loading mysql-test/r/alter_table.result +12 −0 Original line number Diff line number Diff line Loading @@ -1240,4 +1240,16 @@ select (@orig_max_data_length > @changed_max_data_length); (@orig_max_data_length > @changed_max_data_length) 1 drop table t1; CREATE TABLE t1(a INT AUTO_INCREMENT PRIMARY KEY, b ENUM('a', 'b', 'c') NOT NULL); INSERT INTO t1 (b) VALUES ('a'), ('c'), ('b'), ('b'), ('a'); ALTER TABLE t1 MODIFY b ENUM('a', 'z', 'b', 'c') NOT NULL; SELECT * FROM t1; a b 1 a 2 c 3 b 4 b 5 a DROP TABLE t1; End of 5.1 tests mysql-test/r/binlog_format_basic.result +3 −0 Original line number Diff line number Diff line SELECT @@GLOBAL.binlog_format; @@GLOBAL.binlog_format STATEMENT '#---------------------BS_STVARS_002_01----------------------#' SELECT COUNT(@@GLOBAL.binlog_format); COUNT(@@GLOBAL.binlog_format) Loading mysql-test/t/alter_table.test +10 −0 Original line number Diff line number Diff line Loading @@ -977,4 +977,14 @@ select (@orig_max_data_length > @changed_max_data_length); drop table t1; # # Bug #23113: Different behavior on altering ENUM fields between 5.0 and 5.1 # CREATE TABLE t1(a INT AUTO_INCREMENT PRIMARY KEY, b ENUM('a', 'b', 'c') NOT NULL); INSERT INTO t1 (b) VALUES ('a'), ('c'), ('b'), ('b'), ('a'); ALTER TABLE t1 MODIFY b ENUM('a', 'z', 'b', 'c') NOT NULL; SELECT * FROM t1; DROP TABLE t1; --echo End of 5.1 tests mysql-test/t/binlog_format_basic.test +7 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,13 @@ # # ############################################################################### ################################################################### # BUG#39812: Make statement replication default for 5.1 (to match 5.0) # We just verify that the default binlog_format is STATEMENT in 5.1. # In 6.0, it should be MIXED. ################################################################### SELECT @@GLOBAL.binlog_format; --echo '#---------------------BS_STVARS_002_01----------------------#' #################################################################### # Displaying default value # Loading sql/field.cc +25 −10 Original line number Diff line number Diff line Loading @@ -8783,28 +8783,43 @@ bool Field::eq_def(Field *field) return 1; } /** @return returns 1 if the fields are equally defined */ bool Field_enum::eq_def(Field *field) { if (!Field::eq_def(field)) return 0; TYPELIB *from_lib=((Field_enum*) field)->typelib; return compare_enum_values(((Field_enum*) field)->typelib); } if (typelib->count < from_lib->count) return 0; for (uint i=0 ; i < from_lib->count ; i++) bool Field_enum::compare_enum_values(TYPELIB *values) { if (typelib->count != values->count) return FALSE; for (uint i= 0; i < typelib->count; i++) if (my_strnncoll(field_charset, (const uchar*) typelib->type_names[i], strlen(typelib->type_names[i]), (const uchar*)from_lib->type_names[i], strlen(from_lib->type_names[i]))) typelib->type_lengths[i], (const uchar*) values->type_names[i], values->type_lengths[i])) return FALSE; return TRUE; } uint Field_enum::is_equal(Create_field *new_field) { if (!Field_str::is_equal(new_field)) return 0; return 1; return compare_enum_values(new_field->interval); } /** @return returns 1 if the fields are equally defined Loading Loading
mysql-test/r/alter_table.result +12 −0 Original line number Diff line number Diff line Loading @@ -1240,4 +1240,16 @@ select (@orig_max_data_length > @changed_max_data_length); (@orig_max_data_length > @changed_max_data_length) 1 drop table t1; CREATE TABLE t1(a INT AUTO_INCREMENT PRIMARY KEY, b ENUM('a', 'b', 'c') NOT NULL); INSERT INTO t1 (b) VALUES ('a'), ('c'), ('b'), ('b'), ('a'); ALTER TABLE t1 MODIFY b ENUM('a', 'z', 'b', 'c') NOT NULL; SELECT * FROM t1; a b 1 a 2 c 3 b 4 b 5 a DROP TABLE t1; End of 5.1 tests
mysql-test/r/binlog_format_basic.result +3 −0 Original line number Diff line number Diff line SELECT @@GLOBAL.binlog_format; @@GLOBAL.binlog_format STATEMENT '#---------------------BS_STVARS_002_01----------------------#' SELECT COUNT(@@GLOBAL.binlog_format); COUNT(@@GLOBAL.binlog_format) Loading
mysql-test/t/alter_table.test +10 −0 Original line number Diff line number Diff line Loading @@ -977,4 +977,14 @@ select (@orig_max_data_length > @changed_max_data_length); drop table t1; # # Bug #23113: Different behavior on altering ENUM fields between 5.0 and 5.1 # CREATE TABLE t1(a INT AUTO_INCREMENT PRIMARY KEY, b ENUM('a', 'b', 'c') NOT NULL); INSERT INTO t1 (b) VALUES ('a'), ('c'), ('b'), ('b'), ('a'); ALTER TABLE t1 MODIFY b ENUM('a', 'z', 'b', 'c') NOT NULL; SELECT * FROM t1; DROP TABLE t1; --echo End of 5.1 tests
mysql-test/t/binlog_format_basic.test +7 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,13 @@ # # ############################################################################### ################################################################### # BUG#39812: Make statement replication default for 5.1 (to match 5.0) # We just verify that the default binlog_format is STATEMENT in 5.1. # In 6.0, it should be MIXED. ################################################################### SELECT @@GLOBAL.binlog_format; --echo '#---------------------BS_STVARS_002_01----------------------#' #################################################################### # Displaying default value # Loading
sql/field.cc +25 −10 Original line number Diff line number Diff line Loading @@ -8783,28 +8783,43 @@ bool Field::eq_def(Field *field) return 1; } /** @return returns 1 if the fields are equally defined */ bool Field_enum::eq_def(Field *field) { if (!Field::eq_def(field)) return 0; TYPELIB *from_lib=((Field_enum*) field)->typelib; return compare_enum_values(((Field_enum*) field)->typelib); } if (typelib->count < from_lib->count) return 0; for (uint i=0 ; i < from_lib->count ; i++) bool Field_enum::compare_enum_values(TYPELIB *values) { if (typelib->count != values->count) return FALSE; for (uint i= 0; i < typelib->count; i++) if (my_strnncoll(field_charset, (const uchar*) typelib->type_names[i], strlen(typelib->type_names[i]), (const uchar*)from_lib->type_names[i], strlen(from_lib->type_names[i]))) typelib->type_lengths[i], (const uchar*) values->type_names[i], values->type_lengths[i])) return FALSE; return TRUE; } uint Field_enum::is_equal(Create_field *new_field) { if (!Field_str::is_equal(new_field)) return 0; return 1; return compare_enum_values(new_field->interval); } /** @return returns 1 if the fields are equally defined Loading