#
# 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;
Messung V0.5 in Prozent C=71 H=100 G=86
¤ Dauer der Verarbeitung: 0.2 Sekunden
(vorverarbeitet am 2026-10-08)
¤
*© Formatika GbR, Deutschland