mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Fix for bug #22533: Traditional: Too-long bit value not rejected.
Problem: storing >=8 byte hexadecimal values we don't check data. Fix: check if the data fits the {u}longlong range. mysql-test/r/select.result: Fix for bug #22533: Traditional: Too-long bit value not rejected. - test result. mysql-test/t/range.test: Fix for bug #22533: Traditional: Too-long bit value not rejected. - adjusted. mysql-test/t/select.test: Fix for bug #22533: Traditional: Too-long bit value not rejected. - test case. sql/item.cc: Fix for bug #22533: Traditional: Too-long bit value not rejected. - limit storing value to {U}LONGLONG_MAX in numeric context.
This commit is contained in:
@ -2819,3 +2819,20 @@ select min(key1) from t1 where key1 >= 0.3762 and rand() + 0.5 >= 0.5;
|
||||
min(key1)
|
||||
0.37619999051094
|
||||
DROP TABLE t1,t2;
|
||||
create table t1(a bigint unsigned, b bigint);
|
||||
insert into t1 values (0xfffffffffffffffff, 0xfffffffffffffffff),
|
||||
(0x10000000000000000, 0x10000000000000000),
|
||||
(0x8fffffffffffffff, 0x8fffffffffffffff);
|
||||
Warnings:
|
||||
Warning 1264 Data truncated; out of range for column 'a' at row 1
|
||||
Warning 1264 Data truncated; out of range for column 'b' at row 1
|
||||
Warning 1264 Data truncated; out of range for column 'a' at row 2
|
||||
Warning 1264 Data truncated; out of range for column 'b' at row 2
|
||||
Warning 1264 Data truncated; out of range for column 'b' at row 3
|
||||
select hex(a), hex(b) from t1;
|
||||
hex(a) hex(b)
|
||||
FFFFFFFFFFFFFFFF 7FFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFF 7FFFFFFFFFFFFFFF
|
||||
8FFFFFFFFFFFFFFF 7FFFFFFFFFFFFFFF
|
||||
drop table t1;
|
||||
End of 4.1 tests
|
||||
|
@ -400,8 +400,8 @@ select count(*) from t1 where x = 18446744073709551601;
|
||||
|
||||
|
||||
create table t2 (x bigint not null);
|
||||
insert into t2(x) values (0xfffffffffffffff0);
|
||||
insert into t2(x) values (0xfffffffffffffff1);
|
||||
insert into t2(x) values (-16);
|
||||
insert into t2(x) values (-15);
|
||||
select * from t2;
|
||||
select count(*) from t2 where x>0;
|
||||
select count(*) from t2 where x=0;
|
||||
|
@ -2342,4 +2342,15 @@ select min(key1) from t1 where key1 >= 0.3762 and rand() + 0.5 >= 0.5;
|
||||
DROP TABLE t1,t2;
|
||||
--enable_ps_protocol
|
||||
|
||||
# End of 4.1 tests
|
||||
#
|
||||
# Bug #22533: storing large hex strings
|
||||
#
|
||||
|
||||
create table t1(a bigint unsigned, b bigint);
|
||||
insert into t1 values (0xfffffffffffffffff, 0xfffffffffffffffff),
|
||||
(0x10000000000000000, 0x10000000000000000),
|
||||
(0x8fffffffffffffff, 0x8fffffffffffffff);
|
||||
select hex(a), hex(b) from t1;
|
||||
drop table t1;
|
||||
|
||||
--echo End of 4.1 tests
|
||||
|
Reference in New Issue
Block a user