• Tom Lane's avatar
    Use heap_modify_tuple not SPI_modifytuple in pl/perl triggers. · 0d444608
    Tom Lane authored
    The code here would need some change anyway given planned change in
    SPI_modifytuple semantics, since this executes after we've exited the
    SPI environment.  But really it's better to just use heap_modify_tuple.
    The code's actually shorter this way, and this avoids depending on some
    rather indirect reasoning about why the temporary arrays can't be overrun.
    (I think the old code is safe, as long as Perl hashes can't contain
    duplicate keys; but with this way we don't need that assumption, only
    the assumption that SPI_fnumber doesn't return an out-of-range attnum.)
    
    While at it, normalize use of SPI_fnumber: make error messages distinguish
    no-such-column from can't-set-system-column, and remove test for deleted
    column which is going to migrate into SPI_fnumber.
    0d444608
plperl.c 106 KB