• Tom Lane's avatar
    Remove PLPGSQL_DTYPE_ARRAYELEM datum type within pl/pgsql. · 1788828d
    Tom Lane authored
    In the wake of the previous commit, we don't really need this anymore,
    since array assignment is primarily handled by the core code.
    
    The only way that that code could still be reached is that a GET
    DIAGNOSTICS target variable could be an array element.  But that
    doesn't seem like a particularly essential feature.  I'd added it
    in commit 55caaaeb, but just because it was easy not because
    anyone had actually asked for it.  Hence, revert that patch and
    then remove the now-unreachable stuff.  (If we really had to,
    we could probably reimplement GET DIAGNOSTICS using the new
    assignment machinery; but the cost/benefit ratio looks very poor,
    and it'd likely be a bit slower.)
    
    Note that PLPGSQL_DTYPE_RECFIELD remains.  It's possible that we
    could get rid of that too, but maintaining the existing behaviors
    for RECORD-type variables seems like it might be difficult.  Since
    there's not any functional limitation in those code paths as there
    was in the ARRAYELEM code, I've not pursued the idea.
    
    Discussion: https://postgr.es/m/4165684.1607707277@sss.pgh.pa.us
    1788828d
plpgsql.out 171 KB