Re: neqjoinsel versus "refresh materialized view concurrently"
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Thomas Munro <thomas.munro@enterprisedb.com>
Cc: Jeff Janes <jeff.janes@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2018-03-13T23:29:38Z
Lists: pgsql-hackers
Thomas Munro <thomas.munro@enterprisedb.com> writes: > There is a fundamental and complicated estimation problem lurking here > of course and I'm not sure what to think about that yet. Maybe there > is a very simple fix for this particular problem: Ah, I see you thought of the same hack I did. I think this may actually be a good fix, and here's the reason: this plan is in fact being driven entirely off planner default estimates, because we don't have any estimation code that knows what to do with "wholerowvar *= wholerowvar". I'm suspicious that we could drop the preceding ANALYZE as being a waste of cycles, except maybe it's finding out the number of rows for us. In any case, LIMIT 1 is only a good idea to the extent that the planner knows what it's doing, and this is an example where it demonstrably doesn't and won't any time soon. regards, tom lane
Commits
-
Fix performance hazard in REFRESH MATERIALIZED VIEW CONCURRENTLY.
- 1568156d8fe1 10.4 landed
- 6fbd5cce22eb 11.0 landed
- ebcf34d4628e 9.6.9 landed
- c553e4a50743 9.5.13 landed
- b6ba94ec45bb 9.4.18 landed
-
Fix neqjoinsel's behavior for semi/anti join cases.
- 7ca25b7de6ae 11.0 cited