[PATCH] Finally split StdRdOptions into HeapOptions and ToastOptions - Mailing list pgsql-hackers

From Nikolay Shaplov
Subject [PATCH] Finally split StdRdOptions into HeapOptions and ToastOptions
Date
Msg-id 5578311.AeZzQnSgRP@x200m
Whole thread Raw
Responses Re: [PATCH] Finally split StdRdOptions into HeapOptions andToastOptions
List pgsql-hackers
In the thread 
https://www.postgresql.org/message-id/2620882.s52SJui4ql@x200m
I've suggested to split one big StdRdOption that is used for options storage 
into into Options structures individual for each relkind and each relam

That patch have been split into smaller parts, most of them were already 
commit:
https://commitfest.postgresql.org/25/2294/ - Remove StdRdOptions from AM
https://commitfest.postgresql.org/25/2297/ - Do not use StdRdOption for 
partitioned tables
https://commitfest.postgresql.org/25/2295/ - Some useful Asserts for view-
related macroses.

And here goes the last part of StrRdOptions removal patch, where StdRdOptions 
is replaced with HeapOptions and ToastOptions.

What did I do here.

- Added HeapOptions and ToastOptions structues
- Moved options building tab for autovacuum into AUTOVACUUM_RELOPTIONS macro, 
so it can be used in relopt_parse_elt tab both for heap and toast
- Changed everywhere in the code, where old heap_reloptions is used, to use 
new heap_reloptions or toast_reloptions
- Changed heap & toast option fetching macros to use HeapOptions and 
ToastOptions
- Added Asserts to heap and toast options macros. Now we finally can do it.

What I did not do

- I've split fillfactor related macros into heap and toast like 
RelationGetFillFactor will become HeapGetFillFactor and ToastGetFillFactor. I 
have to do it, because now they handle different structure.
but there are heap only option macros like RelationGetParallelWorkers that 
should be better called HeapGetParallelWorkers, as it is heap related. But I 
did not change the name, as somebody from core team (I think it was Alvaro, it 
was a while ago) asked me not to change macros names unless in is inavoidable. 
So I kept the names, though I still think that naming them with Heap prefix 
will make code more clear.

- vacuum_index_cleanup and vacuum_truncate options were added recently. They 
were added into StdRdOptions. I think their place is inside AutoVacOpts not in 
StdRdOptions, but did not dare to change it. If you see it the same way as I 
see, please let me know, I will move it to a proper place.

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

pgsql-hackers by date:

Previous
From: Julien Rouhaud
Date:
Subject: Online checksums verification in the backend
Next
From: Andrew Gierth
Date:
Subject: Re: Frontend/Backend Protocol: SSL / GSS Protocol Negotiation Problem