Re: Fail Fast In CTAS/CMV If Relation Already Exists To Avoid Unnecessary Rewrite, Planning Costs
Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
From: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: "Hou, Zhijie" <houzj.fnst@cn.fujitsu.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2020-12-22T09:42:15Z
Lists: pgsql-hackers
Attachments
- v5-0001-Fail-Fast-In-CTAS-CMV-If-Relation-Already-Exists.patch (application/x-patch) patch v5-0001
On Tue, Dec 22, 2020 at 2:07 PM Michael Paquier <michael@paquier.xyz> wrote: > I was looking at your patch today, and I actually found the conclusion > to output an empty plan while issuing a NOTICE to be quite intuitive > if the caller uses IF NOT EXISTS with EXPLAIN. Thanks! > Thanks for adding some test cases! Some of them were exact > duplicates, so it is possible to reduce the number of queries without > impacting the coverage. I have also chosen a query that forces an > error within the planner. > Please see the attached. IF NOT EXISTS implies that CTAS or CREATE > MATVIEW will never ERROR if the relation already exists, with or > without EXPLAIN, EXECUTE or WITH NO DATA, so that gets us a consistent > behavior across all the patterns. LGTM. > Note: I'd like to think that we could choose a better name for > CheckRelExistenceInCTAS(). I changed it to IsCTASRelCreationAllowed() and attached a v5 patch. Please let me know if this is okay. With Regards, Bharath Rupireddy. EnterpriseDB: http://www.enterprisedb.com
Commits
-
Sanitize IF NOT EXISTS in EXPLAIN for CTAS and matviews
- e665769e6d1e 14.0 landed