Thread: Why vacuum_index_cleanup is needed for TOAST relations?

Why vacuum_index_cleanup is needed for TOAST relations?

From
Nikolay Shaplov
Date:
I am importing recent changes into my reloption patch and came to a question, 
I did not find an answer...

vacuum_index_cleanup option exists for both heap and toast relations.

As I understand from documentation index cleanup is about is about reporting 
access method that some tuples in table that were indexed are dead, and should 
be cleaned.

And as far as I get, we do not index any TOAST tuples directly. They are 
obtained by getting relation tuple, and then deTOAST it.

So I do not understand why do we need vacuum_index_cleanup for TOAST tables. 
May be we should remove it from there??

Or if I am wrong, can you explain where it is needed?


-- 
Software Developer: https://www.upwork.com/freelancers/~014a87e140ff02c0da
Body-oriented Therapist: https://vk.com/nataraj_rebalancing  (Russian)



Re: Why vacuum_index_cleanup is needed for TOAST relations?

From
Tomas Vondra
Date:
On Fri, Jul 05, 2019 at 03:28:26PM +0300, Nikolay Shaplov wrote:
>I am importing recent changes into my reloption patch and came to a question,
>I did not find an answer...
>
>vacuum_index_cleanup option exists for both heap and toast relations.
>
>As I understand from documentation index cleanup is about is about reporting
>access method that some tuples in table that were indexed are dead, and should
>be cleaned.
>
>And as far as I get, we do not index any TOAST tuples directly. They are
>obtained by getting relation tuple, and then deTOAST it.
>
>So I do not understand why do we need vacuum_index_cleanup for TOAST tables.
>May be we should remove it from there??
>
>Or if I am wrong, can you explain where it is needed?
>

I'm not sure I understand your question / suggestion correctly, but
each TOAST table certainly has an index on (chunk_id, chunk_seq) - in
fact it's a unique index backing a primary key.

It's not clear to me what you mean by "index any TOAST tuples directly"
or "getting relation tuple", perhaps you could explain.

IMHO it's correct to have vacuum_index_cleanup even for TOAST tables.


regards

-- 
Tomas Vondra                  http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services