]> granicus.if.org Git - postgresql/blob - src/include/access/brin.h
Phase 2 of pgindent updates.
[postgresql] / src / include / access / brin.h
1 /*
2  * AM-callable functions for BRIN indexes
3  *
4  * Portions Copyright (c) 1996-2017, 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 "fmgr.h"
14 #include "nodes/execnodes.h"
15 #include "utils/relcache.h"
16
17
18 /*
19  * Storage type for BRIN's reloptions
20  */
21 typedef struct BrinOptions
22 {
23         int32           vl_len_;                /* varlena header (do not touch directly!) */
24         BlockNumber pagesPerRange;
25         bool            autosummarize;
26 } BrinOptions;
27
28
29 /*
30  * BrinStatsData represents stats data for planner use
31  */
32 typedef struct BrinStatsData
33 {
34         BlockNumber pagesPerRange;
35         BlockNumber revmapNumPages;
36 } BrinStatsData;
37
38
39 #define BRIN_DEFAULT_PAGES_PER_RANGE    128
40 #define BrinGetPagesPerRange(relation) \
41         ((relation)->rd_options ? \
42          ((BrinOptions *) (relation)->rd_options)->pagesPerRange : \
43           BRIN_DEFAULT_PAGES_PER_RANGE)
44 #define BrinGetAutoSummarize(relation) \
45         ((relation)->rd_options ? \
46          ((BrinOptions *) (relation)->rd_options)->autosummarize : \
47           false)
48
49
50 extern void brinGetStats(Relation index, BrinStatsData *stats);
51
52 #endif                                                  /* BRIN_H */