Active_routine_name

SQL

function Active_routine_name(IN level INT); returns CHAR(67);


Parametry

level
vzdálenost volající rutiny


Od verze

8.0

Popis

Funkce zjišťuje a vrací jméno rozpracované rutiny (procedury nebo funkce), která, přímo nebo nepřímo, zavolala právě prováděnou rutinu. Je-li level rovno 1, vrací bezprostředně volající rutinu, pro vyšší hodnoty postupně vzdálenější rutiny. Pro level rovno 0 vrací jméno právě prováděné rutiny. Je-li level záporné, NULL nebo větší než počet volajících rutin, funkce vrací prázdný řetězec.

Funkce slouží k diagnostickým účelům, například v handlerech.



Návratová hodnota

Jméno rutiny se vrací ve tvaru `jméno_schématu`.`jméno_rutiny`.



Příklad

Funkce vypíše do logu posloupnost rozpracovaných rutin.

declare procedure Call_stack();
begin
  declare i int;   declare name char(67);
  set i=0;
 cycle:
  loop
    set name=Active_routine_name(i);
    if name IS NULL then leave cycle; end if;
    call Log_write(name);
    set i=i+1;
  end loop;
end;