mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	Added missing DBUG_xxx_RETURN statements Fixed some usage of not initialized variables (as found by valgrind) Ensure that we don't remove locked tables used as name locks from open table cache until unlock_table_names() are called. This was fixed by having drop_locked_name() returning any table used as a name lock so that we can free it in unlock_table_names() This will allow Tomas to continue with his work to use namelocks to syncronize things. Note: valgrind still produces a lot of warnings about using not initialized code and shows memory loss errors when running the ndb tests BitKeeper/etc/ignore: added mysql-test/r/*.log client/mysqltest.c: Change type of variables to get rid of compiler warnings More debugging Fix memory leak mysql-test/mysql-test-run.sh: Collect warnings about missing DBUG_RETURN statements mysql-test/r/lock_multi.result: Add test of new code mysql-test/r/ndb_condition_pushdown.result: Drop used tables before test mysql-test/t/lock_multi.test: Add test of new code mysql-test/t/ndb_condition_pushdown.test: Drop used tables before test mysql-test/valgrind.supp: Ignore 'safe' warnings from libz (when used with archive) sql/event.cc: More comments Simplify code Fixed memory leak found by valgrind sql/ha_archive.cc: Remove compiler warnings (Wrong handlerton structure and signed/unsigned comparison) sql/ha_berkeley.cc: Fixed compiler warning sql/ha_blackhole.cc: Fixed compiler warning sql/ha_federated.cc: Fixed compiler warning sql/ha_heap.cc: Fixed compiler warning sql/ha_myisam.cc: Fixed compiler warning sql/ha_myisammrg.cc: Fixed compiler warning sql/ha_ndbcluster.cc: Fixed compiler warnings sql/ha_partition.cc: Fixed compiler warning Fixed error noticed by valgrind in ha_partition::rnd_init() sql/handler.cc: Fixed compiler warning sql/handler.h: Fixed compiler warning sql/item.cc: Fixed compiler warning sql/item_xmlfunc.cc: Fixed warning from valgrind when calling memcpy with wrong address sql/lock.cc: More debugging sql/log.cc: Fixed compiler warning Indentation fixes sql/log.h: Fixed compiler warning sql/mysql_priv.h: Changed prototype for 'drop_locked_tables' sql/opt_range.cc: Indentation fix sql/password.c: Removed compiler warnings sql/set_var.cc: Fixed compiler warning sql/slave.cc: Fixed compiler warning sql/sp_head.cc: Fixed compiler warning sql/sql_acl.cc: Fixed compiler warning sql/sql_analyse.cc: Added missing DBUG_RETURN statements sql/sql_base.cc: Removed de-reference of not initialized pointer More comments drop_locked_tables() changed to not delete tables used for name locking Fixed compiler warnings sql/sql_delete.cc: Fixed usage of not initialized variable (deleted could be referenced in some not common error conditions) sql/sql_parse.cc: Added missing DBUG_VOID_RETURN Simplify code sql/sql_partition.cc: Fixed usage of wrong variable (noticed by valgrind) sql/sql_plugin.cc: Removed compiler warning sql/sql_show.cc: Removed compiler warning sql/sql_table.cc: Ensure that we don't remove locked tables used as name locks from open table cache until unlock_table_names() are called. This was fixed by having drop_locked_name() returning any table used as a name lock so that we can free it in unlock_table_names() This will allow Tomas to continue with his work to use namelocks to syncronize things. Fixed wrong test of 'table_type' (path_length could otherwise be accessed uninitialized) Remove compile warnings about not initialized variables. sql/sql_yacc.yy: Ensure that no_write_to_binlog is properly initialized (Was accessed uninitialized by partition code) sql/table.cc: Removed valgrind warnings (not fatal) Removed compiler warnings sql/tztime.cc: Removed valgrind warning storage/ndb/include/ndbapi/NdbIndexStat.hpp: Removed compiler warning
		
			
				
	
	
		
			129 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# This test doesn't work with the embedded version as this code
 | 
						|
# assumes that one query is running while we are doing queries on
 | 
						|
# a second connection.
 | 
						|
# This would work if mysqltest run would be threaded and handle each
 | 
						|
# connection in a separate thread.
 | 
						|
#
 | 
						|
-- source include/not_embedded.inc
 | 
						|
 | 
						|
--disable_warnings
 | 
						|
drop table if exists t1,t2;
 | 
						|
--enable_warnings
 | 
						|
 | 
						|
# Test to see if select will get the lock ahead of low priority update
 | 
						|
 | 
						|
connect (locker,localhost,root,,);
 | 
						|
connect (reader,localhost,root,,);
 | 
						|
connect (writer,localhost,root,,);
 | 
						|
 | 
						|
connection locker;
 | 
						|
create table t1(n int);
 | 
						|
insert into t1 values (1);
 | 
						|
lock tables t1 write;
 | 
						|
connection writer;
 | 
						|
send update low_priority t1 set n = 4;
 | 
						|
connection reader;
 | 
						|
--sleep 2
 | 
						|
send select n from t1;
 | 
						|
connection locker;
 | 
						|
--sleep 2
 | 
						|
unlock tables;
 | 
						|
connection writer;
 | 
						|
reap;
 | 
						|
connection reader;
 | 
						|
reap;
 | 
						|
drop table t1;
 | 
						|
 | 
						|
connection locker;
 | 
						|
create table t1(n int);
 | 
						|
insert into t1 values (1);
 | 
						|
lock tables t1 read;
 | 
						|
connection writer;
 | 
						|
send update low_priority t1 set n = 4;
 | 
						|
connection reader;
 | 
						|
--sleep 2
 | 
						|
send select n from t1;
 | 
						|
connection locker;
 | 
						|
--sleep 2
 | 
						|
unlock tables;
 | 
						|
connection writer;
 | 
						|
reap;
 | 
						|
connection reader;
 | 
						|
reap;
 | 
						|
drop table t1;
 | 
						|
 | 
						|
#
 | 
						|
# Test problem when using locks with multi-updates
 | 
						|
# It should not block when multi-update is reading on a read-locked table
 | 
						|
#
 | 
						|
 | 
						|
connection locker;
 | 
						|
create table t1 (a int, b int);
 | 
						|
create table t2 (c int, d int);
 | 
						|
insert into t1 values(1,1);
 | 
						|
insert into t1 values(2,2);
 | 
						|
insert into t2 values(1,2);
 | 
						|
lock table t1 read;
 | 
						|
connection writer;
 | 
						|
--sleep 2
 | 
						|
send update t1,t2 set c=a where b=d;
 | 
						|
connection reader;
 | 
						|
--sleep 2
 | 
						|
select c from t2;
 | 
						|
connection writer;
 | 
						|
reap;
 | 
						|
connection locker;
 | 
						|
drop table t1;
 | 
						|
drop table t2;
 | 
						|
 | 
						|
#
 | 
						|
# Test problem when using locks on many tables and droping a table that
 | 
						|
# is to-be-locked by another thread
 | 
						|
#
 | 
						|
 | 
						|
connection locker;
 | 
						|
create table t1 (a int);
 | 
						|
create table t2 (a int);
 | 
						|
lock table t1 write, t2 write;
 | 
						|
connection reader;
 | 
						|
send insert t1 select * from t2;
 | 
						|
connection locker;
 | 
						|
drop table t2;
 | 
						|
connection reader;
 | 
						|
--error 1146
 | 
						|
reap;
 | 
						|
connection locker;
 | 
						|
drop table t1;
 | 
						|
 | 
						|
#
 | 
						|
# Same test as above, but with the dropped table locked twice
 | 
						|
#
 | 
						|
 | 
						|
connection locker;
 | 
						|
create table t1 (a int);
 | 
						|
create table t2 (a int);
 | 
						|
lock table t1 write, t2 write, t1 as t1_2 write, t2 as t2_2 write;
 | 
						|
connection reader;
 | 
						|
send insert t1 select * from t2;
 | 
						|
connection locker;
 | 
						|
drop table t2;
 | 
						|
connection reader;
 | 
						|
--error 1146
 | 
						|
reap;
 | 
						|
connection locker;
 | 
						|
drop table t1;
 | 
						|
 | 
						|
 | 
						|
# End of 4.1 tests
 | 
						|
 | 
						|
#
 | 
						|
# BUG#9998 - MySQL client hangs on USE "database"
 | 
						|
#
 | 
						|
create table t1(a int);
 | 
						|
lock tables t1 write;
 | 
						|
connection reader;
 | 
						|
show columns from t1;
 | 
						|
connection locker;
 | 
						|
unlock tables;
 | 
						|
drop table t1;
 |