From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Reject cases where a query in WITH rewrites to just NOTIFY. |
Date: | 2021-07-09 15:02:54 |
Message-ID: | E1m1s1m-00086i-05@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/a9da1934e971b38ab360ce80a352fbfc4d2d986b
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(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2021-07-09 16:39:20 | pgsql: Update configure's probe for libldap to work with OpenLDAP 2.5. |
Previous Message | David Rowley | 2021-07-09 06:56:37 | pgsql: Teach pg_size_pretty and pg_size_bytes about petabytes |