mirror of
https://github.com/MariaDB/server.git
synced 2025-10-22 19:52:58 +03:00
Manual merge of mysql-5.1-bugteam into mysql-trunk-merge.
This commit is contained in:
554
mysql-test/extra/rpl_tests/rpl_mixing_engines.inc
Normal file
554
mysql-test/extra/rpl_tests/rpl_mixing_engines.inc
Normal file
@@ -0,0 +1,554 @@
|
||||
################################################################################
|
||||
# This is an auxiliary file used by rpl_mixing_engines.test, and that it
|
||||
# executes SQL statements according to a format string, as specified in
|
||||
# rpl_mixing_engines.test. In addition, it accepts the special format
|
||||
# strings 'configure' and 'clean', used before and after everything else.
|
||||
################################################################################
|
||||
|
||||
if (`SELECT HEX(@commands) = HEX('configure')`)
|
||||
{
|
||||
connection master;
|
||||
|
||||
SET SQL_LOG_BIN=0;
|
||||
eval CREATE TABLE nt_1 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_2 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_3 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_4 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_5 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_6 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE tt_1 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_2 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_3 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_4 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_5 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_6 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval SET SQL_LOG_BIN=1;
|
||||
|
||||
connection slave;
|
||||
|
||||
SET SQL_LOG_BIN=0;
|
||||
eval CREATE TABLE nt_1 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_2 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_3 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_4 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_5 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_6 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE tt_1 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_2 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_3 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_4 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_5 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_6 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
SET SQL_LOG_BIN=1;
|
||||
|
||||
connection master;
|
||||
|
||||
INSERT INTO nt_1(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO nt_2(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO nt_3(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO nt_4(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO nt_5(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO nt_6(trans_id, stmt_id) VALUES(1,1);
|
||||
|
||||
INSERT INTO tt_1(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO tt_2(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO tt_3(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO tt_4(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO tt_5(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO tt_6(trans_id, stmt_id) VALUES(1,1);
|
||||
|
||||
DELIMITER |;
|
||||
|
||||
CREATE PROCEDURE pc_i_tt_5_suc (IN p_trans_id INTEGER, IN p_stmt_id INTEGER)
|
||||
BEGIN
|
||||
DECLARE in_stmt_id INTEGER;
|
||||
SELECT max(stmt_id) INTO in_stmt_id FROM tt_5 WHERE trans_id= p_trans_id;
|
||||
SELECT COALESCE(greatest(in_stmt_id + 1, p_stmt_id), 1) INTO in_stmt_id;
|
||||
INSERT INTO tt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id);
|
||||
INSERT INTO tt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id + 1);
|
||||
END|
|
||||
|
||||
CREATE PROCEDURE pc_i_nt_5_suc (IN p_trans_id INTEGER, IN p_stmt_id INTEGER)
|
||||
BEGIN
|
||||
DECLARE in_stmt_id INTEGER;
|
||||
SELECT max(stmt_id) INTO in_stmt_id FROM nt_5 WHERE trans_id= p_trans_id;
|
||||
SELECT COALESCE(greatest(in_stmt_id + 1, p_stmt_id), 1) INTO in_stmt_id;
|
||||
INSERT INTO nt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id);
|
||||
INSERT INTO nt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id + 1);
|
||||
END|
|
||||
|
||||
CREATE FUNCTION fc_i_tt_5_suc (p_trans_id INTEGER, p_stmt_id INTEGER) RETURNS VARCHAR(64)
|
||||
BEGIN
|
||||
DECLARE in_stmt_id INTEGER;
|
||||
SELECT max(stmt_id) INTO in_stmt_id FROM tt_5 WHERE trans_id= p_trans_id;
|
||||
SELECT COALESCE(greatest(in_stmt_id + 1, p_stmt_id), 1) INTO in_stmt_id;
|
||||
INSERT INTO tt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id);
|
||||
INSERT INTO tt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id + 1);
|
||||
RETURN "fc_i_tt_5_suc";
|
||||
END|
|
||||
|
||||
CREATE FUNCTION fc_i_nt_5_suc (p_trans_id INTEGER, p_stmt_id INTEGER) RETURNS VARCHAR(64)
|
||||
BEGIN
|
||||
DECLARE in_stmt_id INTEGER;
|
||||
SELECT max(stmt_id) INTO in_stmt_id FROM nt_5 WHERE trans_id= p_trans_id;
|
||||
SELECT COALESCE(greatest(in_stmt_id + 1, p_stmt_id), 1) INTO in_stmt_id;
|
||||
INSERT INTO nt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id);
|
||||
INSERT INTO nt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id + 1);
|
||||
RETURN "fc_i_nt_5_suc";
|
||||
END|
|
||||
|
||||
CREATE TRIGGER tr_i_tt_3_to_nt_3 AFTER INSERT ON tt_3 FOR EACH ROW
|
||||
BEGIN
|
||||
DECLARE in_stmt_id INTEGER;
|
||||
SELECT max(stmt_id) INTO in_stmt_id FROM nt_3 WHERE trans_id= NEW.trans_id;
|
||||
SELECT COALESCE(greatest(in_stmt_id + 1, NEW.stmt_id), 1) INTO in_stmt_id;
|
||||
INSERT INTO nt_3(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id);
|
||||
INSERT INTO nt_3(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id + 1);
|
||||
END|
|
||||
|
||||
CREATE TRIGGER tr_i_nt_4_to_tt_4 AFTER INSERT ON nt_4 FOR EACH ROW
|
||||
BEGIN
|
||||
DECLARE in_stmt_id INTEGER;
|
||||
SELECT max(stmt_id) INTO in_stmt_id FROM tt_4 WHERE trans_id= NEW.trans_id;
|
||||
SELECT COALESCE(greatest(in_stmt_id + 1, NEW.stmt_id), 1) INTO in_stmt_id;
|
||||
INSERT INTO tt_4(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id);
|
||||
INSERT INTO tt_4(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id + 1);
|
||||
END|
|
||||
|
||||
CREATE TRIGGER tr_i_tt_5_to_tt_6 AFTER INSERT ON tt_5 FOR EACH ROW
|
||||
BEGIN
|
||||
DECLARE in_stmt_id INTEGER;
|
||||
SELECT max(stmt_id) INTO in_stmt_id FROM tt_6 WHERE trans_id= NEW.trans_id;
|
||||
SELECT COALESCE(greatest(in_stmt_id + 1, NEW.stmt_id, 1), 1) INTO in_stmt_id;
|
||||
INSERT INTO tt_6(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id);
|
||||
INSERT INTO tt_6(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id + 1);
|
||||
END|
|
||||
|
||||
CREATE TRIGGER tr_i_nt_5_to_nt_6 AFTER INSERT ON nt_5 FOR EACH ROW
|
||||
BEGIN
|
||||
DECLARE in_stmt_id INTEGER;
|
||||
SELECT max(stmt_id) INTO in_stmt_id FROM nt_6 WHERE trans_id= NEW.trans_id;
|
||||
SELECT COALESCE(greatest(in_stmt_id + 1, NEW.stmt_id), 1) INTO in_stmt_id;
|
||||
INSERT INTO nt_6(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id);
|
||||
INSERT INTO nt_6(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id + 1);
|
||||
END|
|
||||
|
||||
DELIMITER ;|
|
||||
|
||||
let $pos_trans_command= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
|
||||
let $trans_id= 7;
|
||||
let $tb_id= 1;
|
||||
let $stmt_id= 1;
|
||||
let $commands= '';
|
||||
|
||||
SET @commands= '';
|
||||
}
|
||||
|
||||
if (`SELECT HEX(@commands) = HEX('clean')`)
|
||||
{
|
||||
connection master;
|
||||
|
||||
DROP TABLE tt_1;
|
||||
DROP TABLE tt_2;
|
||||
DROP TABLE tt_3;
|
||||
DROP TABLE tt_4;
|
||||
DROP TABLE tt_5;
|
||||
DROP TABLE tt_6;
|
||||
|
||||
DROP TABLE nt_1;
|
||||
DROP TABLE nt_2;
|
||||
DROP TABLE nt_3;
|
||||
DROP TABLE nt_4;
|
||||
DROP TABLE nt_5;
|
||||
DROP TABLE nt_6;
|
||||
|
||||
DROP PROCEDURE pc_i_tt_5_suc;
|
||||
DROP PROCEDURE pc_i_nt_5_suc;
|
||||
DROP FUNCTION fc_i_tt_5_suc;
|
||||
DROP FUNCTION fc_i_nt_5_suc;
|
||||
|
||||
sync_slave_with_master;
|
||||
|
||||
SET @commands= '';
|
||||
}
|
||||
|
||||
while (`SELECT HEX(@commands) != HEX('')`)
|
||||
{
|
||||
--disable_query_log
|
||||
SET @command= SUBSTRING_INDEX(@commands, ' ', 1);
|
||||
let $command= `SELECT @command`;
|
||||
--eval SET @check_commands= '$commands'
|
||||
if (`SELECT HEX(@check_commands) = HEX('''')`)
|
||||
{
|
||||
let $commands= `SELECT @commands`;
|
||||
}
|
||||
--echo -b-b-b-b-b-b-b-b-b-b-b- >> $command << -b-b-b-b-b-b-b-b-b-b-b-
|
||||
let $pos_command= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
--enable_query_log
|
||||
if (`SELECT HEX(@command) = HEX('B')`)
|
||||
{
|
||||
eval BEGIN;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('T')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO tt_1(trans_id, stmt_id) VALUES ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('T-trig')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO tt_5(trans_id, stmt_id) VALUES ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('T-func')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval SELECT fc_i_tt_5_suc ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('T-proc')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval CALL pc_i_tt_5_suc ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('eT')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from tt_1`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from tt_1 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO tt_1(trans_id, stmt_id) VALUES ($old_trans_id, $old_stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('Te')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from tt_1`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from tt_1 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO tt_1(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('Te-trig')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from tt_5`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from tt_5 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO tt_5(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('Te-func')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from tt_1`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from tt_1 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO tt_1(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, ''), ($old_trans_id, $old_stmt_id, fc_i_tt_5_suc ($trans_id, $stmt_id));
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('N')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO nt_1(trans_id, stmt_id) VALUES ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('N-trig')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO nt_5(trans_id, stmt_id) VALUES ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('N-func')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval SELECT fc_i_nt_5_suc ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('N-proc')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval CALL pc_i_nt_5_suc ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('eN')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from nt_1`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from nt_1 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO nt_1(trans_id, stmt_id) VALUES ($old_trans_id, $old_stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('Ne')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from nt_1`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from nt_1 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO nt_1(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('Ne-trig')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from nt_5`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from nt_5 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO nt_5(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('Ne-func')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from nt_1`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from nt_1 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO nt_1(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, ''), ($old_trans_id, $old_stmt_id, fc_i_nt_5_suc ($trans_id, $stmt_id));
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('tN')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO nt_1(trans_id, stmt_id, info) SELECT $trans_id, $stmt_id, COUNT(*) FROM tt_1;
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('tNe')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from nt_1`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from nt_1 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO nt_1(trans_id, stmt_id, info) SELECT $trans_id, $stmt_id, COUNT(*) FROM tt_1 UNION SELECT $old_trans_id, $old_stmt_id, COUNT(*) FROM tt_1;
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('nT')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO tt_1(trans_id, stmt_id, info) SELECT $trans_id, $stmt_id, COUNT(*) FROM nt_1;
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('nTe')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from tt_1`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from tt_1 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO tt_1(trans_id, stmt_id, info) SELECT $trans_id, $stmt_id, COUNT(*) FROM nt_1 UNION SELECT $old_trans_id, $old_stmt_id, COUNT(*) FROM nt_1;
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('NT')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval UPDATE nt_3, tt_3 SET nt_3.info= "new text $trans_id --> $stmt_id", tt_3.info= "new text $trans_id --> $stmt_id" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1;
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('NT-trig')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO nt_4(trans_id, stmt_id) VALUES ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('NT-func')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO nt_5(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, fc_i_tt_5_suc($trans_id, $stmt_id));
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('NeT-trig')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from nt_4`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from nt_4 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO nt_4(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('NeT-func')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from nt_5`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from nt_5 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO nt_5(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, ''), ($old_trans_id, $old_stmt_id, fc_i_tt_5_suc ($trans_id, $stmt_id));
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('TN')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval UPDATE tt_4, nt_4 SET tt_4.info= "new text $trans_id --> $stmt_id", nt_4.info= "new text $trans_id --> $stmt_id" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1;
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('TN-trig')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO tt_3(trans_id, stmt_id) VALUES ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('TN-func')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO tt_5(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, fc_i_nt_5_suc($trans_id, $stmt_id));
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('TeN-trig')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from tt_3`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from tt_3 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO tt_3(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('TeN-func')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from tt_5`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from tt_5 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO tt_5(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, ''), ($old_trans_id, $old_stmt_id, fc_i_nt_5_suc ($trans_id, $stmt_id));
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CS-T->T')`)
|
||||
{
|
||||
--eval CREATE TABLE tt_xx_$tb_id (PRIMARY KEY(trans_id, stmt_id)) engine=$engine_type SELECT * FROM tt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CS-N->N')`)
|
||||
{
|
||||
--eval CREATE TABLE nt_xx_$tb_id (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM nt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CS-T->N')`)
|
||||
{
|
||||
--eval CREATE TABLE tt_xx_$tb_id (PRIMARY KEY(trans_id, stmt_id)) engine=$engine_type SELECT * FROM nt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CS-N->T')`)
|
||||
{
|
||||
--eval CREATE TABLE nt_xx_$tb_id (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM tt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CSe-T->T')`)
|
||||
{
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
--eval CREATE TABLE tt_xx_$tb_id (PRIMARY KEY (stmt_id)) engine=$engine_type SELECT stmt_id FROM tt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CSe-N->N')`)
|
||||
{
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
--eval CREATE TABLE nt_xx_$tb_id (PRIMARY KEY (stmt_id)) engine=MyIsam SELECT stmt_id FROM nt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CSe-T->N')`)
|
||||
{
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
--eval CREATE TABLE tt_xx_$tb_id (PRIMARY KEY (stmt_id)) engine=$engine_type SELECT stmt_id FROM nt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CSe-N->T')`)
|
||||
{
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
--eval CREATE TABLE nt_xx_$tb_id (PRIMARY KEY (stmt_id)) engine=MyIsam SELECT stmt_id FROM tt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CT')`)
|
||||
{
|
||||
--eval CREATE TEMPORARY TABLE tt_xx_$tb_id (a int) engine=$engine_type;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('IS-T<-N')`)
|
||||
{
|
||||
--eval INSERT INTO tt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('ISe-T<-N')`)
|
||||
{
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
--eval INSERT INTO tt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('IS-N<-T')`)
|
||||
{
|
||||
--eval INSERT INTO nt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('ISe-N<-T')`)
|
||||
{
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
--eval INSERT INTO nt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('IS-T<-T')`)
|
||||
{
|
||||
--eval INSERT INTO tt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('ISe-T<-T')`)
|
||||
{
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
--eval INSERT INTO tt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('IS-N<-N')`)
|
||||
{
|
||||
--eval INSERT INTO nt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('ISe-N<-N')`)
|
||||
{
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
--eval INSERT INTO nt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('trunc-CS-T')`)
|
||||
{
|
||||
eval TRUNCATE TABLE tt_xx_$tb_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('trunc-CS-N')`)
|
||||
{
|
||||
eval TRUNCATE TABLE nt_xx_$tb_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('trunc-CT')`)
|
||||
{
|
||||
eval TRUNCATE TABLE tt_xx_$tb_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('drop-CS')`)
|
||||
{
|
||||
--disable_warnings
|
||||
eval DROP TABLE IF EXISTS tt_xx_$tb_id, nt_xx_$tb_id;
|
||||
inc $tb_id;
|
||||
--enable_warnings
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('drop-CT')`)
|
||||
{
|
||||
--disable_warnings
|
||||
eval DROP TEMPORARY TABLE IF EXISTS tt_xx_$tb_id;
|
||||
inc $tb_id;
|
||||
--enable_warnings
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('C')`)
|
||||
{
|
||||
--error 0, ER_GET_ERRMSG
|
||||
eval COMMIT;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('R')`)
|
||||
{
|
||||
--error 0, ER_GET_ERRMSG
|
||||
eval ROLLBACK;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('S1')`)
|
||||
{
|
||||
eval SAVEPOINT s1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('R1')`)
|
||||
{
|
||||
eval ROLLBACK TO s1;
|
||||
}
|
||||
--disable_query_log
|
||||
SET @commands= LTRIM(SUBSTRING(@commands, LENGTH(@command) + 1));
|
||||
inc $stmt_id;
|
||||
|
||||
let $binlog_start= $pos_command;
|
||||
--source include/show_binlog_events.inc
|
||||
--echo -e-e-e-e-e-e-e-e-e-e-e- >> $command << -e-e-e-e-e-e-e-e-e-e-e-
|
||||
if (`SELECT HEX(@commands) = HEX('')`)
|
||||
{
|
||||
let $binlog_start= $pos_trans_command;
|
||||
--echo -b-b-b-b-b-b-b-b-b-b-b- >> $commands << -b-b-b-b-b-b-b-b-b-b-b-
|
||||
--source include/show_binlog_events.inc
|
||||
--echo -e-e-e-e-e-e-e-e-e-e-e- >> $commands << -e-e-e-e-e-e-e-e-e-e-e-
|
||||
--echo
|
||||
let $pos_trans_command= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
let $stmt_id= 1;
|
||||
inc $trans_id;
|
||||
let $commands= '';
|
||||
}
|
||||
}
|
@@ -820,16 +820,13 @@ i
|
||||
drop table t1;
|
||||
create temporary table t1 (j int);
|
||||
create table if not exists t1 select 1;
|
||||
Warnings:
|
||||
Note 1050 Table 't1' already exists
|
||||
select * from t1;
|
||||
j
|
||||
1
|
||||
drop temporary table t1;
|
||||
select * from t1;
|
||||
ERROR 42S02: Table 'test.t1' doesn't exist
|
||||
1
|
||||
1
|
||||
drop table t1;
|
||||
ERROR 42S02: Unknown table 't1'
|
||||
create table t1 (i int);
|
||||
insert into t1 values (1), (2);
|
||||
lock tables t1 read;
|
||||
|
@@ -682,7 +682,7 @@ select timestampadd(SQL_TSI_FRAC_SECOND, 1, date) from t1;
|
||||
timestampadd(SQL_TSI_FRAC_SECOND, 1, date)
|
||||
2003-01-02 00:00:00.000001
|
||||
Warnings:
|
||||
Warning 1287 The syntax 'FRAC_SECOND' is deprecated and will be removed in MySQL 6.2. Please use MICROSECOND instead
|
||||
Warning 1287 The syntax 'FRAC_SECOND' is deprecated and will be removed in MySQL 5.6. Please use MICROSECOND instead
|
||||
select timestampdiff(MONTH, '2001-02-01', '2001-05-01') as a;
|
||||
a
|
||||
3
|
||||
@@ -717,7 +717,7 @@ select timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05
|
||||
a
|
||||
7689538999999
|
||||
Warnings:
|
||||
Warning 1287 The syntax 'FRAC_SECOND' is deprecated and will be removed in MySQL 6.2. Please use MICROSECOND instead
|
||||
Warning 1287 The syntax 'FRAC_SECOND' is deprecated and will be removed in MySQL 5.6. Please use MICROSECOND instead
|
||||
select timestampdiff(SQL_TSI_DAY, '1986-02-01', '1986-03-01') as a1,
|
||||
timestampdiff(SQL_TSI_DAY, '1900-02-01', '1900-03-01') as a2,
|
||||
timestampdiff(SQL_TSI_DAY, '1996-02-01', '1996-03-01') as a3,
|
||||
@@ -1088,7 +1088,7 @@ timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Warning 1287 The syntax 'FRAC_SECOND' is deprecated and will be removed in MySQL 6.2. Please use MICROSECOND instead
|
||||
Warning 1287 The syntax 'FRAC_SECOND' is deprecated and will be removed in MySQL 5.6. Please use MICROSECOND instead
|
||||
Note 1003 select timestampdiff(WEEK,'2001-02-01','2001-05-01') AS `a1`,timestampdiff(SECOND_FRAC,'2001-02-01 12:59:59.120000','2001-05-01 12:58:58.119999') AS `a2`
|
||||
select time_format('100:00:00', '%H %k %h %I %l');
|
||||
time_format('100:00:00', '%H %k %h %I %l')
|
||||
@@ -1287,12 +1287,12 @@ SELECT TIMESTAMPADD(FRAC_SECOND, 1, '2008-02-18');
|
||||
TIMESTAMPADD(FRAC_SECOND, 1, '2008-02-18')
|
||||
2008-02-18 00:00:00.000001
|
||||
Warnings:
|
||||
Warning 1287 The syntax 'FRAC_SECOND' is deprecated and will be removed in MySQL 6.2. Please use MICROSECOND instead
|
||||
Warning 1287 The syntax 'FRAC_SECOND' is deprecated and will be removed in MySQL 5.6. Please use MICROSECOND instead
|
||||
SELECT TIMESTAMPDIFF(FRAC_SECOND, '2008-02-17', '2008-02-18');
|
||||
TIMESTAMPDIFF(FRAC_SECOND, '2008-02-17', '2008-02-18')
|
||||
86400000000
|
||||
Warnings:
|
||||
Warning 1287 The syntax 'FRAC_SECOND' is deprecated and will be removed in MySQL 6.2. Please use MICROSECOND instead
|
||||
Warning 1287 The syntax 'FRAC_SECOND' is deprecated and will be removed in MySQL 5.6. Please use MICROSECOND instead
|
||||
SELECT DATE_ADD('2008-02-18', INTERVAL 1 FRAC_SECOND);
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FRAC_SECOND)' at line 1
|
||||
SELECT DATE_SUB('2008-02-18', INTERVAL 1 FRAC_SECOND);
|
||||
|
@@ -93,6 +93,7 @@ ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- --position --
|
||||
Warning: The option '--position' is deprecated and will be removed in MySQL 5.6. Please use --start-position instead.
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
@@ -193,6 +194,7 @@ ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- --position --
|
||||
Warning: The option '--position' is deprecated and will be removed in MySQL 5.6. Please use --start-position instead.
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
@@ -233,6 +235,7 @@ DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
Warning: The option '--position' is deprecated and will be removed in MySQL 5.6. Please use --start-position instead.
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
|
@@ -303,3 +303,47 @@ CREATE TABLE t1 (a INT) ENGINE=InnoDB
|
||||
PARTITION BY list(a) (PARTITION p1 VALUES IN (1));
|
||||
CREATE INDEX i1 ON t1 (a);
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#47343: InnoDB fails to clean-up after lock wait timeout on
|
||||
# REORGANIZE PARTITION
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
a INT,
|
||||
b DATE NOT NULL,
|
||||
PRIMARY KEY (a, b)
|
||||
) ENGINE=InnoDB
|
||||
PARTITION BY RANGE (a) (
|
||||
PARTITION pMAX VALUES LESS THAN MAXVALUE
|
||||
) ;
|
||||
INSERT INTO t1 VALUES (1, '2001-01-01'), (2, '2002-02-02'), (3, '2003-03-03');
|
||||
START TRANSACTION;
|
||||
SELECT * FROM t1 FOR UPDATE;
|
||||
a b
|
||||
1 2001-01-01
|
||||
2 2002-02-02
|
||||
3 2003-03-03
|
||||
# Connection con1
|
||||
ALTER TABLE t1 REORGANIZE PARTITION pMAX INTO
|
||||
(PARTITION p3 VALUES LESS THAN (3),
|
||||
PARTITION pMAX VALUES LESS THAN MAXVALUE);
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Error 1205 Lock wait timeout exceeded; try restarting transaction
|
||||
ALTER TABLE t1 REORGANIZE PARTITION pMAX INTO
|
||||
(PARTITION p3 VALUES LESS THAN (3),
|
||||
PARTITION pMAX VALUES LESS THAN MAXVALUE);
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Error 1205 Lock wait timeout exceeded; try restarting transaction
|
||||
t1.frm
|
||||
t1.par
|
||||
# Connection default
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 2001-01-01
|
||||
2 2002-02-02
|
||||
3 2003-03-03
|
||||
COMMIT;
|
||||
DROP TABLE t1;
|
||||
|
@@ -1,4 +1,614 @@
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
#
|
||||
# Bug#49742: Partition Pruning not working correctly for RANGE
|
||||
#
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY)
|
||||
PARTITION BY RANGE (a) (
|
||||
PARTITION p0 VALUES LESS THAN (1),
|
||||
PARTITION p1 VALUES LESS THAN (2),
|
||||
PARTITION p2 VALUES LESS THAN (3),
|
||||
PARTITION p3 VALUES LESS THAN (4),
|
||||
PARTITION p4 VALUES LESS THAN (5),
|
||||
PARTITION p5 VALUES LESS THAN (6),
|
||||
PARTITION max VALUES LESS THAN MAXVALUE);
|
||||
INSERT INTO t1 VALUES (-1),(0),(1),(2),(3),(4),(5),(6),(7),(8);
|
||||
SELECT * FROM t1 WHERE a < 1;
|
||||
a
|
||||
-1
|
||||
0
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 1;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0 index PRIMARY PRIMARY 4 NULL 2 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a < 2;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 2;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1 index PRIMARY PRIMARY 4 NULL 3 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a < 3;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 3;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2 index PRIMARY PRIMARY 4 NULL 4 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a < 4;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 4;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3 index PRIMARY PRIMARY 4 NULL 5 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a < 5;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 5;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3,p4 index PRIMARY PRIMARY 4 NULL 6 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a < 6;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 6;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3,p4,p5 index PRIMARY PRIMARY 4 NULL 7 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a < 7;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 7;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3,p4,p5,max range PRIMARY PRIMARY 4 NULL 9 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a <= 1;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 1;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1 index PRIMARY PRIMARY 4 NULL 10 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a <= 2;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 2;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2 index PRIMARY PRIMARY 4 NULL 10 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a <= 3;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 3;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3 index PRIMARY PRIMARY 4 NULL 10 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a <= 4;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 4;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3,p4 index PRIMARY PRIMARY 4 NULL 10 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a <= 5;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 5;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3,p4,p5 index PRIMARY PRIMARY 4 NULL 10 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a <= 6;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 6;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3,p4,p5,max range PRIMARY PRIMARY 4 NULL 9 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a <= 7;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 7;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3,p4,p5,max range PRIMARY PRIMARY 4 NULL 9 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a = 1;
|
||||
a
|
||||
1
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 1;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p1 system PRIMARY NULL NULL NULL 1
|
||||
SELECT * FROM t1 WHERE a = 2;
|
||||
a
|
||||
2
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 2;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p2 system PRIMARY NULL NULL NULL 1
|
||||
SELECT * FROM t1 WHERE a = 3;
|
||||
a
|
||||
3
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 3;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p3 system PRIMARY NULL NULL NULL 1
|
||||
SELECT * FROM t1 WHERE a = 4;
|
||||
a
|
||||
4
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 4;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p4 system PRIMARY NULL NULL NULL 1
|
||||
SELECT * FROM t1 WHERE a = 5;
|
||||
a
|
||||
5
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 5;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p5 system PRIMARY NULL NULL NULL 1
|
||||
SELECT * FROM t1 WHERE a = 6;
|
||||
a
|
||||
6
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 6;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 max const PRIMARY PRIMARY 4 const 1 Using index
|
||||
SELECT * FROM t1 WHERE a = 7;
|
||||
a
|
||||
7
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 7;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 max const PRIMARY PRIMARY 4 const 1 Using index
|
||||
SELECT * FROM t1 WHERE a >= 1;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 1;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p1,p2,p3,p4,p5,max index PRIMARY PRIMARY 4 NULL 10 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a >= 2;
|
||||
a
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 2;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p2,p3,p4,p5,max index PRIMARY PRIMARY 4 NULL 10 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a >= 3;
|
||||
a
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 3;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p3,p4,p5,max index PRIMARY PRIMARY 4 NULL 10 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a >= 4;
|
||||
a
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 4;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p4,p5,max index PRIMARY PRIMARY 4 NULL 10 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a >= 5;
|
||||
a
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 5;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p5,max index PRIMARY PRIMARY 4 NULL 10 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a >= 6;
|
||||
a
|
||||
6
|
||||
7
|
||||
8
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 6;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 max index PRIMARY PRIMARY 4 NULL 10 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a >= 7;
|
||||
a
|
||||
7
|
||||
8
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 7;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 max range PRIMARY PRIMARY 4 NULL 2 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a > 1;
|
||||
a
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 1;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p2,p3,p4,p5,max index PRIMARY PRIMARY 4 NULL 10 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a > 2;
|
||||
a
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 2;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p3,p4,p5,max index PRIMARY PRIMARY 4 NULL 10 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a > 3;
|
||||
a
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 3;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p4,p5,max index PRIMARY PRIMARY 4 NULL 10 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a > 4;
|
||||
a
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 4;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p5,max index PRIMARY PRIMARY 4 NULL 10 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a > 5;
|
||||
a
|
||||
6
|
||||
7
|
||||
8
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 5;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 max index PRIMARY PRIMARY 4 NULL 10 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a > 6;
|
||||
a
|
||||
7
|
||||
8
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 6;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 max range PRIMARY PRIMARY 4 NULL 2 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a > 7;
|
||||
a
|
||||
8
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 7;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 max range PRIMARY PRIMARY 4 NULL 2 Using where; Using index
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY)
|
||||
PARTITION BY RANGE (a) (
|
||||
PARTITION p0 VALUES LESS THAN (1),
|
||||
PARTITION p1 VALUES LESS THAN (2),
|
||||
PARTITION p2 VALUES LESS THAN (3),
|
||||
PARTITION p3 VALUES LESS THAN (4),
|
||||
PARTITION p4 VALUES LESS THAN (5),
|
||||
PARTITION max VALUES LESS THAN MAXVALUE);
|
||||
INSERT INTO t1 VALUES (-1),(0),(1),(2),(3),(4),(5),(6),(7);
|
||||
SELECT * FROM t1 WHERE a < 1;
|
||||
a
|
||||
-1
|
||||
0
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 1;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0 index PRIMARY PRIMARY 4 NULL 2 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a < 2;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 2;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1 index PRIMARY PRIMARY 4 NULL 3 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a < 3;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 3;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2 index PRIMARY PRIMARY 4 NULL 4 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a < 4;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 4;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3 index PRIMARY PRIMARY 4 NULL 5 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a < 5;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 5;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3,p4 index PRIMARY PRIMARY 4 NULL 6 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a < 6;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 6;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3,p4,max range PRIMARY PRIMARY 4 NULL 8 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a <= 1;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 1;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1 index PRIMARY PRIMARY 4 NULL 9 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a <= 2;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 2;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2 index PRIMARY PRIMARY 4 NULL 9 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a <= 3;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 3;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3 index PRIMARY PRIMARY 4 NULL 9 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a <= 4;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 4;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3,p4 index PRIMARY PRIMARY 4 NULL 9 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a <= 5;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 5;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3,p4,max range PRIMARY PRIMARY 4 NULL 8 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a <= 6;
|
||||
a
|
||||
-1
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 6;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p0,p1,p2,p3,p4,max range PRIMARY PRIMARY 4 NULL 8 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a = 1;
|
||||
a
|
||||
1
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 1;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p1 system PRIMARY NULL NULL NULL 1
|
||||
SELECT * FROM t1 WHERE a = 2;
|
||||
a
|
||||
2
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 2;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p2 system PRIMARY NULL NULL NULL 1
|
||||
SELECT * FROM t1 WHERE a = 3;
|
||||
a
|
||||
3
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 3;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p3 system PRIMARY NULL NULL NULL 1
|
||||
SELECT * FROM t1 WHERE a = 4;
|
||||
a
|
||||
4
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 4;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p4 system PRIMARY NULL NULL NULL 1
|
||||
SELECT * FROM t1 WHERE a = 5;
|
||||
a
|
||||
5
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 5;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 max const PRIMARY PRIMARY 4 const 1 Using index
|
||||
SELECT * FROM t1 WHERE a = 6;
|
||||
a
|
||||
6
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 6;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 max const PRIMARY PRIMARY 4 const 1 Using index
|
||||
SELECT * FROM t1 WHERE a >= 1;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 1;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p1,p2,p3,p4,max index PRIMARY PRIMARY 4 NULL 9 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a >= 2;
|
||||
a
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 2;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p2,p3,p4,max index PRIMARY PRIMARY 4 NULL 9 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a >= 3;
|
||||
a
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 3;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p3,p4,max index PRIMARY PRIMARY 4 NULL 9 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a >= 4;
|
||||
a
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 4;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p4,max index PRIMARY PRIMARY 4 NULL 9 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a >= 5;
|
||||
a
|
||||
5
|
||||
6
|
||||
7
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 5;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 max index PRIMARY PRIMARY 4 NULL 9 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a >= 6;
|
||||
a
|
||||
6
|
||||
7
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 6;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 max range PRIMARY PRIMARY 4 NULL 2 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a > 1;
|
||||
a
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 1;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p2,p3,p4,max index PRIMARY PRIMARY 4 NULL 9 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a > 2;
|
||||
a
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 2;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p3,p4,max index PRIMARY PRIMARY 4 NULL 9 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a > 3;
|
||||
a
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 3;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 p4,max index PRIMARY PRIMARY 4 NULL 9 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a > 4;
|
||||
a
|
||||
5
|
||||
6
|
||||
7
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 4;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 max index PRIMARY PRIMARY 4 NULL 9 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a > 5;
|
||||
a
|
||||
6
|
||||
7
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 5;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 max range PRIMARY PRIMARY 4 NULL 2 Using where; Using index
|
||||
SELECT * FROM t1 WHERE a > 6;
|
||||
a
|
||||
7
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 6;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 max range PRIMARY PRIMARY 4 NULL 2 Using where; Using index
|
||||
DROP TABLE t1;
|
||||
# test of RANGE and index
|
||||
CREATE TABLE t1 (a DATE, KEY(a))
|
||||
PARTITION BY RANGE (TO_DAYS(a))
|
||||
@@ -2145,7 +2755,7 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 p0,p4 ALL NULL NULL NULL NULL 910 Using where
|
||||
explain partitions select * from t2 where (a > 100 AND a < 600);
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 p0,p1,p2,p3 ALL NULL NULL NULL NULL 910 Using where
|
||||
1 SIMPLE t2 p0,p1,p2 ALL NULL NULL NULL NULL 910 Using where
|
||||
explain partitions select * from t2 where b = 4;
|
||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 p0,p1,p2,p3,p4 ref b b 5 const 76 Using where
|
||||
|
@@ -1695,23 +1695,23 @@ SUCCESS
|
||||
drop table t2;
|
||||
create temporary table t2 (a int);
|
||||
execute stmt;
|
||||
ERROR 42S01: Table 't2' already exists
|
||||
call p_verify_reprepare_count(1);
|
||||
SUCCESS
|
||||
|
||||
execute stmt;
|
||||
ERROR 42S01: Table 't2' already exists
|
||||
call p_verify_reprepare_count(0);
|
||||
call p_verify_reprepare_count(1);
|
||||
SUCCESS
|
||||
|
||||
drop temporary table t2;
|
||||
execute stmt;
|
||||
call p_verify_reprepare_count(1);
|
||||
ERROR 42S01: Table 't2' already exists
|
||||
call p_verify_reprepare_count(0);
|
||||
SUCCESS
|
||||
|
||||
drop table t2;
|
||||
execute stmt;
|
||||
call p_verify_reprepare_count(0);
|
||||
call p_verify_reprepare_count(1);
|
||||
SUCCESS
|
||||
|
||||
drop table t2;
|
||||
|
@@ -4602,4 +4602,17 @@ SELECT 1 FROM t1 GROUP BY
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #49512 : subquery with aggregate function crash
|
||||
# subselect_single_select_engine::exec()
|
||||
CREATE TABLE t1(a INT);
|
||||
INSERT INTO t1 VALUES();
|
||||
# should not crash
|
||||
SELECT 1 FROM t1 WHERE a <> SOME
|
||||
(
|
||||
SELECT MAX((SELECT a FROM t1 LIMIT 1)) AS d
|
||||
FROM t1,t1 a
|
||||
);
|
||||
1
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests.
|
||||
|
@@ -566,7 +566,7 @@ set sql_log_bin=1;
|
||||
set sql_log_off=1;
|
||||
set sql_log_update=1;
|
||||
Warnings:
|
||||
Note 1315 The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been ignored
|
||||
Note 1315 The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been ignored. This option will be removed in MySQL 5.6.
|
||||
set sql_low_priority_updates=1;
|
||||
set sql_max_join_size=200;
|
||||
select @@sql_max_join_size,@@max_join_size;
|
||||
|
@@ -31,3 +31,37 @@ SHOW EVENTS in mysqltest;
|
||||
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
|
||||
mysqltest e root@localhost SYSTEM ONE TIME # NULL NULL NULL NULL SLAVESIDE_DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
DROP DATABASE IF EXISTS mysqltest;
|
||||
-------------BUG#47418-------------
|
||||
USE test;
|
||||
DROP TABLE IF EXISTS t3;
|
||||
CREATE TABLE t3(c1 INTEGER);
|
||||
INSERT INTO t3 VALUES(33);
|
||||
CREATE TEMPORARY TABLE t1(c1 INTEGER);
|
||||
CREATE TEMPORARY TABLE t2(c1 INTEGER);
|
||||
INSERT INTO t1 VALUES(1);
|
||||
INSERT INTO t2 VALUES(1);
|
||||
CREATE TABLE IF NOT EXISTS t1(c1 INTEGER) SELECT c1 FROM t3;
|
||||
CREATE TABLE t2(c1 INTEGER) SELECT c1 FROM t3;
|
||||
SELECT * FROM t1;
|
||||
c1
|
||||
1
|
||||
SELECT * FROM t2;
|
||||
c1
|
||||
1
|
||||
SELECT * FROM t1;
|
||||
c1
|
||||
33
|
||||
SELECT * FROM t2;
|
||||
c1
|
||||
33
|
||||
DROP TEMPORARY TABLE t1;
|
||||
DROP TEMPORARY TABLE t2;
|
||||
SELECT * FROM t1;
|
||||
c1
|
||||
33
|
||||
SELECT * FROM t2;
|
||||
c1
|
||||
33
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t3;
|
||||
|
@@ -1,24 +0,0 @@
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
CREATE TABLE t1 (c1 BIT, c2 INT);
|
||||
INSERT INTO `t1` VALUES ( 1, 1 );
|
||||
UPDATE t1 SET c1=NULL where c2=1;
|
||||
Comparing tables master:test.t1 and slave:test.t1
|
||||
DELETE FROM t1 WHERE c2=1 LIMIT 1;
|
||||
Comparing tables master:test.t1 and slave:test.t1
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 CHAR);
|
||||
INSERT INTO t1 ( c1 ) VALUES ( 'w' ) ;
|
||||
SELECT * FROM t1;
|
||||
c1
|
||||
w
|
||||
# should trigger switch to row due to LIMIT
|
||||
UPDATE t1 SET c1=NULL WHERE c1='w' LIMIT 2;
|
||||
Comparing tables master:test.t1 and slave:test.t1
|
||||
DELETE FROM t1 LIMIT 2;
|
||||
Comparing tables master:test.t1 and slave:test.t1
|
||||
DROP TABLE t1;
|
@@ -152,6 +152,7 @@ c1 c3 c4 c5
|
||||
5 2006-02-22 00:00:00 Tested in Texas 11
|
||||
|
||||
--- Test 2 position test --
|
||||
Warning: The option '--position' is deprecated and will be removed in MySQL 5.6. Please use --start-position instead.
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
@@ -314,6 +315,7 @@ ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- Test 7 reading stdin w/position --
|
||||
Warning: The option '--position' is deprecated and will be removed in MySQL 5.6. Please use --start-position instead.
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
|
@@ -195,7 +195,7 @@ set @old_log_bin_trust_routine_creators= @@global.log_bin_trust_routine_creators
|
||||
set @old_log_bin_trust_function_creators= @@global.log_bin_trust_function_creators;
|
||||
set global log_bin_trust_routine_creators=1;
|
||||
Warnings:
|
||||
Warning 1287 The syntax '@@log_bin_trust_routine_creators' is deprecated and will be removed in MySQL 6.0. Please use '@@log_bin_trust_function_creators' instead
|
||||
Warning 1287 The syntax '@@log_bin_trust_routine_creators' is deprecated and will be removed in MySQL 5.6. Please use '@@log_bin_trust_function_creators' instead
|
||||
set global log_bin_trust_function_creators=0;
|
||||
set global log_bin_trust_function_creators=1;
|
||||
set @old_log_bin_trust_routine_creators= @@global.log_bin_trust_routine_creators;
|
||||
@@ -559,11 +559,11 @@ end
|
||||
master-bin.000001 # Query # # use `mysqltest`; SELECT `mysqltest2`.`f1`()
|
||||
set @@global.log_bin_trust_routine_creators= @old_log_bin_trust_routine_creators;
|
||||
Warnings:
|
||||
Warning 1287 The syntax '@@log_bin_trust_routine_creators' is deprecated and will be removed in MySQL 6.0. Please use '@@log_bin_trust_function_creators' instead
|
||||
Warning 1287 The syntax '@@log_bin_trust_routine_creators' is deprecated and will be removed in MySQL 5.6. Please use '@@log_bin_trust_function_creators' instead
|
||||
set @@global.log_bin_trust_function_creators= @old_log_bin_trust_function_creators;
|
||||
set @@global.log_bin_trust_routine_creators= @old_log_bin_trust_routine_creators;
|
||||
Warnings:
|
||||
Warning 1287 The syntax '@@log_bin_trust_routine_creators' is deprecated and will be removed in MySQL 6.0. Please use '@@log_bin_trust_function_creators' instead
|
||||
Warning 1287 The syntax '@@log_bin_trust_routine_creators' is deprecated and will be removed in MySQL 5.6. Please use '@@log_bin_trust_function_creators' instead
|
||||
set @@global.log_bin_trust_function_creators= @old_log_bin_trust_function_creators;
|
||||
drop database mysqltest;
|
||||
drop database mysqltest2;
|
||||
|
1360
mysql-test/suite/rpl/r/rpl_stm_binlog_direct.result
Normal file
1360
mysql-test/suite/rpl/r/rpl_stm_binlog_direct.result
Normal file
File diff suppressed because it is too large
Load Diff
@@ -67,4 +67,57 @@ SHOW EVENTS in mysqltest;
|
||||
|
||||
connection master;
|
||||
DROP DATABASE IF EXISTS mysqltest;
|
||||
|
||||
#
|
||||
# BUG#47418 RBR fails, failure with mixup of base/temporary/view TABLE DDL
|
||||
#
|
||||
# Before the patch for this bug, 'CREATE TABLE IF NOT EXIST ... SELECT'
|
||||
# statement was binlogged as a TEMPORARY table if the object existed as
|
||||
# a temporary table. This was caused by that the temporary table was opened
|
||||
# and the results of the 'SELECT' was inserted into the temporary table if
|
||||
# a temporary table existed with the same name.
|
||||
#
|
||||
# After the patch for this bug, the base table is created and the results of
|
||||
# the 'SELECT' are inserted into it, even though a temporary table exists with
|
||||
# the same name, and the statement is still binlogged as a base table.
|
||||
#
|
||||
|
||||
echo -------------BUG#47418-------------;
|
||||
connection master;
|
||||
USE test;
|
||||
DROP TABLE IF EXISTS t3;
|
||||
--enable_warnings
|
||||
CREATE TABLE t3(c1 INTEGER);
|
||||
INSERT INTO t3 VALUES(33);
|
||||
|
||||
CREATE TEMPORARY TABLE t1(c1 INTEGER);
|
||||
CREATE TEMPORARY TABLE t2(c1 INTEGER);
|
||||
INSERT INTO t1 VALUES(1);
|
||||
INSERT INTO t2 VALUES(1);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS t1(c1 INTEGER) SELECT c1 FROM t3;
|
||||
CREATE TABLE t2(c1 INTEGER) SELECT c1 FROM t3;
|
||||
|
||||
# In these two statements, t1 and t2 are the temporary table. there is only
|
||||
# value '1' in them. The records of t2 are not inserted into them.
|
||||
SELECT * FROM t1;
|
||||
SELECT * FROM t2;
|
||||
sync_slave_with_master;
|
||||
|
||||
# In these two statements, t1 and t2 are the base table. The recoreds of t2
|
||||
# are inserted into it when CREATE TABLE ... SELECT was executed.
|
||||
SELECT * FROM t1;
|
||||
SELECT * FROM t2;
|
||||
|
||||
connection master;
|
||||
DROP TEMPORARY TABLE t1;
|
||||
DROP TEMPORARY TABLE t2;
|
||||
#In these two statements, t1 and t2 are the base table.
|
||||
SELECT * FROM t1;
|
||||
SELECT * FROM t2;
|
||||
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t3;
|
||||
|
||||
source include/master-slave-end.inc;
|
||||
|
@@ -1,53 +0,0 @@
|
||||
# BUG#49481: RBR: MyISAM and bit fields may cause slave to stop on delete cant find record
|
||||
# BUG#49482: RBR: Replication may break on deletes when MyISAM tables + char field are used
|
||||
|
||||
-- source include/master-slave.inc
|
||||
-- source include/have_binlog_format_mixed_or_row.inc
|
||||
|
||||
-- connection master
|
||||
CREATE TABLE t1 (c1 BIT, c2 INT);
|
||||
INSERT INTO `t1` VALUES ( 1, 1 );
|
||||
UPDATE t1 SET c1=NULL where c2=1;
|
||||
-- sync_slave_with_master
|
||||
|
||||
-- let $diff_table_1=master:test.t1
|
||||
-- let $diff_table_2=slave:test.t1
|
||||
-- source include/diff_tables.inc
|
||||
|
||||
-- connection master
|
||||
DELETE FROM t1 WHERE c2=1 LIMIT 1;
|
||||
-- sync_slave_with_master
|
||||
|
||||
-- let $diff_table_1=master:test.t1
|
||||
-- let $diff_table_2=slave:test.t1
|
||||
-- source include/diff_tables.inc
|
||||
|
||||
-- connection master
|
||||
DROP TABLE t1;
|
||||
-- sync_slave_with_master
|
||||
|
||||
-- connection master
|
||||
|
||||
CREATE TABLE t1 (c1 CHAR);
|
||||
|
||||
INSERT INTO t1 ( c1 ) VALUES ( 'w' ) ;
|
||||
SELECT * FROM t1;
|
||||
-- echo # should trigger switch to row due to LIMIT
|
||||
UPDATE t1 SET c1=NULL WHERE c1='w' LIMIT 2;
|
||||
-- sync_slave_with_master
|
||||
|
||||
-- let $diff_table_1=master:test.t1
|
||||
-- let $diff_table_2=slave:test.t1
|
||||
-- source include/diff_tables.inc
|
||||
|
||||
-- connection master
|
||||
DELETE FROM t1 LIMIT 2;
|
||||
-- sync_slave_with_master
|
||||
|
||||
-- let $diff_table_1=master:test.t1
|
||||
-- let $diff_table_2=slave:test.t1
|
||||
-- source include/diff_tables.inc
|
||||
|
||||
-- connection master
|
||||
DROP TABLE t1;
|
||||
-- sync_slave_with_master
|
1
mysql-test/suite/rpl/t/rpl_stm_binlog_direct-master.opt
Normal file
1
mysql-test/suite/rpl/t/rpl_stm_binlog_direct-master.opt
Normal file
@@ -0,0 +1 @@
|
||||
--binlog-direct-non-transactional-updates
|
230
mysql-test/suite/rpl/t/rpl_stm_binlog_direct.test
Normal file
230
mysql-test/suite/rpl/t/rpl_stm_binlog_direct.test
Normal file
@@ -0,0 +1,230 @@
|
||||
################################################################################
|
||||
# This test case checks if the option "binlog-direct-non-transactional-updates"
|
||||
# makes non-transactional changes in the statement format to be written to the
|
||||
# binary log as soon as the statement commits.
|
||||
#
|
||||
# In what follows, we use the include file rpl_mixing_engines.inc to generate
|
||||
# sql commands from a format string. The format string consists of a sequence of
|
||||
# 'codes' separated by spaces. Before it set of commands, we paste the expected
|
||||
# sequence in the binary log. The following codes exist:
|
||||
#
|
||||
# - Define the scope of a transaction:
|
||||
# B - Begin.
|
||||
# C - Commit.
|
||||
# R - Rollback.
|
||||
#
|
||||
# - Change only T-Tables:
|
||||
# T - Updates a T-Table.
|
||||
# T-trig - Updates T-Tables through a trigger.
|
||||
# T-func - Updates T-Tables through a function.
|
||||
# T-proc - Updates T-Tables through a procedure.
|
||||
# eT - Fails while updating the first tuple in a T-Table.
|
||||
# Te - Fails while updating an n-tuple (n > 1) in a T-Table.
|
||||
# Te-trig - Fails while updating an n-tuple (n > 1) in a T-Table.
|
||||
# Te-func - Fails while updating an n-tuple (n > 1) in a T-Table.
|
||||
#
|
||||
# - Change only N-Tables
|
||||
# N - Updates a N-Table.
|
||||
# N-trig - Updates N-Tables through a trigger.
|
||||
# N-func - Updates N-Tables through a function.
|
||||
# N-proc - Updates N-Tables through a procedure.
|
||||
# eN - Fails while updating the first tuple in a N-Table.
|
||||
# Ne - Fails while updating an n-tuple (n > 1) in a N-Table.
|
||||
# Ne-trig - Fails while updating an n-tuple (n > 1) in a N-Table.
|
||||
# Ne-func - Fails while updating an n-tuple (n > 1) in a N-Table.
|
||||
################################################################################
|
||||
|
||||
--source include/have_binlog_format_statement.inc
|
||||
--source include/master-slave.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
set @@session.binlog_direct_non_transactional_updates= TRUE;
|
||||
|
||||
--echo #########################################################################
|
||||
--echo # CONFIGURATION
|
||||
--echo #########################################################################
|
||||
|
||||
--let $engine_type= Innodb
|
||||
SET @commands= 'configure';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
--echo #########################################################################
|
||||
--echo # 1 - BINLOG ORDER
|
||||
--echo #########################################################################
|
||||
connection master;
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo #
|
||||
--echo #3) Generates in the binlog what follows:
|
||||
--echo # --> STMT "N B T C" entries, format S.
|
||||
--echo #
|
||||
SET @commands= 'B T N C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T N-trig C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T N-func C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T N-proc C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-trig N C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-trig N-trig C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-trig N-func C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-trig N-proc C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-func N C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-func N-trig C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-func N-func C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-func N-proc C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-proc N C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-proc N-trig C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-proc N-func C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-proc N-proc C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo #
|
||||
--echo #3.e) Generates in the binlog what follows if T-* fails:
|
||||
--echo # --> STMT "N" entry, format S.
|
||||
--echo # Otherwise, what follows if N-* fails and a N-Table is changed:
|
||||
--echo # --> STMT "N B T C" entries, format S.
|
||||
--echo #
|
||||
SET @commands= 'B eT N C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B Te N C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T eN C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T Ne C';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo #
|
||||
--echo #4) Generates in the binlog what follows:
|
||||
--echo # --> STMT "N B T R" entries, format S.
|
||||
--echo #
|
||||
SET @commands= 'B T N R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T N-trig R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T N-func R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T N-proc R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-trig N R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-trig N-trig R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-trig N-func R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-trig N-proc R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-func N R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-func N-trig R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-func N-func R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-func N-proc R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-proc N R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-proc N-trig R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-proc N-func R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T-proc N-proc R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo #
|
||||
--echo #4.e) Generates in the binlog what follows if T* fails:
|
||||
--echo # --> STMT "B N C" entry, format S.
|
||||
--echo # Otherwise, what follows if N* fails and a N-Table is changed:
|
||||
--echo # --> STMT "N" entries, format S.
|
||||
--echo #
|
||||
SET @commands= 'B eT N R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B Te N R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T eN R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
SET @commands= 'B T Ne R';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
||||
|
||||
|
||||
--echo ###################################################################################
|
||||
--echo # CHECK CONSISTENCY
|
||||
--echo ###################################################################################
|
||||
connection master;
|
||||
sync_slave_with_master;
|
||||
|
||||
--exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/test-nmt-master.sql
|
||||
--exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/test-nmt-slave.sql
|
||||
--diff_files $MYSQLTEST_VARDIR/tmp/test-nmt-master.sql $MYSQLTEST_VARDIR/tmp/test-nmt-slave.sql
|
||||
|
||||
--echo ###################################################################################
|
||||
--echo # CLEAN
|
||||
--echo ###################################################################################
|
||||
SET @commands= 'clean';
|
||||
--source extra/rpl_tests/rpl_mixing_engines.inc
|
@@ -721,16 +721,15 @@ drop table t1;
|
||||
# Base vs temporary tables dillema (a.k.a. bug#24508 "Inconsistent
|
||||
# results of CREATE TABLE ... SELECT when temporary table exists").
|
||||
# In this situation we either have to create non-temporary table and
|
||||
# insert data in it or insert data in temporary table without creation
|
||||
# of permanent table. Since currently temporary tables always shadow
|
||||
# permanent tables we adopt second approach.
|
||||
# insert data in it or insert data in temporary table without creation of
|
||||
# permanent table. After patch for Bug#47418, we create the base table and
|
||||
# instert data into it, even though a temporary table exists with the same
|
||||
# name.
|
||||
create temporary table t1 (j int);
|
||||
create table if not exists t1 select 1;
|
||||
select * from t1;
|
||||
drop temporary table t1;
|
||||
--error ER_NO_SUCH_TABLE
|
||||
select * from t1;
|
||||
--error ER_BAD_TABLE_ERROR
|
||||
drop table t1;
|
||||
|
||||
|
||||
|
1
mysql-test/t/partition_innodb-master.opt
Normal file
1
mysql-test/t/partition_innodb-master.opt
Normal file
@@ -0,0 +1 @@
|
||||
--innodb_lock_wait_timeout=1
|
@@ -5,6 +5,8 @@
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||
|
||||
#
|
||||
# BUG#47774, Assertion failure in InnoDB using column list partitioning
|
||||
#
|
||||
@@ -345,6 +347,47 @@ CREATE TABLE t1 (a INT) ENGINE=InnoDB
|
||||
PARTITION BY list(a) (PARTITION p1 VALUES IN (1));
|
||||
CREATE INDEX i1 ON t1 (a);
|
||||
DROP TABLE t1;
|
||||
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||
|
||||
# Before the fix it should show extra file like #sql-2405_2.par
|
||||
--list_files $MYSQLD_DATADIR/test/ *
|
||||
|
||||
--echo #
|
||||
--echo # Bug#47343: InnoDB fails to clean-up after lock wait timeout on
|
||||
--echo # REORGANIZE PARTITION
|
||||
--echo #
|
||||
CREATE TABLE t1 (
|
||||
a INT,
|
||||
b DATE NOT NULL,
|
||||
PRIMARY KEY (a, b)
|
||||
) ENGINE=InnoDB
|
||||
PARTITION BY RANGE (a) (
|
||||
PARTITION pMAX VALUES LESS THAN MAXVALUE
|
||||
) ;
|
||||
|
||||
INSERT INTO t1 VALUES (1, '2001-01-01'), (2, '2002-02-02'), (3, '2003-03-03');
|
||||
|
||||
START TRANSACTION;
|
||||
SELECT * FROM t1 FOR UPDATE;
|
||||
|
||||
connect (con1, localhost, root,,);
|
||||
--echo # Connection con1
|
||||
--error ER_LOCK_WAIT_TIMEOUT
|
||||
ALTER TABLE t1 REORGANIZE PARTITION pMAX INTO
|
||||
(PARTITION p3 VALUES LESS THAN (3),
|
||||
PARTITION pMAX VALUES LESS THAN MAXVALUE);
|
||||
SHOW WARNINGS;
|
||||
--error ER_LOCK_WAIT_TIMEOUT
|
||||
ALTER TABLE t1 REORGANIZE PARTITION pMAX INTO
|
||||
(PARTITION p3 VALUES LESS THAN (3),
|
||||
PARTITION pMAX VALUES LESS THAN MAXVALUE);
|
||||
SHOW WARNINGS;
|
||||
|
||||
#Contents of the 'test' database directory:
|
||||
--list_files $MYSQLD_DATADIR/test
|
||||
|
||||
disconnect con1;
|
||||
connection default;
|
||||
--echo # Connection default
|
||||
SELECT * FROM t1;
|
||||
COMMIT;
|
||||
DROP TABLE t1;
|
||||
|
@@ -8,6 +8,166 @@
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
--enable_warnings
|
||||
|
||||
--echo #
|
||||
--echo # Bug#49742: Partition Pruning not working correctly for RANGE
|
||||
--echo #
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY)
|
||||
PARTITION BY RANGE (a) (
|
||||
PARTITION p0 VALUES LESS THAN (1),
|
||||
PARTITION p1 VALUES LESS THAN (2),
|
||||
PARTITION p2 VALUES LESS THAN (3),
|
||||
PARTITION p3 VALUES LESS THAN (4),
|
||||
PARTITION p4 VALUES LESS THAN (5),
|
||||
PARTITION p5 VALUES LESS THAN (6),
|
||||
PARTITION max VALUES LESS THAN MAXVALUE);
|
||||
|
||||
INSERT INTO t1 VALUES (-1),(0),(1),(2),(3),(4),(5),(6),(7),(8);
|
||||
|
||||
SELECT * FROM t1 WHERE a < 1;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 1;
|
||||
SELECT * FROM t1 WHERE a < 2;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 2;
|
||||
SELECT * FROM t1 WHERE a < 3;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 3;
|
||||
SELECT * FROM t1 WHERE a < 4;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 4;
|
||||
SELECT * FROM t1 WHERE a < 5;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 5;
|
||||
SELECT * FROM t1 WHERE a < 6;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 6;
|
||||
SELECT * FROM t1 WHERE a < 7;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 7;
|
||||
SELECT * FROM t1 WHERE a <= 1;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 1;
|
||||
SELECT * FROM t1 WHERE a <= 2;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 2;
|
||||
SELECT * FROM t1 WHERE a <= 3;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 3;
|
||||
SELECT * FROM t1 WHERE a <= 4;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 4;
|
||||
SELECT * FROM t1 WHERE a <= 5;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 5;
|
||||
SELECT * FROM t1 WHERE a <= 6;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 6;
|
||||
SELECT * FROM t1 WHERE a <= 7;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 7;
|
||||
SELECT * FROM t1 WHERE a = 1;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 1;
|
||||
SELECT * FROM t1 WHERE a = 2;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 2;
|
||||
SELECT * FROM t1 WHERE a = 3;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 3;
|
||||
SELECT * FROM t1 WHERE a = 4;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 4;
|
||||
SELECT * FROM t1 WHERE a = 5;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 5;
|
||||
SELECT * FROM t1 WHERE a = 6;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 6;
|
||||
SELECT * FROM t1 WHERE a = 7;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 7;
|
||||
SELECT * FROM t1 WHERE a >= 1;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 1;
|
||||
SELECT * FROM t1 WHERE a >= 2;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 2;
|
||||
SELECT * FROM t1 WHERE a >= 3;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 3;
|
||||
SELECT * FROM t1 WHERE a >= 4;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 4;
|
||||
SELECT * FROM t1 WHERE a >= 5;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 5;
|
||||
SELECT * FROM t1 WHERE a >= 6;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 6;
|
||||
SELECT * FROM t1 WHERE a >= 7;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 7;
|
||||
SELECT * FROM t1 WHERE a > 1;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 1;
|
||||
SELECT * FROM t1 WHERE a > 2;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 2;
|
||||
SELECT * FROM t1 WHERE a > 3;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 3;
|
||||
SELECT * FROM t1 WHERE a > 4;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 4;
|
||||
SELECT * FROM t1 WHERE a > 5;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 5;
|
||||
SELECT * FROM t1 WHERE a > 6;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 6;
|
||||
SELECT * FROM t1 WHERE a > 7;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 7;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY)
|
||||
PARTITION BY RANGE (a) (
|
||||
PARTITION p0 VALUES LESS THAN (1),
|
||||
PARTITION p1 VALUES LESS THAN (2),
|
||||
PARTITION p2 VALUES LESS THAN (3),
|
||||
PARTITION p3 VALUES LESS THAN (4),
|
||||
PARTITION p4 VALUES LESS THAN (5),
|
||||
PARTITION max VALUES LESS THAN MAXVALUE);
|
||||
|
||||
INSERT INTO t1 VALUES (-1),(0),(1),(2),(3),(4),(5),(6),(7);
|
||||
|
||||
SELECT * FROM t1 WHERE a < 1;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 1;
|
||||
SELECT * FROM t1 WHERE a < 2;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 2;
|
||||
SELECT * FROM t1 WHERE a < 3;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 3;
|
||||
SELECT * FROM t1 WHERE a < 4;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 4;
|
||||
SELECT * FROM t1 WHERE a < 5;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 5;
|
||||
SELECT * FROM t1 WHERE a < 6;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < 6;
|
||||
SELECT * FROM t1 WHERE a <= 1;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 1;
|
||||
SELECT * FROM t1 WHERE a <= 2;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 2;
|
||||
SELECT * FROM t1 WHERE a <= 3;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 3;
|
||||
SELECT * FROM t1 WHERE a <= 4;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 4;
|
||||
SELECT * FROM t1 WHERE a <= 5;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 5;
|
||||
SELECT * FROM t1 WHERE a <= 6;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= 6;
|
||||
SELECT * FROM t1 WHERE a = 1;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 1;
|
||||
SELECT * FROM t1 WHERE a = 2;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 2;
|
||||
SELECT * FROM t1 WHERE a = 3;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 3;
|
||||
SELECT * FROM t1 WHERE a = 4;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 4;
|
||||
SELECT * FROM t1 WHERE a = 5;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 5;
|
||||
SELECT * FROM t1 WHERE a = 6;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = 6;
|
||||
SELECT * FROM t1 WHERE a >= 1;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 1;
|
||||
SELECT * FROM t1 WHERE a >= 2;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 2;
|
||||
SELECT * FROM t1 WHERE a >= 3;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 3;
|
||||
SELECT * FROM t1 WHERE a >= 4;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 4;
|
||||
SELECT * FROM t1 WHERE a >= 5;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 5;
|
||||
SELECT * FROM t1 WHERE a >= 6;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= 6;
|
||||
SELECT * FROM t1 WHERE a > 1;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 1;
|
||||
SELECT * FROM t1 WHERE a > 2;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 2;
|
||||
SELECT * FROM t1 WHERE a > 3;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 3;
|
||||
SELECT * FROM t1 WHERE a > 4;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 4;
|
||||
SELECT * FROM t1 WHERE a > 5;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 5;
|
||||
SELECT * FROM t1 WHERE a > 6;
|
||||
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > 6;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug#20577: Partitions: use of to_days() function leads to selection failures
|
||||
#
|
||||
|
@@ -1445,18 +1445,19 @@ call p_verify_reprepare_count(0);
|
||||
drop table t2;
|
||||
# Temporary table with name of table to be created exists
|
||||
create temporary table t2 (a int);
|
||||
# Temporary table and base table are not in the same name space.
|
||||
execute stmt;
|
||||
call p_verify_reprepare_count(1);
|
||||
--error ER_TABLE_EXISTS_ERROR
|
||||
execute stmt;
|
||||
call p_verify_reprepare_count(1);
|
||||
drop temporary table t2;
|
||||
--error ER_TABLE_EXISTS_ERROR
|
||||
execute stmt;
|
||||
call p_verify_reprepare_count(0);
|
||||
drop temporary table t2;
|
||||
execute stmt;
|
||||
call p_verify_reprepare_count(1);
|
||||
drop table t2;
|
||||
execute stmt;
|
||||
call p_verify_reprepare_count(0);
|
||||
call p_verify_reprepare_count(1);
|
||||
drop table t2;
|
||||
# View with name of table to be created exists
|
||||
# Attention:
|
||||
|
@@ -3585,4 +3585,19 @@ SELECT 1 FROM t1 GROUP BY
|
||||
(SELECT LAST_INSERT_ID() FROM t1 ORDER BY MIN(a) ASC LIMIT 1);
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug #49512 : subquery with aggregate function crash
|
||||
--echo # subselect_single_select_engine::exec()
|
||||
|
||||
CREATE TABLE t1(a INT);
|
||||
INSERT INTO t1 VALUES();
|
||||
|
||||
--echo # should not crash
|
||||
SELECT 1 FROM t1 WHERE a <> SOME
|
||||
(
|
||||
SELECT MAX((SELECT a FROM t1 LIMIT 1)) AS d
|
||||
FROM t1,t1 a
|
||||
);
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 5.1 tests.
|
||||
|
Reference in New Issue
Block a user