12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /*
- * AM-callable functions for BRIN indexes
- *
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- * IDENTIFICATION
- * src/include/access/brin.h
- */
- #ifndef BRIN_H
- #define BRIN_H
- #include "nodes/execnodes.h"
- #include "utils/relcache.h"
- /*
- * Storage type for BRIN's reloptions
- */
- typedef struct BrinOptions
- {
- int32 vl_len_; /* varlena header (do not touch directly!) */
- BlockNumber pagesPerRange;
- bool autosummarize;
- } BrinOptions;
- /*
- * BrinStatsData represents stats data for planner use
- */
- typedef struct BrinStatsData
- {
- BlockNumber pagesPerRange;
- BlockNumber revmapNumPages;
- } BrinStatsData;
- #define BRIN_DEFAULT_PAGES_PER_RANGE 128
- #define BrinGetPagesPerRange(relation) \
- (AssertMacro(relation->rd_rel->relkind == RELKIND_INDEX && \
- relation->rd_rel->relam == BRIN_AM_OID), \
- (relation)->rd_options ? \
- ((BrinOptions *) (relation)->rd_options)->pagesPerRange : \
- BRIN_DEFAULT_PAGES_PER_RANGE)
- #define BrinGetAutoSummarize(relation) \
- (AssertMacro(relation->rd_rel->relkind == RELKIND_INDEX && \
- relation->rd_rel->relam == BRIN_AM_OID), \
- (relation)->rd_options ? \
- ((BrinOptions *) (relation)->rd_options)->autosummarize : \
- false)
- extern void brinGetStats(Relation index, BrinStatsData *stats);
- #endif /* BRIN_H */
|