• Tom Lane's avatar
    Rationalize and document pltcl's handling of magic ".tupno" array element. · fd2664dc
    Tom Lane authored
    For a very long time, pltcl's spi_exec and spi_execp commands have had
    a behavior of storing the current row number as an element of output
    arrays, but this was never documented.  Fix that.
    
    For an equally long time, pltcl_trigger_handler had a behavior of silently
    ignoring ".tupno" as an output column name, evidently so that the result
    of spi_exec could be used directly as a trigger result tuple.  Not sure
    how useful that really is, but in any case it's bad that it would break
    attempts to use ".tupno" as an actual column name.  We can fix it by not
    checking for ".tupno" until after we check for a column name match.  This
    comports with the effective behavior of spi_exec[p] that ".tupno" is only
    magic when you don't have an actual column named that.
    
    In passing, wordsmith the description of returning modified tuples from
    a pltcl trigger.
    
    Noted while working on Jim Nasby's patch to support composite results
    from pltcl.  The inability to return trigger tuples using ".tupno" as
    a column name is a bug, so back-patch to all supported branches.
    fd2664dc
pltcl.c 84.7 KB