• Tomas Vondra's avatar
    Add strict_multi_assignment and too_many_rows plpgsql checks · 167075be
    Tomas Vondra authored
    Until now shadowed_variables was the only plpgsql check supported by
    plpgsql.extra_warnings and plpgsql.extra_errors.  This patch introduces
    two new checks - strict_multi_assignment and too_many_rows.  Unlike
    shadowed_variables, these new checks are enforced at run-time.
    
    strict_multi_assignment checks that commands allowing multi-assignment
    (for example SELECT INTO) have the same number of sources and targets.
    too_many_rows checks that queries with an INTO clause return one row
    exactly.
    
    These checks are aimed at cases that are technically valid and allowed,
    but are often a sign of a bug.  Therefore those checks are expected to
    be enabled primarily in development and testing environments.
    
    Author: Pavel Stehule
    Reviewed-by: Stephen Frost, Tomas Vondra
    Discussion: https://www.postgresql.org/message-id/flat/CAFj8pRA2kKRDKpUNwLY0GeG1OqOp+tLS2yQA1V41gzuSz-hCng@mail.gmail.com
    167075be
plpgsql.sgml 213 KB