pgsql: Reject cases where a query in WITH rewrites to just NOTIFY.
От | Tom Lane |
---|---|
Тема | pgsql: Reject cases where a query in WITH rewrites to just NOTIFY. |
Дата | |
Msg-id | E1m1s1m-00086j-0T@gemulon.postgresql.org обсуждение исходный текст |
Список | 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_14_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/39b6e85f135f7a1dcf43c0551d7d10e8c57b7fce 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 по дате отправления: