• Alvaro Herrera's avatar
    Fix declaration of $_TD in "strict" trigger functions · 6b449d90
    Alvaro Herrera authored
    This was broken in commit ef19dc6d by
    the Bunce/Hunsaker/Dunstan team, which moved the declaration from
    plperl_create_sub to plperl_call_perl_trigger_func.  This doesn't
    actually work because the validator code would not find the variable
    declared; and even if you manage to get past the validator, it still
    doesn't work because get_sv("_TD", GV_ADD) doesn't have the expected
    effect.  The only reason this got beyond testing is that it only fails
    in strict mode.
    
    We need to declare it as a global just like %_SHARED; it is simpler than
    trying to actually do what the patch initially intended, and is said to
    have the same performance benefit.
    
    As a more serious issue, fix $_TD not being properly local()ized,
    meaning nested trigger functions would clobber $_TD.
    
    Alex Hunsaker, per test report from Greg Mullane
    6b449d90
plc_perlboot.pl 1.9 KB