Skip to content

Commit

Permalink
Merge 10.1 into 10.2
Browse files Browse the repository at this point in the history
  • Loading branch information
dr-m committed Jan 5, 2017
2 parents 11b7dff + 8049d2e commit 4ce579d
Show file tree
Hide file tree
Showing 6 changed files with 92 additions and 6 deletions.
25 changes: 25 additions & 0 deletions mysql-test/r/view.result
Original file line number Diff line number Diff line change
Expand Up @@ -5848,6 +5848,31 @@ f1 f2
drop table t1, t2;
SELECT 1 FROM (SELECT 1 as a) AS b HAVING (SELECT `SOME_GARBAGE`.b.a)=1;
ERROR 42S22: Unknown column 'SOME_GARBAGE.b.a' in 'field list'
#
# MDEV-10035: DBUG_ASSERT on CREATE VIEW v1 AS SELECT * FROM t1
# FOR UPDATE
#
CREATE TABLE t1 (a INT);
insert into t1 values (1),(2);
CREATE VIEW v1 AS SELECT * FROM t1 FOR UPDATE;
SHOW CREATE VIEW v1;
View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` for update latin1 latin1_swedish_ci
select * from v1;
a
1
2
DROP VIEW v1;
CREATE VIEW v1 AS SELECT * FROM t1 LOCK IN SHARE MODE;
SHOW CREATE VIEW v1;
View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` lock in share mode latin1 latin1_swedish_ci
select * from v1;
a
1
2
DROP VIEW v1;
DROP TABLE t1;
# -----------------------------------------------------------------
# -- End of 10.0 tests.
# -----------------------------------------------------------------
Expand Down
5 changes: 4 additions & 1 deletion mysql-test/suite/rpl/r/sec_behind_master-5114.result
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@ include/master-slave.inc
[connection master]
call mtr.add_suppression("Unsafe statement written to the binary log");
CREATE TABLE t1 (a int);
connection slave;
connection master;
INSERT INTO t1 VALUES(SLEEP(2));
connection slave;
Seconds_Behind_Master: 1
Seconds_Behind_Master_is_less_than_100
1
connection master;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave
Expand Down
42 changes: 39 additions & 3 deletions mysql-test/suite/rpl/t/sec_behind_master-5114.test
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,60 @@ source include/have_binlog_format_statement.inc;

call mtr.add_suppression("Unsafe statement written to the binary log");


# Make sure that the start time of the first event is certainly different
# from the next event
--let $timestamp= `SELECT @@timestamp`
--disable_query_log
eval SET TIMESTAMP= $timestamp-100;
--enable_query_log
CREATE TABLE t1 (a int);

# Make sure that the slave is done with the first event, and all checks
# that we'll perform later will be really against the second event
sync_slave_with_master;

connection master;

# Restore the timestamp now. It doesn't matter that it's not precise,
# it just needs to be very different from the earlier event
--disable_query_log
eval SET TIMESTAMP= $timestamp;
--enable_query_log

send INSERT INTO t1 VALUES(SLEEP(2));

connection slave;
let $run = 10;

# When the slave starts executing the event, Seconds_Behind_Master
# should start growing steadilly. The bugfix ensures that they are
# calculated based on the start time of the current event, rather
# than the start time of the previous event. To check it, we only need
# the first non-zero value

let $run = 20;
while ($run)
{
dec $run;
let $sbm=query_get_value(SHOW SLAVE STATUS, Seconds_Behind_Master, 1);
# for debugging uncomment echo and remove the if()
#echo Seconds_Behind_Master: $sbm;
# echo Seconds_Behind_Master: $sbm;
if ($sbm)
{
let $run = 0;
}
sleep 0.5;
}
echo Seconds_Behind_Master: $sbm;

# Normally the first non-zero value should be 1. However, due to race
# conditions on slow servers, sometimes the check might miss the value 1,
# and only catch a higher one. It does not matter, we just need to make
# sure it didn't start with 100+, as it would have with bug MDEV-5114

--disable_query_log
eval SELECT $sbm > 0 and $sbm < 99 AS Seconds_Behind_Master_is_less_than_100;
--enable_query_log

connection master;
reap;
drop table t1;
Expand Down
22 changes: 22 additions & 0 deletions mysql-test/t/view.test
Original file line number Diff line number Diff line change
Expand Up @@ -5702,6 +5702,28 @@ drop table t1, t2;
--error ER_BAD_FIELD_ERROR
SELECT 1 FROM (SELECT 1 as a) AS b HAVING (SELECT `SOME_GARBAGE`.b.a)=1;


--echo #
--echo # MDEV-10035: DBUG_ASSERT on CREATE VIEW v1 AS SELECT * FROM t1
--echo # FOR UPDATE
--echo #

CREATE TABLE t1 (a INT);
insert into t1 values (1),(2);

CREATE VIEW v1 AS SELECT * FROM t1 FOR UPDATE;
SHOW CREATE VIEW v1;
select * from v1;
DROP VIEW v1;

CREATE VIEW v1 AS SELECT * FROM t1 LOCK IN SHARE MODE;
SHOW CREATE VIEW v1;
select * from v1;
DROP VIEW v1;

DROP TABLE t1;


--echo # -----------------------------------------------------------------
--echo # -- End of 10.0 tests.
--echo # -----------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion storage/innobase/handler/handler0alter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6067,7 +6067,7 @@ ha_innobase::prepare_inplace_alter_table(

if (!index->to_be_dropped && dict_index_is_corrupted(index)) {
my_error(ER_INDEX_CORRUPT, MYF(0), index->name());
DBUG_RETURN(true);
goto err_exit;
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion storage/xtradb/handler/handler0alter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3959,7 +3959,7 @@ ha_innobase::prepare_inplace_alter_table(
index->name, TRUE);

my_error(ER_INDEX_CORRUPT, MYF(0), index_name);
DBUG_RETURN(true);
goto err_exit;
}
}
}
Expand Down

0 comments on commit 4ce579d

Please sign in to comment.