mirror of
https://github.com/postgres/postgres.git
synced 2025-10-21 02:52:47 +03:00
tableam: Provide helper functions for relation sizing.
Most block-based table AMs will need the exact same implementation of the relation_size callback as the heap, and if they use a standard page layout, they will likely need an implementation of the relation_estimate_size callback that is very similar to that of the heap. Rearrange to facilitate code reuse. Patch by me, reviewed by Michael Paquier, Daniel Gustafsson, and Álvaro Herrera. Discussion: http://postgr.es/m/CA+TgmoZ6DBPnP1E-vRpQZUJQijJFD54F+SR_pxGiAAS-MyrigA@mail.gmail.com
This commit is contained in:
@@ -1727,6 +1727,20 @@ extern void table_block_parallelscan_startblock_init(Relation rel,
|
||||
ParallelBlockTableScanDesc pbscan);
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Helper functions to implement relation sizing for block oriented AMs.
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
extern uint64 table_block_relation_size(Relation rel, ForkNumber forkNumber);
|
||||
extern void table_block_relation_estimate_size(Relation rel,
|
||||
int32 *attr_widths,
|
||||
BlockNumber *pages,
|
||||
double *tuples,
|
||||
double *allvisfrac,
|
||||
Size overhead_bytes_per_tuple,
|
||||
Size usable_bytes_per_page);
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Functions in tableamapi.c
|
||||
* ----------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user