Commit f0cd4a83 authored by unknown's avatar unknown
Browse files

Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint

into  mysql.com:/usr/home/ram/work/bug22271/my50-bug22271


sql/field.cc:
  Auto merged
parents b2003316 2b3633c7
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -602,4 +602,12 @@ NULL NULL
0	0
11111111	11111111
drop table bug15583;
create table t1(a bit(1), b smallint unsigned);
insert into t1 (b, a) values ('2', '1');
Warnings:
Warning	1264	Out of range value adjusted for column 'a' at row 1
select hex(a), b from t1;
hex(a)	b
1	2
drop table t1;
End of 5.0 tests
+8 −0
Original line number Diff line number Diff line
@@ -252,5 +252,13 @@ select hex(b + 0), bin(b + 0), oct(b + 0), hex(n), bin(n), oct(n) from bug15583;
select conv(b, 10, 2), conv(b + 0, 10, 2) from bug15583;
drop table bug15583;

#
# Bug #22271: data casting may affect data stored in the next column(s?)
#

create table t1(a bit(1), b smallint unsigned);
insert into t1 (b, a) values ('2', '1');
select hex(a), b from t1;
drop table t1;

--echo End of 5.0 tests
+1 −1
Original line number Diff line number Diff line
@@ -7933,7 +7933,7 @@ int Field_bit::store(const char *from, uint length, CHARSET_INFO *cs)
      (delta == -1 && (uchar) *from > ((1 << bit_len) - 1)) ||
      (!bit_len && delta < 0))
  {
    set_rec_bits(0xff, bit_ptr, bit_ofs, bit_len);
    set_rec_bits((1 << bit_len) - 1, bit_ptr, bit_ofs, bit_len);
    memset(ptr, 0xff, bytes_in_rec);
    if (table->in_use->really_abort_on_warning())
      set_warning(MYSQL_ERROR::WARN_LEVEL_ERROR, ER_DATA_TOO_LONG, 1);