2005-07-29 14:14:21 +02:00
|
|
|
set GLOBAL query_cache_size=1355776;
|
|
|
|
flush query cache;
|
|
|
|
flush query cache;
|
|
|
|
reset query cache;
|
|
|
|
flush status;
|
|
|
|
drop table if exists t1, t2, t3, t11, t21;
|
|
|
|
create table t1 (a int not null);
|
|
|
|
insert into t1 values (1),(2),(3);
|
|
|
|
create table t2 (a int not null);
|
|
|
|
insert into t2 values (1),(2),(3);
|
|
|
|
select * from t1;
|
|
|
|
a
|
|
|
|
1
|
|
|
|
2
|
|
|
|
3
|
|
|
|
select * from t2;
|
|
|
|
a
|
|
|
|
1
|
|
|
|
2
|
|
|
|
3
|
|
|
|
insert into t1 values (4);
|
|
|
|
show status like "Qcache_free_blocks";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_free_blocks 2
|
|
|
|
flush query cache;
|
|
|
|
show status like "Qcache_free_blocks";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_free_blocks 1
|
|
|
|
drop table t1, t2;
|
|
|
|
create table t1 (a text not null);
|
|
|
|
create table t11 (a text not null);
|
|
|
|
create table t2 (a text not null);
|
|
|
|
create table t21 (a text not null);
|
|
|
|
create table t3 (a text not null);
|
|
|
|
insert into t1 values("1111111111111111111111111111111111111111111111111111");
|
|
|
|
insert into t2 select * from t1;
|
|
|
|
insert into t1 select * from t2;
|
|
|
|
insert into t2 select * from t1;
|
|
|
|
insert into t1 select * from t2;
|
|
|
|
insert into t2 select * from t1;
|
|
|
|
insert into t1 select * from t2;
|
|
|
|
insert into t2 select * from t1;
|
|
|
|
insert into t1 select * from t2;
|
|
|
|
insert into t2 select * from t1;
|
|
|
|
insert into t1 select * from t2;
|
|
|
|
insert into t2 select * from t1;
|
|
|
|
insert into t1 select * from t2;
|
|
|
|
insert into t2 select * from t1;
|
|
|
|
insert into t1 select * from t2;
|
|
|
|
insert into t2 select * from t1;
|
|
|
|
insert into t11 select * from t1;
|
|
|
|
insert into t21 select * from t1;
|
|
|
|
insert into t1 select * from t2;
|
|
|
|
insert into t2 select * from t1;
|
|
|
|
insert into t1 select * from t2;
|
|
|
|
insert into t3 select * from t1;
|
|
|
|
insert into t3 select * from t2;
|
|
|
|
insert into t3 select * from t1;
|
|
|
|
select * from t11;
|
|
|
|
select * from t21;
|
|
|
|
show status like "Qcache_total_blocks";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_total_blocks 7
|
|
|
|
show status like "Qcache_free_blocks";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_free_blocks 1
|
|
|
|
insert into t11 values("");
|
|
|
|
select * from t3;
|
|
|
|
show status like "Qcache_total_blocks";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_total_blocks 8
|
|
|
|
show status like "Qcache_free_blocks";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_free_blocks 1
|
|
|
|
flush query cache;
|
|
|
|
show status like "Qcache_total_blocks";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_total_blocks 7
|
|
|
|
show status like "Qcache_free_blocks";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_free_blocks 1
|
|
|
|
drop table t1, t2, t3, t11, t21;
|
2005-08-11 12:07:08 +02:00
|
|
|
CREATE TABLE t1 ( a INT NOT NULL PRIMARY KEY AUTO_INCREMENT ) ENGINE =
|
|
|
|
MyISAM;
|
|
|
|
LOCK TABLE t1 READ LOCAL;
|
|
|
|
INSERT INTO t1 VALUES (), (), ();
|
|
|
|
SELECT * FROM t1;
|
|
|
|
a
|
|
|
|
SELECT * FROM t1;
|
|
|
|
a
|
|
|
|
1
|
|
|
|
2
|
|
|
|
3
|
|
|
|
SELECT * FROM t1;
|
|
|
|
a
|
|
|
|
drop table t1;
|
2006-02-24 17:34:15 +01:00
|
|
|
flush query cache;
|
|
|
|
reset query cache;
|
|
|
|
flush status;
|
|
|
|
create table t1 (s1 int)//
|
|
|
|
create procedure f1 () begin
|
|
|
|
select sql_cache * from t1;
|
|
|
|
select sql_cache * from t1;
|
|
|
|
select sql_cache * from t1;
|
|
|
|
end;//
|
|
|
|
create procedure f2 () begin
|
|
|
|
select sql_cache * from t1 where s1=1;
|
|
|
|
select sql_cache * from t1;
|
|
|
|
end;//
|
|
|
|
create procedure f3 () begin
|
|
|
|
select sql_cache * from t1;
|
|
|
|
select sql_cache * from t1 where s1=1;
|
|
|
|
end;//
|
|
|
|
create procedure f4 () begin
|
|
|
|
select sql_cache * from t1;
|
|
|
|
select sql_cache * from t1 where s1=1;
|
|
|
|
select sql_cache * from t1;
|
|
|
|
select sql_cache * from t1 where s1=1;
|
|
|
|
select sql_cache * from t1 where s1=1;
|
|
|
|
end;//
|
|
|
|
call f1();
|
|
|
|
s1
|
|
|
|
s1
|
|
|
|
s1
|
|
|
|
show status like "Qcache_queries_in_cache";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_queries_in_cache 3
|
|
|
|
show status like "Qcache_inserts";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_inserts 3
|
|
|
|
show status like "Qcache_hits";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_hits 0
|
|
|
|
call f1();
|
|
|
|
s1
|
|
|
|
s1
|
|
|
|
s1
|
|
|
|
show status like "Qcache_queries_in_cache";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_queries_in_cache 3
|
|
|
|
show status like "Qcache_inserts";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_inserts 3
|
|
|
|
show status like "Qcache_hits";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_hits 3
|
|
|
|
call f1();
|
|
|
|
s1
|
|
|
|
s1
|
|
|
|
s1
|
|
|
|
select sql_cache * from t1;
|
|
|
|
s1
|
|
|
|
show status like "Qcache_queries_in_cache";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_queries_in_cache 4
|
|
|
|
show status like "Qcache_inserts";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_inserts 4
|
|
|
|
show status like "Qcache_hits";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_hits 6
|
|
|
|
insert into t1 values (1);
|
|
|
|
select sql_cache * from t1;
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
show status like "Qcache_queries_in_cache";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_queries_in_cache 1
|
|
|
|
show status like "Qcache_inserts";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_inserts 5
|
|
|
|
show status like "Qcache_hits";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_hits 6
|
|
|
|
call f1();
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
call f1();
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
select sql_cache * from t1;
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
show status like "Qcache_queries_in_cache";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_queries_in_cache 4
|
|
|
|
show status like "Qcache_inserts";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_inserts 8
|
|
|
|
show status like "Qcache_hits";
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_hits 10
|
|
|
|
flush query cache;
|
|
|
|
reset query cache;
|
|
|
|
flush status;
|
|
|
|
select sql_cache * from t1;
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
select sql_cache * from t1 where s1=1;
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
call f1();
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
call f2();
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
call f3();
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
call f4();
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
call f4();
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
call f3();
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
call f2();
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
select sql_cache * from t1 where s1=1;
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
insert into t1 values (2);
|
|
|
|
call f1();
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
select sql_cache * from t1 where s1=1;
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
select sql_cache * from t1;
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
call f1();
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
call f3();
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
call f3();
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
call f1();
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
s1
|
|
|
|
1
|
|
|
|
2
|
|
|
|
drop procedure f1;
|
|
|
|
drop procedure f2;
|
|
|
|
drop procedure f3;
|
|
|
|
drop procedure f4;
|
|
|
|
drop table t1;
|
BUG#37975: wait_for_slave_* should increase the timeout
Problem 1: tests often fail in pushbuild with a timeout when waiting
for the slave to start/stop/receive error.
Fix 1: Updated the wait_for_slave_* macros in the following way:
- The timeout is increased by a factor ten
- Refactored the macros so that wait_for_slave_param does the work for
the other macros.
Problem 2: Tests are often incorrectly written, lacking a
source include/wait_for_slave_to_[start|stop].inc.
Fix 2: Improved the chance to get it right by adding
include/start_slave.inc and include/stop_slave.inc, and updated tests
to use these.
Problem 3: The the built-in test language command
wait_for_slave_to_stop is a misnomer (does not wait for the slave io
thread) and does not give as much debug info in case of failure as
the otherwise equivalent macro
source include/wait_for_slave_sql_to_stop.inc
Fix 3: Replaced all calls to the built-in command by a call to the
macro.
Problem 4: Some, but not all, of the wait_for_slave_* macros had an
implicit connection slave. This made some tests confusing to read,
and made it more difficult to use the macro in circular replication
scenarios, where the connection named master needs to wait.
Fix 4: Removed the implicit connection slave from all
wait_for_slave_* macros, and updated tests to use an explicit
connection slave where necessary.
Problem 5: The macros wait_slave_status.inc and wait_show_pattern.inc
were unused. Moreover, using them is difficult and error-prone.
Fix 5: remove these macros.
Problem 6: log_bin_trust_function_creators_basic failed when running
tests because it assumed @@global.log_bin_trust_function_creators=1,
and some tests modified this variable without resetting it to its
original value.
Fix 6: All tests that use this variable have been updated so that
they reset the value at end of test.
mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test:
Replaced wait_for_slave_to_stop by include/wait_for_slave_sql_to_stop.inc
mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test:
Replaced wait_for_slave_to_stop by include/wait_for_slave_sql_to_stop.inc
Added connection slave since includ/wait_for_slave_sql_to_stop.inc
does not do that anymore.
mysql-test/extra/rpl_tests/rpl_log.test:
Replaced start slave+wait_slave_status by start_slave.inc
mysql-test/include/reset_master_and_slave.inc:
replaced start/stop slave by start_slave.inc/stop_slave.inc
mysql-test/include/sync_slave_io_with_master.inc:
Improved comments and error message.
mysql-test/include/wait_for_slave_io_to_stop.inc:
Refactored to use wait_for_slave_param.inc.
Removed connection slave.
mysql-test/include/wait_for_slave_param.inc:
- Improved usage instructions
- Added more debug info in case of timeout
- Added parameters $slave_param_comparison, $slave_timeout,
$slave_keep_connection, $slave_error_message
mysql-test/include/wait_for_slave_sql_error.inc:
Refactored to use wait_for_slave_param.inc.
Removed connection slave.
mysql-test/include/wait_for_slave_sql_to_start.inc:
Refactored to use wait_for_slave_param.inc.
Removed connection slave.
mysql-test/include/wait_for_slave_sql_to_stop.inc:
Refactored to use wait_for_slave_param.inc.
Removed connection slave.
mysql-test/include/wait_for_slave_to_start.inc:
Refactored to use wait_for_slave_param.inc.
Removed connection slave.
mysql-test/include/wait_for_slave_to_stop.inc:
Refactored to use wait_for_slave_param.inc.
Removed connection slave.
mysql-test/include/wait_show_pattern.inc:
Removed unused (and error-prone) file
mysql-test/include/wait_slave_status.inc:
Removed unused (and error-prone) file
mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test:
Renamed $keep_connection to $slave_keep_connection.
mysql-test/suite/rpl/t/rpl_bug26395.test:
Replace stop slave by stop_slave.inc
mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.test:
Replace start/stop slave by start_slave.inc/stop_slave.inc.
Replace wait_for_slave_param by wait_for_slave_sql_to_stop.inc.
mysql-test/suite/rpl/t/rpl_dual_pos_advance.test:
Renamed $keep_connection to $slave_keep_connection.
mysql-test/suite/rpl/t/rpl_flushlog_loop.test:
Replace wait_slave_status by start_slave.inc
mysql-test/suite/rpl/t/rpl_idempotency.test:
Added connection slave since wait_for_slave_sql_to_stop.inc does not
do that any more.
mysql-test/suite/rpl/t/rpl_incident.test:
Replaced wait_for_slave_to_stop by wait_for_slave_sql_to_stop.inc
mysql-test/suite/rpl/t/rpl_init_slave.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
Replaced save_master_pos;connection slave;sync_with_master by
sync_slave_with_master.
mysql-test/suite/rpl/t/rpl_log_pos.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
Replaced wait_for_slave_param by other wait_for_slave_* macros.
mysql-test/suite/rpl/t/rpl_packet.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
mysql-test/suite/rpl/t/rpl_row_inexist_tbl.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
mysql-test/suite/rpl/t/rpl_row_stop_middle_update.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
mysql-test/suite/rpl/t/rpl_row_until.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
Replaced save_master_pos;connection slave;sync_with_master by
sync_slave_with_master.
mysql-test/suite/rpl/t/rpl_server_id1.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
mysql-test/suite/rpl/t/rpl_slave_grp_exec.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
mysql-test/suite/rpl/t/rpl_slave_skip.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
mysql-test/suite/rpl/t/rpl_slave_status.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
mysql-test/suite/rpl/t/rpl_sp.test:
Restore @@global.log_bin_trust_function_creators at end of test.
mysql-test/suite/rpl/t/rpl_sp_effects.test:
Restore @@global.log_bin_trust_function_creators at end of test.
mysql-test/suite/rpl/t/rpl_stm_until.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
Replaced save_master_pos;connection slave;sync_with_master by
sync_slave_with_master.
mysql-test/suite/rpl_ndb/t/rpl_ndb_basic.test:
Replaced start slave by start_slave.inc.
Added explicit connection slave since wait_for_slave_sql_to_stop.inc
does not do that anymore.
mysql-test/t/disabled.def:
Disabled failing test.
mysql-test/t/func_time.test:
Restore @@global.log_bin_trust_function_creators at end of test.
mysql-test/t/grant.test:
Restore @@global.log_bin_trust_function_creators at end of test.
mysql-test/t/grant2.test:
Restore @@global.log_bin_trust_function_creators at end of test.
mysql-test/t/innodb_notembedded.test:
Restore @@global.log_bin_trust_function_creators at end of test.
mysql-test/t/log_bin_trust_function_creators_func.test:
Restore @@global.log_bin_trust_function_creators at end of test.
Clean up at end of test by dropping the created user.
mysql-test/t/query_cache.test:
Restore @@global.log_bin_trust_function_creators at end of test.
mysql-test/t/query_cache_notembedded.test:
Restore @@global.log_bin_trust_function_creators at end of test.
mysql-test/t/rpl_init_slave_func.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
mysql-test/t/timezone2.test:
Restore @@global.log_bin_trust_function_creators at end of test.
2008-07-10 18:09:39 +02:00
|
|
|
SET @old_log_bin_trust_function_creators= @@global.log_bin_trust_function_creators;
|
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Fix tests for new behaviour: an error is thrown if a NON DETERMINISTIC
stored function (SF) is called during statement-based replication (SBR).
mysql-test/r/func_time.result:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Modify test that contains non-deterministic functions so it can still be
called with no error while doing statement-based replication (SBR).
mysql-test/r/gis.result:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Mark function as DETERMINISTIC so it can be called with no error while
doing statement-based replication (SBR).
mysql-test/r/grant2.result:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Modify test that contains non-deterministic functions so it can still be
called with no error while doing statement-based replication (SBR).
mysql-test/r/innodb_notembedded.result:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Modify test that contains non-deterministic functions so it can still be
called with no error while doing statement-based replication (SBR).
mysql-test/r/ps.result:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Mark function as DETERMINISTIC so it can be called with no error while
doing statement-based replication (SBR).
mysql-test/r/query_cache.result:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Modify test that contains non-deterministic functions so it can still be
called with no error while doing statement-based replication (SBR).
mysql-test/r/query_cache_notembedded.result:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Modify test that contains non-deterministic functions so it can still be
called with no error while doing statement-based replication (SBR).
mysql-test/r/rpl_sp.result:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Move test for SF-calls in different replication modes to its own file, rpl_sf.
mysql-test/r/rpl_sp_effects.result:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Modify test that contains non-deterministic functions so it can still be
called with no error while doing statement-based replication (SBR).
mysql-test/r/sp.result:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Mark function as DETERMINISTIC so it can be called with no error while
doing statement-based replication (SBR).
mysql-test/r/timezone2.result:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Modify test that contains non-deterministic functions so it can still be
called with no error while doing statement-based replication (SBR).
mysql-test/t/func_time.test:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Modify test that contains non-deterministic functions so it can still be
called with no error while doing statement-based replication (SBR).
mysql-test/t/gis.test:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Mark function as DETERMINISTIC so it can be called with no error while
doing statement-based replication (SBR).
mysql-test/t/grant2.test:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Modify test that contains non-deterministic functions so it can still be
called with no error while doing statement-based replication (SBR).
mysql-test/t/innodb_notembedded.test:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Modify test that contains non-deterministic functions so it can still be
called with no error while doing statement-based replication (SBR).
mysql-test/t/ps.test:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Modify test that contains non-deterministic functions so it can still be
called with no error while doing statement-based replication (SBR).
mysql-test/t/query_cache.test:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Modify test that contains non-deterministic functions so it can still be
called with no error while doing statement-based replication (SBR).
mysql-test/t/query_cache_notembedded.test:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Modify test that contains non-deterministic functions so it can still be
called with no error while doing statement-based replication (SBR).
mysql-test/t/rpl_sp.test:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Modify test that contains non-deterministic functions so it can still be
called with no error while doing statement-based replication (SBR).
mysql-test/t/rpl_sp_effects.test:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Modify test that contains non-deterministic functions so it can still be
called with no error while doing statement-based replication (SBR).
mysql-test/t/sp.test:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Mark function as DETERMINISTIC so it can be called with no error while
doing statement-based replication (SBR).
mysql-test/t/timezone2.test:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Modify test that contains non-deterministic functions so it can still be
called with no error while doing statement-based replication (SBR).
sql/item_func.cc:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
If 'log_bin_trust_function_creators' variable is set, don't throw an error
on calling a non-deterministc function in statement-based replication (SBR).
sql/sql_parse.cc:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Do not throw an error on calling a NON DETERMINISTIC stored procedure (SP)
while doing statement-based replication (SBR), as the routine body is
executed statement-by-statement.
mysql-test/r/rpl_sf.result:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Test for stored function (SF) calls in different replication modes.
NON DETERMINISTIC SFs are not allowed while doing
statement-based replication (SBR).
mysql-test/t/rpl_sf.test:
Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR
Test for stored function (SF) calls in different replication modes.
NON DETERMINISTIC SFs are not allowed while doing
statement-based replication (SBR).
2006-11-17 21:30:28 +01:00
|
|
|
SET GLOBAL log_bin_trust_function_creators = 1;
|
2006-03-15 18:15:52 +01:00
|
|
|
reset query cache;
|
|
|
|
drop function if exists f1;
|
|
|
|
create table t1 (id int);
|
|
|
|
create function f1 ()
|
|
|
|
returns int
|
|
|
|
begin
|
|
|
|
declare i_var int;
|
|
|
|
set i_var = sleep(3);
|
|
|
|
insert into t1 values(3);
|
|
|
|
set i_var = sleep(3);
|
|
|
|
return 0;
|
|
|
|
end;|
|
Update tests and result files after running with new mysqltest that better detects problems with test files
mysql-test/r/csv.result:
Update after add of missing semicolon
mysql-test/r/drop.result:
Update result file, no space before commands that has been "sent"
mysql-test/r/flush.result:
Update result file, no space before commands that has been "sent"
mysql-test/r/flush_block_commit.result:
Update result file, no space before commands that has been "sent"
mysql-test/r/flush_read_lock_kill.result:
Update result file, no space before commands that has been "sent"
mysql-test/r/grant2.result:
Update result file, no space before commands that has been "sent"
mysql-test/r/handler.result:
Update result file, no space before commands that has been "sent"
mysql-test/r/innodb_notembedded.result:
Update result file, no space before commands that has been "sent"
mysql-test/r/kill.result:
Update result file, no space before commands that has been "sent"
mysql-test/r/lock_multi.result:
Update result file, no space before commands that has been "sent"
mysql-test/r/multi_update.result:
Update result file, no space before commands that has been "sent"
mysql-test/r/mysqltest.result:
Update result
mysql-test/r/query_cache.result:
Update after add of missing semicolon
mysql-test/r/query_cache_notembedded.result:
Update result file, no space before commands that has been "sent"
mysql-test/r/sp-threads.result:
Update result file, no space before commands that has been "sent"
mysql-test/r/sp_notembedded.result:
Update after add of missing semicolon
mysql-test/r/type_blob.result:
Remove extra drop table
mysql-test/t/csv.test:
Add missing semicolon
mysql-test/t/query_cache.test:
Add missing semicolon
mysql-test/t/sp-error.test:
Remove "tab" from end of error declaration
mysql-test/t/sp.test:
Wrong delimiter, used ; instead of |
mysql-test/t/sp_notembedded.test:
Wrong delimiter, used ; instead of |
mysql-test/t/view_grant.test:
An incomplete error name specification was used.
2006-10-04 13:09:37 +02:00
|
|
|
select f1();
|
2006-03-15 18:15:52 +01:00
|
|
|
select sleep(4);
|
|
|
|
sleep(4)
|
|
|
|
0
|
|
|
|
select * from t1;
|
|
|
|
id
|
|
|
|
3
|
|
|
|
f1()
|
|
|
|
0
|
|
|
|
select * from t1;
|
|
|
|
id
|
|
|
|
3
|
|
|
|
reset query cache;
|
|
|
|
select * from t1;
|
|
|
|
id
|
|
|
|
3
|
|
|
|
drop table t1;
|
|
|
|
drop function f1;
|
2005-07-29 14:14:21 +02:00
|
|
|
set GLOBAL query_cache_size=0;
|
BUG#37975: wait_for_slave_* should increase the timeout
Problem 1: tests often fail in pushbuild with a timeout when waiting
for the slave to start/stop/receive error.
Fix 1: Updated the wait_for_slave_* macros in the following way:
- The timeout is increased by a factor ten
- Refactored the macros so that wait_for_slave_param does the work for
the other macros.
Problem 2: Tests are often incorrectly written, lacking a
source include/wait_for_slave_to_[start|stop].inc.
Fix 2: Improved the chance to get it right by adding
include/start_slave.inc and include/stop_slave.inc, and updated tests
to use these.
Problem 3: The the built-in test language command
wait_for_slave_to_stop is a misnomer (does not wait for the slave io
thread) and does not give as much debug info in case of failure as
the otherwise equivalent macro
source include/wait_for_slave_sql_to_stop.inc
Fix 3: Replaced all calls to the built-in command by a call to the
macro.
Problem 4: Some, but not all, of the wait_for_slave_* macros had an
implicit connection slave. This made some tests confusing to read,
and made it more difficult to use the macro in circular replication
scenarios, where the connection named master needs to wait.
Fix 4: Removed the implicit connection slave from all
wait_for_slave_* macros, and updated tests to use an explicit
connection slave where necessary.
Problem 5: The macros wait_slave_status.inc and wait_show_pattern.inc
were unused. Moreover, using them is difficult and error-prone.
Fix 5: remove these macros.
Problem 6: log_bin_trust_function_creators_basic failed when running
tests because it assumed @@global.log_bin_trust_function_creators=1,
and some tests modified this variable without resetting it to its
original value.
Fix 6: All tests that use this variable have been updated so that
they reset the value at end of test.
mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test:
Replaced wait_for_slave_to_stop by include/wait_for_slave_sql_to_stop.inc
mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test:
Replaced wait_for_slave_to_stop by include/wait_for_slave_sql_to_stop.inc
Added connection slave since includ/wait_for_slave_sql_to_stop.inc
does not do that anymore.
mysql-test/extra/rpl_tests/rpl_log.test:
Replaced start slave+wait_slave_status by start_slave.inc
mysql-test/include/reset_master_and_slave.inc:
replaced start/stop slave by start_slave.inc/stop_slave.inc
mysql-test/include/sync_slave_io_with_master.inc:
Improved comments and error message.
mysql-test/include/wait_for_slave_io_to_stop.inc:
Refactored to use wait_for_slave_param.inc.
Removed connection slave.
mysql-test/include/wait_for_slave_param.inc:
- Improved usage instructions
- Added more debug info in case of timeout
- Added parameters $slave_param_comparison, $slave_timeout,
$slave_keep_connection, $slave_error_message
mysql-test/include/wait_for_slave_sql_error.inc:
Refactored to use wait_for_slave_param.inc.
Removed connection slave.
mysql-test/include/wait_for_slave_sql_to_start.inc:
Refactored to use wait_for_slave_param.inc.
Removed connection slave.
mysql-test/include/wait_for_slave_sql_to_stop.inc:
Refactored to use wait_for_slave_param.inc.
Removed connection slave.
mysql-test/include/wait_for_slave_to_start.inc:
Refactored to use wait_for_slave_param.inc.
Removed connection slave.
mysql-test/include/wait_for_slave_to_stop.inc:
Refactored to use wait_for_slave_param.inc.
Removed connection slave.
mysql-test/include/wait_show_pattern.inc:
Removed unused (and error-prone) file
mysql-test/include/wait_slave_status.inc:
Removed unused (and error-prone) file
mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test:
Renamed $keep_connection to $slave_keep_connection.
mysql-test/suite/rpl/t/rpl_bug26395.test:
Replace stop slave by stop_slave.inc
mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.test:
Replace start/stop slave by start_slave.inc/stop_slave.inc.
Replace wait_for_slave_param by wait_for_slave_sql_to_stop.inc.
mysql-test/suite/rpl/t/rpl_dual_pos_advance.test:
Renamed $keep_connection to $slave_keep_connection.
mysql-test/suite/rpl/t/rpl_flushlog_loop.test:
Replace wait_slave_status by start_slave.inc
mysql-test/suite/rpl/t/rpl_idempotency.test:
Added connection slave since wait_for_slave_sql_to_stop.inc does not
do that any more.
mysql-test/suite/rpl/t/rpl_incident.test:
Replaced wait_for_slave_to_stop by wait_for_slave_sql_to_stop.inc
mysql-test/suite/rpl/t/rpl_init_slave.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
Replaced save_master_pos;connection slave;sync_with_master by
sync_slave_with_master.
mysql-test/suite/rpl/t/rpl_log_pos.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
Replaced wait_for_slave_param by other wait_for_slave_* macros.
mysql-test/suite/rpl/t/rpl_packet.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
mysql-test/suite/rpl/t/rpl_row_inexist_tbl.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
mysql-test/suite/rpl/t/rpl_row_stop_middle_update.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
mysql-test/suite/rpl/t/rpl_row_until.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
Replaced save_master_pos;connection slave;sync_with_master by
sync_slave_with_master.
mysql-test/suite/rpl/t/rpl_server_id1.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
mysql-test/suite/rpl/t/rpl_slave_grp_exec.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
mysql-test/suite/rpl/t/rpl_slave_skip.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
mysql-test/suite/rpl/t/rpl_slave_status.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
mysql-test/suite/rpl/t/rpl_sp.test:
Restore @@global.log_bin_trust_function_creators at end of test.
mysql-test/suite/rpl/t/rpl_sp_effects.test:
Restore @@global.log_bin_trust_function_creators at end of test.
mysql-test/suite/rpl/t/rpl_stm_until.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
Replaced save_master_pos;connection slave;sync_with_master by
sync_slave_with_master.
mysql-test/suite/rpl_ndb/t/rpl_ndb_basic.test:
Replaced start slave by start_slave.inc.
Added explicit connection slave since wait_for_slave_sql_to_stop.inc
does not do that anymore.
mysql-test/t/disabled.def:
Disabled failing test.
mysql-test/t/func_time.test:
Restore @@global.log_bin_trust_function_creators at end of test.
mysql-test/t/grant.test:
Restore @@global.log_bin_trust_function_creators at end of test.
mysql-test/t/grant2.test:
Restore @@global.log_bin_trust_function_creators at end of test.
mysql-test/t/innodb_notembedded.test:
Restore @@global.log_bin_trust_function_creators at end of test.
mysql-test/t/log_bin_trust_function_creators_func.test:
Restore @@global.log_bin_trust_function_creators at end of test.
Clean up at end of test by dropping the created user.
mysql-test/t/query_cache.test:
Restore @@global.log_bin_trust_function_creators at end of test.
mysql-test/t/query_cache_notembedded.test:
Restore @@global.log_bin_trust_function_creators at end of test.
mysql-test/t/rpl_init_slave_func.test:
Replaced start/stop slave by start_slave.inc/stop_slave.inc.
mysql-test/t/timezone2.test:
Restore @@global.log_bin_trust_function_creators at end of test.
2008-07-10 18:09:39 +02:00
|
|
|
SET @@global.log_bin_trust_function_creators = @old_log_bin_trust_function_creators;
|
2007-10-16 14:42:42 +02:00
|
|
|
DROP DATABASE IF EXISTS bug30269;
|
|
|
|
FLUSH STATUS;
|
|
|
|
CREATE DATABASE bug30269;
|
|
|
|
USE bug30269;
|
|
|
|
CREATE TABLE test1 (id int, name varchar(23));
|
|
|
|
CREATE VIEW view1 AS SELECT * FROM test1;
|
|
|
|
INSERT INTO test1 VALUES (5, 'testit');
|
|
|
|
GRANT SELECT (id) ON TABLE bug30269.test1 TO 'bug30269'@'localhost';
|
|
|
|
GRANT SELECT ON TABLE bug30269.view1 TO 'bug30269'@'localhost';
|
|
|
|
set global query_cache_size= 81920;
|
|
|
|
USE bug30269;
|
|
|
|
show status like 'Qcache_queries_in_cache';
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_queries_in_cache 0
|
|
|
|
# Select statement not stored in query cache because of column privileges.
|
|
|
|
SELECT id FROM test1 WHERE id>2;
|
|
|
|
id
|
|
|
|
5
|
|
|
|
show status like 'Qcache_queries_in_cache';
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_queries_in_cache 0
|
|
|
|
SELECT id FROM view1 WHERE id>2;
|
|
|
|
id
|
|
|
|
5
|
|
|
|
show status like 'Qcache_queries_in_cache';
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_queries_in_cache 1
|
2009-02-09 22:00:15 +01:00
|
|
|
USE test;
|
2007-10-16 14:42:42 +02:00
|
|
|
DROP DATABASE bug30269;
|
|
|
|
DROP USER 'bug30269'@'localhost';
|
|
|
|
set GLOBAL query_cache_type=default;
|
|
|
|
set GLOBAL query_cache_limit=default;
|
|
|
|
set GLOBAL query_cache_min_res_unit=default;
|
|
|
|
set GLOBAL query_cache_size=default;
|
Fix multiple test suite failures in Buildbot due to races in the test cases or missing server features not properly checked
mysql-test/r/func_misc.result:
Move test that requires query cache from main.func_misc to main.query_cache.
mysql-test/r/mysqltest.result:
Fix test failure due to race.
This test case creates > 300 connections in a tight loop, and depending on thread
scheduling and load, even though each connection is immediately disconnected
before connecting the next one, the server max connections may still be exceeded
due to server not being able to free old connections as fast as new ones are made.
mysql-test/r/query_cache.result:
Move test that requires query cache from main.func_misc to main.query_cache.
Move test that requires query cache from main.variables to main.query_cache.
mysql-test/r/query_cache_notembedded.result:
Move test that requires query cache from main.sp_notembedded to main.query_cache_notembedded.
mysql-test/r/sp_notembedded.result:
Move test that requires query cache from main.sp_notembedded to main.query_cache_notembedded.
mysql-test/r/udf.result:
Move test in main.udf that requires query cache to separate file.
mysql-test/r/udf_query_cache.result:
Move test in main.udf that requires query cache to separate file.
mysql-test/r/variables.result:
Move test that requires query cache from main.variables to main.query_cache.
mysql-test/suite/funcs_1/datadict/processlist_val.inc:
Fix race where result file may show state "cleaning up" in the small window
between setting COMMAND to 'Sleep' and clearing STATE.
mysql-test/suite/rpl/r/rpl_temporary.result:
Fix race with suppression of warning message by fixing the test to not generate the
warning message in the first place.
Problem was a race between creating an anonymous account and resetting the slave.
If the slave reset happens before replicating the account, the subsequest deletion
of the account will fail to replicate correctly due to missing row.
mysql-test/suite/rpl/t/rpl_temporary.test:
Fix race with suppression of warning message by fixing the test to not generate the
warning message in the first place.
Problem was a race between creating an anonymous account and resetting the slave.
If the slave reset happens before replicating the account, the subsequest deletion
of the account will fail to replicate correctly due to missing row.
mysql-test/t/func_misc.test:
Move test that requires query cache from main.func_misc to main.query_cache.
Move test that requires query cache from main.variables to main.query_cache.
mysql-test/t/mysqltest.test:
Fix test failure due to race.
This test case creates > 300 connections in a tight loop, and depending on thread
scheduling and load, even though each connection is immediately disconnected
before connecting the next one, the server max connections may still be exceeded
due to server not being able to free old connections as fast as new ones are made.
mysql-test/t/query_cache.test:
Move test that requires query cache to main.query_cache.
mysql-test/t/query_cache_notembedded.test:
Move test that requires query cache from main.sp_notembedded to main.query_cache_notembedded.
mysql-test/t/sp_notembedded.test:
Move test that requires query cache from main.sp_notembedded to main.query_cache_notembedded.
mysql-test/t/udf.test:
Move test in main.udf that requires query cache to separate file.
mysql-test/t/udf_query_cache-master.opt:
Move test in main.udf that requires query cache to separate file.
mysql-test/t/udf_query_cache.test:
Move test in main.udf that requires query cache to separate file.
mysql-test/t/variables.test:
Move test that requires query cache from main.variables to main.query_cache.
tests/mysql_client_test.c:
In tests that require query cache, skip the test if query cache not available.
Do this dynamically rather than using HAVE_QUERY_CACHE, as there is no guarantee
that the server we run against was compiled with same preprocessor #define as
the mysql_client_test program (and since it is trivial to check dynamically).
2010-01-11 14:15:28 +01:00
|
|
|
drop table if exists t1|
|
|
|
|
create table t1 (
|
|
|
|
id char(16) not null default '',
|
|
|
|
data int not null
|
|
|
|
)|
|
|
|
|
drop procedure if exists bug3583|
|
|
|
|
drop procedure if exists bug3583|
|
|
|
|
create procedure bug3583()
|
|
|
|
begin
|
|
|
|
declare c int;
|
|
|
|
select * from t1;
|
|
|
|
select count(*) into c from t1;
|
|
|
|
select c;
|
|
|
|
end|
|
|
|
|
insert into t1 values ("x", 3), ("y", 5)|
|
|
|
|
set @x = @@query_cache_size|
|
|
|
|
set global query_cache_size = 10*1024*1024|
|
|
|
|
flush status|
|
|
|
|
flush query cache|
|
|
|
|
show status like 'Qcache_hits'|
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_hits 0
|
|
|
|
call bug3583()|
|
|
|
|
id data
|
|
|
|
x 3
|
|
|
|
y 5
|
|
|
|
c
|
|
|
|
2
|
|
|
|
show status like 'Qcache_hits'|
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_hits 0
|
|
|
|
call bug3583()|
|
|
|
|
id data
|
|
|
|
x 3
|
|
|
|
y 5
|
|
|
|
c
|
|
|
|
2
|
|
|
|
call bug3583()|
|
|
|
|
id data
|
|
|
|
x 3
|
|
|
|
y 5
|
|
|
|
c
|
|
|
|
2
|
|
|
|
show status like 'Qcache_hits'|
|
|
|
|
Variable_name Value
|
|
|
|
Qcache_hits 2
|
|
|
|
set global query_cache_size = @x|
|
|
|
|
flush status|
|
|
|
|
flush query cache|
|
|
|
|
delete from t1|
|
|
|
|
drop procedure bug3583|
|
|
|
|
drop table t1|
|