Re: PATCH: Attempt to make dbsize a bit more consistent - Mailing list pgsql-hackers

From gkokolatos@pm.me
Subject Re: PATCH: Attempt to make dbsize a bit more consistent
Date
Msg-id KF1GPv2HZDuSVQwVqGtDDGeQDxoeQu4o9Rri-DTFRuLpXGvJ1KynI0iW2eNgsKh6xy-Q37K6ID8VL2hc4HqkG9D1PQ7G1-9fSWxMqrrW_EM=@pm.me
Whole thread Raw
In response to Re: PATCH: Attempt to make dbsize a bit more consistent  (John Naylor <john.naylor@2ndquadrant.com>)
List pgsql-hackers




‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, 8 September 2020 16:49, John Naylor <john.naylor@2ndquadrant.com> wrote:

> On Thu, Aug 27, 2020 at 9:39 AM gkokolatos@pm.me wrote:
>
> > Hi all,
> > this minor patch is attempting to force the use of the tableam api in dbsize where ever it is required.
> > Apparently something similar was introduced for toast relations only. Intuitively it seems that the distinction
betweena table and a toast table is not needed. 
>
> I suspect the reason is found in the comment for table_block_relation_size():
>
> -   If a table AM uses the various relation forks as the sole place where data
> -   is stored, and if it uses them in the expected manner (e.g. the actual data
> -   is in the main fork rather than some other), it can use this implementation
> -   of the relation_size callback rather than implementing its own.


Thank you for your answer and interest at the patch.

I agree with the comment above. However I do not see why it is relevant here. When issuing:

SELECT pg_table_size('foo'::regclass);

I should not have to care about the on disk layout of the relation 'foo'.
Without this patch, one will get a correct result only when 'foo' is a heap table.
For custom layouts the result can potentially be wrong.



>
>     --
>     John Naylor https://www.2ndQuadrant.com/
>     PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>





pgsql-hackers by date:

Previous
From: Amit Kapila
Date:
Subject: Re: Inconsistency in determining the timestamp of the db statfile.
Next
From: gkokolatos@pm.me
Date:
Subject: Re: PATCH: Attempt to make dbsize a bit more consistent