[COMMITTERS] pgsql: Fix order of operations in CREATE OR REPLACE VIEW. - Mailing list pgsql-committers

From Dean Rasheed
Subject [COMMITTERS] pgsql: Fix order of operations in CREATE OR REPLACE VIEW.
Date
Msg-id E1cJkQg-00007S-Uj@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix order of operations in CREATE OR REPLACE VIEW.

When CREATE OR REPLACE VIEW acts on an existing view, don't update the
view options until after the view query has been updated.

This is necessary in the case where CREATE OR REPLACE VIEW is used on
an existing view that is not updatable, and the new view is updatable
and specifies the WITH CHECK OPTION. In this case, attempting to apply
the new options to the view before updating its query fails, because
the options are applied using the ALTER TABLE infrastructure which
checks that WITH CHECK OPTION is only applied to an updatable view.

If new columns are being added to the view, that is also done using
the ALTER TABLE infrastructure, but it is important that that still be
done before updating the view query, because the rules system checks
that the query columns match those on the view relation. Added a
comment to explain that, in case someone is tempted to move that to
where the view options are now being set.

Back-patch to 9.4 where WITH CHECK OPTION was added.

Report: https://postgr.es/m/CAEZATCUp%3Dz%3Ds4SzZjr14bfct_bdJNwMPi-gFi3Xc5k1ntbsAgQ%40mail.gmail.com

Branch
------
REL9_6_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/a46ee6b30ae9cba3ece5b4b5912969c74969f274

Modified Files
--------------
src/backend/commands/view.c                   | 78 +++++++++++++++++----------
src/test/regress/expected/updatable_views.out | 13 +++++
src/test/regress/sql/updatable_views.sql      | 14 +++++
3 files changed, 76 insertions(+), 29 deletions(-)


pgsql-committers by date:

Previous
From: Robert Haas
Date:
Subject: [COMMITTERS] pgsql: Convert elog() to ereport() and do some wordsmithing.
Next
From: Dean Rasheed
Date:
Subject: Re: [COMMITTERS] pgsql: Fix base backup rate limiting in presence ofslow i/o