On Thu, Dec 17, 2020 at 03:06:59PM +0530, Bharath Rupireddy wrote: > The behavior of the ctas/cmv, in case the relation already exists is as > shown in [1]. The things that have been changed with the patch are: 1) In > any case we do not rewrite or plan the select part if the relation already > exists 2) For explain ctas/cmv (without analyze), now the relation > existence is checked early and the error is thrown as highlighted in [1]. > > With patch, there is no behavioral change(from that of master branch) in > explain analyze ctas/cmv with if-not-exists i.e. error is thrown not the > notice. > > Thoughts?
HEAD is already a mixed bad of behaviors, and the set of results you are presenting here is giving a similar impression. It brings in some sanity by just ignoring the effects of the IF NOT EXISTS clause all the time still that's not consistent with the queries not using EXPLAIN. Hmm. Looking for similar behaviors, I can see one case in select_into.sql where we just never execute the plan when using WITH NO DATA but still show the plan, meaning that the query gets planned but it just gets marked as "(never executed)" if attempting to use ANALYZE. There may be use cases for that as the user directly asked directly for an EXPLAIN. Note: the patch needs tests for all the patterns you would like to stress. This way it is easier to follow the patterns that are changing with your patch and compare them with the HEAD behavior (like looking at the diffs with the tests of the patch, but without the diffs in src/backend/). -- Michael
signature.asc
Description: PGP signature