mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
Manual merge of Bug 33798
mysql-test/extra/binlog_tests/binlog.test: Manual merge of binlog test case for Bug#33798 mysql-test/suite/binlog/r/binlog_row_binlog.result: Add test case result for Bug#33798 mysql-test/suite/binlog/r/binlog_stm_binlog.result: Add test case result for Bug#33798 sql/item.cc: Use new method which accepts a unsigned flag.
This commit is contained in:
parent
57c180c103
commit
0c551b72de
4 changed files with 49 additions and 4 deletions
|
@ -108,6 +108,23 @@ drop table t1;
|
||||||
set global binlog_cache_size=@bcs;
|
set global binlog_cache_size=@bcs;
|
||||||
set session autocommit = @ac;
|
set session autocommit = @ac;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#33798: prepared statements improperly handle large unsigned ints
|
||||||
|
#
|
||||||
|
--disable_warnings
|
||||||
|
drop table if exists t1;
|
||||||
|
--enable_warnings
|
||||||
|
reset master;
|
||||||
|
create table t1 (a bigint unsigned, b bigint(20) unsigned);
|
||||||
|
prepare stmt from "insert into t1 values (?,?)";
|
||||||
|
set @a= 9999999999999999;
|
||||||
|
set @b= 14632475938453979136;
|
||||||
|
execute stmt using @a, @b;
|
||||||
|
deallocate prepare stmt;
|
||||||
|
drop table t1;
|
||||||
|
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/ /Server ver: [^,]*,/Server version,/
|
||||||
|
show binlog events from 0;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
|
||||||
# Test of a too big SET INSERT_ID: see if the truncated value goes
|
# Test of a too big SET INSERT_ID: see if the truncated value goes
|
||||||
|
|
|
@ -1072,6 +1072,22 @@ master-bin.000001 30301 Rotate 1 30345 master-bin.000002;pos=4
|
||||||
drop table t1;
|
drop table t1;
|
||||||
set global binlog_cache_size=@bcs;
|
set global binlog_cache_size=@bcs;
|
||||||
set session autocommit = @ac;
|
set session autocommit = @ac;
|
||||||
|
drop table if exists t1;
|
||||||
|
reset master;
|
||||||
|
create table t1 (a bigint unsigned, b bigint(20) unsigned);
|
||||||
|
prepare stmt from "insert into t1 values (?,?)";
|
||||||
|
set @a= 9999999999999999;
|
||||||
|
set @b= 14632475938453979136;
|
||||||
|
execute stmt using @a, @b;
|
||||||
|
deallocate prepare stmt;
|
||||||
|
drop table t1;
|
||||||
|
show binlog events from 0;
|
||||||
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
|
master-bin.000001 4 Format_desc 1 106 Server version, Binlog ver: 4
|
||||||
|
master-bin.000001 106 Query 1 227 use `test`; create table t1 (a bigint unsigned, b bigint(20) unsigned)
|
||||||
|
master-bin.000001 227 Table_map 1 269 table_id: # (test.t1)
|
||||||
|
master-bin.000001 269 Write_rows 1 315 table_id: # flags: STMT_END_F
|
||||||
|
master-bin.000001 315 Query 1 391 use `test`; drop table t1
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
reset master;
|
reset master;
|
||||||
create table t1 (id tinyint auto_increment primary key);
|
create table t1 (id tinyint auto_increment primary key);
|
||||||
|
|
|
@ -579,6 +579,21 @@ master-bin.000001 36593 Rotate 1 36637 master-bin.000002;pos=4
|
||||||
drop table t1;
|
drop table t1;
|
||||||
set global binlog_cache_size=@bcs;
|
set global binlog_cache_size=@bcs;
|
||||||
set session autocommit = @ac;
|
set session autocommit = @ac;
|
||||||
|
drop table if exists t1;
|
||||||
|
reset master;
|
||||||
|
create table t1 (a bigint unsigned, b bigint(20) unsigned);
|
||||||
|
prepare stmt from "insert into t1 values (?,?)";
|
||||||
|
set @a= 9999999999999999;
|
||||||
|
set @b= 14632475938453979136;
|
||||||
|
execute stmt using @a, @b;
|
||||||
|
deallocate prepare stmt;
|
||||||
|
drop table t1;
|
||||||
|
show binlog events from 0;
|
||||||
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
|
master-bin.000001 4 Format_desc 1 106 Server version, Binlog ver: 4
|
||||||
|
master-bin.000001 106 Query 1 227 use `test`; create table t1 (a bigint unsigned, b bigint(20) unsigned)
|
||||||
|
master-bin.000001 227 Query 1 351 use `test`; insert into t1 values (9999999999999999,14632475938453979136)
|
||||||
|
master-bin.000001 351 Query 1 427 use `test`; drop table t1
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
reset master;
|
reset master;
|
||||||
create table t1 (id tinyint auto_increment primary key);
|
create table t1 (id tinyint auto_increment primary key);
|
||||||
|
|
|
@ -2926,10 +2926,7 @@ const String *Item_param::query_val_str(String* str) const
|
||||||
{
|
{
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case INT_VALUE:
|
case INT_VALUE:
|
||||||
if (unsigned_flag)
|
str->set_int(value.integer, unsigned_flag, &my_charset_bin);
|
||||||
str->set((ulonglong) value.integer, &my_charset_bin);
|
|
||||||
else
|
|
||||||
str->set(value.integer, &my_charset_bin);
|
|
||||||
break;
|
break;
|
||||||
case REAL_VALUE:
|
case REAL_VALUE:
|
||||||
str->set_real(value.real, NOT_FIXED_DEC, &my_charset_bin);
|
str->set_real(value.real, NOT_FIXED_DEC, &my_charset_bin);
|
||||||
|
|
Loading…
Reference in a new issue