Repair memory leaks in plpython.
[pgsql.git] / src / include / tsearch / ts_cache.h
blobed7527bb954dbb858e2f235bc9ac9d78ce287c14
1 /*-------------------------------------------------------------------------
3 * ts_cache.h
4 * Tsearch related object caches.
6 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
9 * src/include/tsearch/ts_cache.h
11 *-------------------------------------------------------------------------
13 #ifndef TS_CACHE_H
14 #define TS_CACHE_H
16 #include "fmgr.h"
20 * All TS*CacheEntry structs must share this common header
21 * (see InvalidateTSCacheCallBack)
23 typedef struct TSAnyCacheEntry
25 Oid objId;
26 bool isvalid;
27 } TSAnyCacheEntry;
30 typedef struct TSParserCacheEntry
32 /* prsId is the hash lookup key and MUST BE FIRST */
33 Oid prsId; /* OID of the parser */
34 bool isvalid;
36 Oid startOid;
37 Oid tokenOid;
38 Oid endOid;
39 Oid headlineOid;
40 Oid lextypeOid;
43 * Pre-set-up fmgr call of most needed parser's methods
45 FmgrInfo prsstart;
46 FmgrInfo prstoken;
47 FmgrInfo prsend;
48 FmgrInfo prsheadline;
49 } TSParserCacheEntry;
51 typedef struct TSDictionaryCacheEntry
53 /* dictId is the hash lookup key and MUST BE FIRST */
54 Oid dictId;
55 bool isvalid;
57 /* most frequent fmgr call */
58 Oid lexizeOid;
59 FmgrInfo lexize;
61 MemoryContext dictCtx; /* memory context to store private data */
62 void *dictData;
63 } TSDictionaryCacheEntry;
65 typedef struct
67 int len;
68 Oid *dictIds;
69 } ListDictionary;
71 typedef struct
73 /* cfgId is the hash lookup key and MUST BE FIRST */
74 Oid cfgId;
75 bool isvalid;
77 Oid prsId;
79 int lenmap;
80 ListDictionary *map;
81 } TSConfigCacheEntry;
85 * GUC variable for current configuration
87 extern PGDLLIMPORT char *TSCurrentConfig;
90 extern TSParserCacheEntry *lookup_ts_parser_cache(Oid prsId);
91 extern TSDictionaryCacheEntry *lookup_ts_dictionary_cache(Oid dictId);
92 extern TSConfigCacheEntry *lookup_ts_config_cache(Oid cfgId);
94 extern Oid getTSCurrentConfig(bool emitError);
96 #endif /* TS_CACHE_H */