Loading mysql-test/r/strict.result +7 −0 Original line number Diff line number Diff line Loading @@ -1258,3 +1258,10 @@ select * from t1; d 2000-10-01 drop table t1; set @@sql_mode='traditional'; create table t1(a bit(2)); insert into t1 values(b'101'); ERROR 22001: Data too long for column 'a' at row 1 select * from t1; a drop table t1; mysql-test/t/strict.test +11 −0 Original line number Diff line number Diff line Loading @@ -1118,3 +1118,14 @@ insert into t1 values ('2000-10-01'); update t1 set d = 1100; select * from t1; drop table t1; # # BIT fields # set @@sql_mode='traditional'; create table t1(a bit(2)); --error 1406 insert into t1 values(b'101'); select * from t1; drop table t1; sql/field.cc +8 −2 Original line number Diff line number Diff line Loading @@ -7846,6 +7846,9 @@ int Field_bit::store(const char *from, uint length, CHARSET_INFO *cs) { set_rec_bits(0xff, bit_ptr, bit_ofs, bit_len); memset(ptr, 0xff, field_length); if (table->in_use->really_abort_on_warning()) set_warning(MYSQL_ERROR::WARN_LEVEL_ERROR, ER_DATA_TOO_LONG, 1); else set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_OUT_OF_RANGE, 1); return 1; } Loading Loading @@ -8063,6 +8066,9 @@ int Field_bit_as_char::store(const char *from, uint length, CHARSET_INFO *cs) memset(ptr, 0xff, field_length); if (bits) *ptr&= ((1 << bits) - 1); /* set first byte */ if (table->in_use->really_abort_on_warning()) set_warning(MYSQL_ERROR::WARN_LEVEL_ERROR, ER_DATA_TOO_LONG, 1); else set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_OUT_OF_RANGE, 1); return 1; } Loading Loading
mysql-test/r/strict.result +7 −0 Original line number Diff line number Diff line Loading @@ -1258,3 +1258,10 @@ select * from t1; d 2000-10-01 drop table t1; set @@sql_mode='traditional'; create table t1(a bit(2)); insert into t1 values(b'101'); ERROR 22001: Data too long for column 'a' at row 1 select * from t1; a drop table t1;
mysql-test/t/strict.test +11 −0 Original line number Diff line number Diff line Loading @@ -1118,3 +1118,14 @@ insert into t1 values ('2000-10-01'); update t1 set d = 1100; select * from t1; drop table t1; # # BIT fields # set @@sql_mode='traditional'; create table t1(a bit(2)); --error 1406 insert into t1 values(b'101'); select * from t1; drop table t1;
sql/field.cc +8 −2 Original line number Diff line number Diff line Loading @@ -7846,6 +7846,9 @@ int Field_bit::store(const char *from, uint length, CHARSET_INFO *cs) { set_rec_bits(0xff, bit_ptr, bit_ofs, bit_len); memset(ptr, 0xff, field_length); if (table->in_use->really_abort_on_warning()) set_warning(MYSQL_ERROR::WARN_LEVEL_ERROR, ER_DATA_TOO_LONG, 1); else set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_OUT_OF_RANGE, 1); return 1; } Loading Loading @@ -8063,6 +8066,9 @@ int Field_bit_as_char::store(const char *from, uint length, CHARSET_INFO *cs) memset(ptr, 0xff, field_length); if (bits) *ptr&= ((1 << bits) - 1); /* set first byte */ if (table->in_use->really_abort_on_warning()) set_warning(MYSQL_ERROR::WARN_LEVEL_ERROR, ER_DATA_TOO_LONG, 1); else set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_OUT_OF_RANGE, 1); return 1; } Loading