On 1/15/22 19:35, Tomas Vondra wrote:
> On 1/15/22 06:11, Justin Pryzby wrote:
>> On Mon, Dec 13, 2021 at 09:40:09PM +0100, Tomas Vondra wrote:
>>> 1) If the table is a separate relation (not part of an inheritance
>>> tree), this should make no difference. -> OK
>>>
>>> 2) If the table is using "old" inheritance, this reverts back to
>>> pre-regression behavior. So people will keep using the old statistics
>>> until the ANALYZE, and we need to tell them to ANALYZE or something.
>>>
>>> 3) If the table is using partitioning, it's guaranteed to be empty and
>>> there are no stats at all. Again, we should tell people to run ANALYZE.
>>
>> I think these can be mentioned in the commit message, which can end up
>> in the
>> minor release notes as a recommendation to rerun ANALYZE.
>>
>
> Good point. I pushed the 0002 part and added a short paragraph
> suggesting ANALYZE might be necessary. I did not go into details about
> the individual cases, because that'd be too much for a commit message.
>
>> Thanks for pushing 0001.
>>
>
> Thanks for posting the patches!
>
> I've pushed the second part - attached are the two remaining parts. I'll
> wait a bit before pushing the rebased 0001 (which goes into master
> branch only). Not sure about 0002 - I'm not convinced the refactored ACL
> checks are an improvement, but I'll think about it.
>
BTW when backpatching the first part, I had to decide what to do about
tests. The 10 & 11 branches did not have the check_estimated_rows()
function. I considered removing the tests, reworking the tests not to
need the function, or adding the function. Ultimately I added the
function, which seemed like the best option.
regards
--
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company