1#
2# PXB-1694: ALTER TABLE ... ALGORITHM=COPY causing prepare to fail
3#
4
5start_server
6
7for i in {1..10} ; do
8mysql test <<EOF
9CREATE TABLE sbtest$i (
10  id INT NOT NULL AUTO_INCREMENT,
11  k INT NOT NULL,
12  c VARCHAR(120) NOT NULL,
13  pad VARCHAR(60) NOT NULL,
14  PRIMARY KEY (id),
15  KEY k_1 (k)
16) ENGINE=InnoDB;
17EOF
18done
19
20( for i in {1..1000} ; do
21  echo "INSERT INTO sbtest1 (k, c, pad) VALUES (FLOOR(RAND() * 1000000), UUID(), UUID());"
22done ) | mysql test
23
24for i in {2..10} ; do
25  mysql -e "INSERT INTO sbtest$i SELECT * FROM sbtest1" test
26done
27
28mysql -e "SELECT SUM(k) FROM sbtest5" test > $topdir/sum
29
30( while true ; do
31  ${MYSQL} ${MYSQL_ARGS} test -e 'CREATE INDEX t10_c ON sbtest5 (c) ALGORITHM=COPY;' 1>/dev/null 2>/dev/null
32  sleep 2
33  ${MYSQL} ${MYSQL_ARGS} test -e 'DROP INDEX t10_c ON sbtest5 ALGORITHM=COPY;' 1>/dev/null 2>/dev/null
34  sleep 2
35done ) &
36
37for i in {1..3} ; do
38  rm -rf $topdir/backup
39  xtrabackup --backup --target-dir=$topdir/backup
40  xtrabackup --prepare --target-dir=$topdir/backup
41done
42
43stop_server
44
45rm -rf $mysql_datadir
46
47xtrabackup --copy-back --target-dir=$topdir/backup
48
49start_server
50
51diff -u $topdir/sum <(mysql -e "SELECT SUM(k) FROM sbtest5" test)
52