Re: Row estimates for empty tables

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Christophe Pettus <xof(at)thebuild(dot)com>, David Rowley <dgrowleyml(at)gmail(dot)com>
Subject: Re: Row estimates for empty tables
Date: 2020-08-24 19:43:49
Message-ID: CAFj8pRAH+WzDsGeNu9noO+fNX5Q8GC5Xw8JtNfAE2bXAmqfipw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

ne 23. 8. 2020 v 23:08 odesílatel Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> napsal:

> Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> writes:
> > I am sending a patch that is years used in GoodData.
>
> I'm quite unexcited about that. I'd be the first to agree that the
> ten-pages estimate is a hack, but it's not an improvement to ask users
> to think of a better value ... especially not as a one-size-fits-
> all-relations GUC setting.
>

This patch is just a workaround that works well 10 years (but for one
special use case) - nothing more. Without this patch that application
cannot work ever.

> I did have an idea that I think is better than my previous one:
> rather than lying about the value of relpages, let's represent the
> case where we don't know the tuple density by setting reltuples = -1
> initially. This leads to a patch that's a good bit more invasive than
> the quick-hack solution, but I think it's a lot cleaner on the whole.
>

> A possible objection is that this changes the FDW API slightly, as
> GetForeignRelSize callbacks now need to deal with rel->tuples possibly
> being -1. We could avoid an API break if we made plancat.c clamp
> that value to zero; but then FDWs still couldn't tell the difference
> between the "empty" and "never analyzed" cases, and I think this is
> just as much of an issue for them as for the core code.
>

> I'll add this to the upcoming CF.
>

I'll check it

Regards

Pavel

>
> regards, tom lane
>
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Dirk Krautschick 2020-08-24 21:17:36 Most effective and fast way to load few Tbyte of data from flat files into postgresql
Previous Message Tim Clarke 2020-08-24 18:08:42 Re: Migration of DB2 java stored procedures to PostgreSQL

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2020-08-24 20:26:40 Re: Hybrid Hash/Nested Loop joins and caching results from subplans
Previous Message Andrey M. Borodin 2020-08-24 17:30:19 Re: recovering from "found xmin ... from before relfrozenxid ..."