mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 18:41:56 +01:00
4e19539c14
mysql Fix: Changed error messages, rerecorded results and changed other relevant files.
253 lines
5.7 KiB
Text
253 lines
5.7 KiB
Text
#
|
|
# Bug #19306524 FAILING ASSERTION WITH TEMP TABLE FOR A PROCEDURE
|
|
# CALLED FROM A FUNCTION
|
|
#
|
|
call mtr.add_suppression("MariaDB is trying to drop table");
|
|
CREATE PROCEDURE cachedata(
|
|
IN obj_id BIGINT UNSIGNED,
|
|
IN start DATETIME,
|
|
IN end DATETIME
|
|
)
|
|
cachedata:BEGIN
|
|
DECLARE cache_count BIGINT;
|
|
SET @timestamp := NOW();
|
|
CREATE TEMPORARY TABLE IF NOT EXISTS cachedata (
|
|
timestamp DATETIME,
|
|
object_id BIGINT UNSIGNED NOT NULL,
|
|
start DATETIME,
|
|
end DATETIME,
|
|
seqno BIGINT AUTO_INCREMENT,
|
|
value FLOAT,
|
|
PRIMARY KEY (seqno),
|
|
INDEX (timestamp),
|
|
INDEX (object_id, start, end)
|
|
) ENGINE=INNODB;
|
|
DELETE FROM cachedata WHERE
|
|
timestamp < DATE_SUB(@timestamp, INTERVAL 15 SECOND);
|
|
SELECT count(*) INTO cache_count FROM cachedata WHERE
|
|
object_id = obj_id
|
|
AND start = start
|
|
AND end = end;
|
|
IF cache_count > 0 THEN LEAVE cachedata;
|
|
END IF;
|
|
INSERT INTO cachedata (timestamp, object_id, start, end, value) VALUES
|
|
(@timestamp, obj_id, start, end, 1234),
|
|
(@timestamp, obj_id, start, end, 4567),
|
|
(@timestamp, obj_id, start, end, 8901),
|
|
(@timestamp, obj_id, start, end, 1234),
|
|
(@timestamp, obj_id, start, end, 4567),
|
|
(@timestamp, obj_id, start, end, 8901),
|
|
(@timestamp, obj_id, start, end, 1234),
|
|
(@timestamp, obj_id, start, end, 4567),
|
|
(@timestamp, obj_id, start, end, 8901),
|
|
(@timestamp, obj_id, start, end, 1234),
|
|
(@timestamp, obj_id, start, end, 4567),
|
|
(@timestamp, obj_id, start, end, 8901),
|
|
(@timestamp, obj_id, start, end, 2345),
|
|
(@timestamp, obj_id, start, end, 1234),
|
|
(@timestamp, obj_id, start, end, 4567),
|
|
(@timestamp, obj_id, start, end, 8901),
|
|
(@timestamp, obj_id, start, end, 2345),
|
|
(@timestamp, obj_id, start, end, 1234),
|
|
(@timestamp, obj_id, start, end, 4567),
|
|
(@timestamp, obj_id, start, end, 8901),
|
|
(@timestamp, obj_id, start, end, 2345);
|
|
END$$
|
|
CREATE FUNCTION get_cache(
|
|
obj_id BIGINT UNSIGNED,
|
|
start DATETIME,
|
|
end DATETIME
|
|
)
|
|
RETURNS FLOAT
|
|
READS SQL DATA
|
|
BEGIN
|
|
DECLARE result FLOAT;
|
|
CALL cachedata(obj_id, start, end);
|
|
SELECT SUM(value) INTO result FROM cachedata WHERE
|
|
object_id = obj_id
|
|
AND start = start
|
|
AND end = end;
|
|
RETURN result;
|
|
END$$
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
SELECT get_cache(1, '2014-01-01', '2014-02-01');
|
|
get_cache(1, '2014-01-01', '2014-02-01')
|
|
95247
|
|
select sleep(1);
|
|
sleep(1)
|
|
0
|
|
DROP FUNCTION get_cache;
|
|
DROP PROCEDURE cachedata;
|