MySql cursor... ?
14.09.2010. u 11:29 · pre 196 meseci
#1
Ovamo mi izgleda procedura, neki test.
Greska koju dobijam kada uradim call konverzija() je sledeca:
MySQL Database Error: Thread stack overrun: 4996 bytes used of a 131072 byte stack, and 128000 bytes needed. Use 'mysqld -O thread_stack=#' to specify a bigger stack.
Ne znam zasto ovo prekoraci thread_stack kada je samo jedan rekord... ?
Koliko sam razumeo guglajuci thread_stack i ne mogu da povecam, ali kako je moguce da ovako jednostavna stvar dovede do prekoracenja... ?
Zaboravih verzija MySql servera je 5.1.37
Code:
DROP PROCEDURE IF EXISTS baza.konverzija;
CREATE PROCEDURE baza.`konverzija`()
BEGIN
DECLARE a INT;
DECLARE done INT DEFAULT 0;
DECLARE C CURSOR FOR SELECT id FROM razred where id = 40;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN C;
REPEAT
FETCH C INTO a;
select 1;
UNTIL done END REPEAT;
CLOSE C;
END;
DROP PROCEDURE IF EXISTS baza.konverzija;
CREATE PROCEDURE baza.`konverzija`()
BEGIN
DECLARE a INT;
DECLARE done INT DEFAULT 0;
DECLARE C CURSOR FOR SELECT id FROM razred where id = 40;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN C;
REPEAT
FETCH C INTO a;
select 1;
UNTIL done END REPEAT;
CLOSE C;
END;
Greska koju dobijam kada uradim call konverzija() je sledeca:
MySQL Database Error: Thread stack overrun: 4996 bytes used of a 131072 byte stack, and 128000 bytes needed. Use 'mysqld -O thread_stack=#' to specify a bigger stack.
Ne znam zasto ovo prekoraci thread_stack kada je samo jedan rekord... ?
Koliko sam razumeo guglajuci thread_stack i ne mogu da povecam, ali kako je moguce da ovako jednostavna stvar dovede do prekoracenja... ?
Zaboravih verzija MySql servera je 5.1.37