pgsql: Reject cases where a query in WITH rewrites to just NOTIFY. - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Reject cases where a query in WITH rewrites to just NOTIFY.
Date
Msg-id E1m1s1m-00086s-1k@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Reject cases where a query in WITH rewrites to just NOTIFY.

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

Branch
------
REL_11_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/158594f9949ad3607b8589a20a8bec330c69be40

Modified Files
--------------
src/backend/rewrite/rewriteHandler.c | 20 +++++++++++++++++---
src/test/regress/expected/with.out   | 25 +++++++++++++++++++++++++
src/test/regress/sql/with.sql        | 21 +++++++++++++++++++++
3 files changed, 63 insertions(+), 3 deletions(-)


pgsql-committers by date:

Previous
From: David Rowley
Date:
Subject: pgsql: Teach pg_size_pretty and pg_size_bytes about petabytes
Next
From: Tom Lane
Date:
Subject: pgsql: Update configure's probe for libldap to work with OpenLDAP 2.5.