PostgreSQL Source Code git master
brin.h
Go to the documentation of this file.
1/*
2 * AM-callable functions for BRIN indexes
3 *
4 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
5 * Portions Copyright (c) 1994, Regents of the University of California
6 *
7 * IDENTIFICATION
8 * src/include/access/brin.h
9 */
10#ifndef BRIN_H
11#define BRIN_H
12
13#include "storage/block.h"
14#include "storage/dsm.h"
15#include "storage/shm_toc.h"
16#include "utils/relcache.h"
17
18
19/*
20 * Storage type for BRIN's reloptions
21 */
22typedef struct BrinOptions
23{
24 int32 vl_len_; /* varlena header (do not touch directly!) */
28
29
30/*
31 * BrinStatsData represents stats data for planner use
32 */
33typedef struct BrinStatsData
34{
38
39
40#define BRIN_DEFAULT_PAGES_PER_RANGE 128
41#define BrinGetPagesPerRange(relation) \
42 (AssertMacro(relation->rd_rel->relkind == RELKIND_INDEX && \
43 relation->rd_rel->relam == BRIN_AM_OID), \
44 (relation)->rd_options ? \
45 ((BrinOptions *) (relation)->rd_options)->pagesPerRange : \
46 BRIN_DEFAULT_PAGES_PER_RANGE)
47#define BrinGetAutoSummarize(relation) \
48 (AssertMacro(relation->rd_rel->relkind == RELKIND_INDEX && \
49 relation->rd_rel->relam == BRIN_AM_OID), \
50 (relation)->rd_options ? \
51 ((BrinOptions *) (relation)->rd_options)->autosummarize : \
52 false)
53
54
55extern void brinGetStats(Relation index, BrinStatsData *stats);
56
57extern void _brin_parallel_build_main(dsm_segment *seg, shm_toc *toc);
58
59#endif /* BRIN_H */
uint32 BlockNumber
Definition: block.h:31
struct BrinOptions BrinOptions
struct BrinStatsData BrinStatsData
void brinGetStats(Relation index, BrinStatsData *stats)
Definition: brin.c:1648
void _brin_parallel_build_main(dsm_segment *seg, shm_toc *toc)
Definition: brin.c:2877
int32_t int32
Definition: c.h:539
bool autosummarize
Definition: brin.h:26
BlockNumber pagesPerRange
Definition: brin.h:25
int32 vl_len_
Definition: brin.h:24
BlockNumber revmapNumPages
Definition: brin.h:36
BlockNumber pagesPerRange
Definition: brin.h:35
Definition: type.h:96