• Tom Lane's avatar
    Reject cases where a query in WITH rewrites to just NOTIFY. · 39b6e85f
    Tom Lane authored
    Since the executor can't cope with a utility statement appearing
    as a node of a plan tree, we can't support cases where a rewrite
    rule inserts a NOTIFY into an INSERT/UPDATE/DELETE command appearing
    in a WITH clause of a larger query.  (One can imagine ways around
    that, but it'd be a new feature not a bug fix, and so far there's
    been no demand for it.)  RewriteQuery checked for this, but it
    missed the case where the DML command rewrites to *only* a NOTIFY.
    That'd lead to crashes later on in planning.  Add the missed check,
    and improve the level of testing of this area.
    
    Per bug #17094 from Yaoguang Chen.  It's been busted since WITH
    was introduced, so back-patch to all supported branches.
    
    Discussion: https://postgr.es/m/17094-bf15dff55eaf2e28@postgresql.org
    39b6e85f
with.out 73.5 KB