mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-24 07:13:33 +03:00 
			
		
		
		
	 03dfd986d7
			
		
	
	03dfd986d7
	
	
	
		
			
			Item_func_user doesn't calculate anything in it's val_str() method, just returns saved str_value. Though Item::save_in_field method can destroy str_value, relying on val_str() return. As a result we get the garbage stored in field. We cannot use Item::save_in_field implementation for Item_func_user, reimplement it in simpler way.
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # Replication of session variables.
 | |
| # FOREIGN_KEY_CHECKS is tested in rpl_insert_id.test
 | |
| 
 | |
| source include/master-slave.inc;
 | |
| drop table if exists t1;
 | |
| create table t1(a varchar(100),b int);
 | |
| set @@session.sql_mode=pipes_as_concat;
 | |
| insert into t1 values('My'||'SQL', 1);
 | |
| set @@session.sql_mode=default;
 | |
| insert into t1 values('1'||'2', 2);
 | |
| select * from t1 where b<3 order by a;
 | |
| save_master_pos;
 | |
| connection slave;
 | |
| sync_with_master;
 | |
| select * from t1 where b<3 order by a;
 | |
| connection master;
 | |
| # if the slave does the next sync_with_master fine, then it means it accepts the
 | |
| # two lines of ANSI syntax below, which is what we want to check.
 | |
| set @@session.sql_mode=ignore_space;
 | |
| insert into t1 values(password          ('MySQL'), 3);
 | |
| set @@session.sql_mode=ansi_quotes;
 | |
| create table "t2" ("a" int);
 | |
| drop table t1, t2;
 | |
| set @@session.sql_mode=default;
 | |
| create table t1(a int auto_increment primary key);
 | |
| create table t2(b int, a int);
 | |
| set @@session.sql_auto_is_null=1;
 | |
| insert into t1 values(null);
 | |
| insert into t2 select 1,a from t1 where a is null;
 | |
| set @@session.sql_auto_is_null=0;
 | |
| insert into t1 values(null);
 | |
| insert into t2 select 2,a from t1 where a is null;
 | |
| select * from t2 order by b;
 | |
| save_master_pos;
 | |
| connection slave;
 | |
| sync_with_master;
 | |
| select * from t2 order by b;
 | |
| connection master;
 | |
| drop table t1,t2;
 | |
| save_master_pos;
 | |
| connection slave;
 | |
| sync_with_master;
 | |
| 
 | |
| #
 | |
| # Bug #29878 Garbage data generation when executing SESSION_USER() on a slave. 
 | |
| #
 | |
| 
 | |
| connection master;
 | |
| CREATE TABLE t1 (
 | |
|   `id` int(11) NOT NULL auto_increment,
 | |
|   `data` varchar(100),
 | |
|   PRIMARY KEY  (`id`)
 | |
|  ) ENGINE=MyISAM;
 | |
| 
 | |
| INSERT INTO t1(data) VALUES(SESSION_USER());
 | |
| save_master_pos;
 | |
| connection slave;
 | |
| sync_with_master;
 | |
| SELECT * FROM t1;
 | |
| connection master;
 | |
| drop table t1;
 | |
| save_master_pos;
 | |
| connection slave;
 | |
| sync_with_master;
 |