mariadb/mysql-test/suite/innodb/r/update_time_wl6658.result
Michael Widenius b5615eff0d Write information about restart in .result
Idea comes from MySQL which does something similar
2019-04-01 19:47:24 +03:00

229 lines
5.5 KiB
Text

CREATE TABLE tab1(c1 int,c2 varchar(30), c3 BLOB) ENGINE=InnoDB;
CREATE TABLE tab1u LIKE tab1;
CREATE TABLE tab1d LIKE tab1;
CREATE TABLE tab1i LIKE tab1;
CREATE TABLE tab3(c1 int,c2 varchar(30)) ENGINE=InnoDB;
CREATE TABLE tab4(c1 int,c2 varchar(30)) ENGINE=InnoDB;
CREATE TABLE tab5(c1 int,c2 varchar(30)) ENGINE=InnoDB;
INSERT INTO tab1u VALUES(1,'Testing the wl6658','Testing the wl6658');
INSERT INTO tab1d VALUES(1,'Updated','Updated');
INSERT INTO tab4 VALUES(1,'Test for Update');
INSERT INTO tab5 VALUES(1,'Test for Delete');
CREATE TRIGGER test_trig BEFORE INSERT ON tab1
FOR EACH ROW BEGIN
INSERT INTO tab3 VALUES(1,'Inserted From Trigger');
UPDATE tab4 SET c2='Updated from Trigger' WHERE c1=1;
DELETE FROM tab5;
END |
CREATE TABLE tab2(
id INT NOT NULL,
store_name VARCHAR(30),
parts VARCHAR(30),
store_id INT
) ENGINE=InnoDB
PARTITION BY LIST(store_id) (
PARTITION pNorth VALUES IN (10,20,30),
PARTITION pEast VALUES IN (40,50,60),
PARTITION pWest VALUES IN (70,80,100)
);
SELECT update_time
FROM information_schema.tables WHERE table_name='tab2';
update_time
NULL
CREATE PROCEDURE proc_wl6658()
BEGIN
INSERT INTO tab2 VALUES(1,'ORACLE','NUTT',10);
INSERT INTO tab2 VALUES(2,'HUAWEI','BOLT',40);
COMMIT;
END |
CALL proc_wl6658;
SELECT * FROM tab2 ORDER BY id,store_id;
id store_name parts store_id
1 ORACLE NUTT 10
2 HUAWEI BOLT 40
SELECT COUNT(update_time)
FROM information_schema.tables WHERE table_name='tab2';
COUNT(update_time)
1
TRUNCATE TABLE tab2;
SELECT COUNT(update_time)
FROM information_schema.tables WHERE table_name='tab2';
COUNT(update_time)
1
CREATE TABLE tab7(c1 INT NOT NULL, PRIMARY KEY (c1)) ENGINE=INNODB;
CREATE TABLE tab8(c1 INT PRIMARY KEY,c2 INT,
FOREIGN KEY (c2) REFERENCES tab7(c1) ON DELETE CASCADE )
ENGINE=INNODB;
SELECT table_name,update_time
FROM information_schema.tables WHERE table_name IN ('tab7','tab8')
GROUP BY table_name ORDER BY table_name;
table_name update_time
tab7 NULL
tab8 NULL
INSERT INTO tab7 VALUES(1);
INSERT INTO tab8 VALUES(1,1);
SELECT table_name,COUNT(update_time)
FROM information_schema.tables WHERE table_name IN ('tab7','tab8')
GROUP BY table_name ORDER BY table_name;
table_name COUNT(update_time)
tab7 1
tab8 1
#restart the server
# restart
SELECT table_name,update_time
FROM information_schema.tables
WHERE table_name IN ('tab1','tab2','tab3','tab4','tab5','tab7','tab8')
ORDER BY table_name;
table_name update_time
tab1 NULL
tab2 NULL
tab3 NULL
tab4 NULL
tab5 NULL
tab7 NULL
tab8 NULL
#case1:
BEGIN WORK;
INSERT INTO tab1
VALUES(1,'Testing the wl6658', 'Testing the wl6658');
SELECT update_time
FROM information_schema.tables WHERE table_name='tab1';
update_time
NULL
COMMIT;
SELECT * FROM tab1;
c1 c2 c3
1 Testing the wl6658 Testing the wl6658
SELECT * FROM tab3;
c1 c2
1 Inserted From Trigger
SELECT * FROM tab4;
c1 c2
1 Updated from Trigger
SELECT * FROM tab5;
c1 c2
SELECT table_name,COUNT(update_time)
FROM information_schema.tables
WHERE table_name IN ('tab1','tab3','tab4','tab5')
GROUP BY table_name ORDER BY table_name;
table_name COUNT(update_time)
tab1 1
tab3 1
tab4 1
tab5 1
Testcase with UPDATE stmt and transaction
SELECT * FROM tab1u;
c1 c2 c3
1 Testing the wl6658 Testing the wl6658
SELECT update_time
FROM information_schema.tables WHERE table_name='tab1u';
update_time
NULL
#case2:
START TRANSACTION;
UPDATE tab1u SET c2='Updated',c3='Updated' WHERE c1=1;
SELECT update_time
FROM information_schema.tables WHERE table_name='tab1u';
update_time
NULL
COMMIT;
SELECT * FROM tab1u;
c1 c2 c3
1 Updated Updated
SELECT COUNT(update_time)
FROM information_schema.tables WHERE table_name='tab1u';
COUNT(update_time)
1
SELECT * FROM tab1d;
c1 c2 c3
1 Updated Updated
SELECT update_time
FROM information_schema.tables WHERE table_name='tab1d';
update_time
NULL
#case3:
START TRANSACTION;
DELETE FROM tab1d;
SELECT update_time
FROM information_schema.tables WHERE table_name='tab1d';
update_time
NULL
COMMIT;
SELECT * FROM tab1d;
c1 c2 c3
SELECT COUNT(update_time)
FROM information_schema.tables WHERE table_name='tab1d';
COUNT(update_time)
1
SELECT * FROM tab1i;
c1 c2 c3
SELECT update_time
FROM information_schema.tables WHERE table_name='tab1i';
update_time
NULL
#case4:
START TRANSACTION;
INSERT INTO tab1i
VALUES(1,'Testing the wl6658', 'Testing the wl6658');
SELECT update_time
FROM information_schema.tables WHERE table_name='tab1i';
update_time
NULL
ROLLBACK;
SELECT * FROM tab1i;
c1 c2 c3
SELECT update_time
FROM information_schema.tables WHERE table_name='tab1i';
update_time
NULL
BEGIN WORK;
DELETE FROM tab1i;
SAVEPOINT A;
INSERT INTO tab2 VALUES(1,'Oracle','NUTT',10);
INSERT INTO tab2 VALUES(2,'HUAWEI','BOLT',40);
SAVEPOINT B;
INSERT INTO tab2 VALUES(3,'IBM','NAIL',70);
SAVEPOINT C;
ROLLBACK to A;
SELECT * FROM tab2;
id store_name parts store_id
SELECT update_time
FROM information_schema.tables WHERE table_name='tab2';
update_time
NULL
#execute DDL instead of commit
create table tab6(c1 int);
SELECT update_time
FROM information_schema.tables WHERE table_name='tab2';
update_time
NULL
START TRANSACTION;
DELETE FROM tab7;
ROLLBACK;
SELECT * FROM tab7;
c1
1
SELECT * FROM tab8;
c1 c2
1 1
SELECT table_name,update_time
FROM information_schema.tables WHERE table_name IN ('tab7','tab8')
GROUP BY table_name ORDER BY table_name;
table_name update_time
tab7 NULL
tab8 NULL
DELETE FROM tab7;
SELECT * FROM tab7;
c1
SELECT * FROM tab8;
c1 c2
SELECT table_name,COUNT(update_time)
FROM information_schema.tables WHERE table_name IN ('tab7','tab8')
GROUP BY table_name ORDER BY table_name;
table_name COUNT(update_time)
tab7 1
tab8 1
#cleanup
DROP TRIGGER test_trig;
DROP TABLE tab1,tab1u,tab1d,tab1i,tab2,tab3,tab4,tab5,tab6,tab8,tab7;
DROP PROCEDURE proc_wl6658;