aboutsummaryrefslogtreecommitdiff
path: root/contrib/tsearch2/ts_cfg.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/tsearch2/ts_cfg.h')
-rw-r--r--contrib/tsearch2/ts_cfg.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/contrib/tsearch2/ts_cfg.h b/contrib/tsearch2/ts_cfg.h
new file mode 100644
index 00000000000..01006c1f93c
--- /dev/null
+++ b/contrib/tsearch2/ts_cfg.h
@@ -0,0 +1,68 @@
+#ifndef __TS_CFG_H__
+#define __TS_CFG_H__
+#include "postgres.h"
+#include "query.h"
+
+typedef struct {
+ int len;
+ Datum *dict_id;
+} ListDictionary;
+
+typedef struct {
+ Oid id;
+ Oid prs_id;
+ int len;
+ ListDictionary *map;
+} TSCfgInfo;
+
+Oid name2id_cfg(text *name);
+TSCfgInfo * findcfg(Oid id);
+void init_cfg(Oid id, TSCfgInfo *cfg);
+void reset_cfg(void);
+
+typedef struct {
+ uint16 len;
+ union {
+ uint16 pos;
+ uint16 *apos;
+ } pos;
+ char *word;
+ uint32 alen;
+} WORD;
+
+typedef struct {
+ WORD *words;
+ int4 lenwords;
+ int4 curwords;
+ int4 pos;
+} PRSTEXT;
+
+typedef struct {
+ uint16 len;
+ uint8 selected:1,
+ in:1,
+ skip:1,
+ replace:1,
+ repeated:1;
+ uint8 type;
+ char *word;
+ ITEM *item;
+} HLWORD;
+
+typedef struct {
+ HLWORD *words;
+ int4 lenwords;
+ int4 curwords;
+ char *startsel;
+ char *stopsel;
+ int2 startsellen;
+ int2 stopsellen;
+} HLPRSTEXT;
+
+void hlparsetext(TSCfgInfo *cfg, HLPRSTEXT * prs, QUERYTYPE *query, char *buf, int4 buflen);
+text* genhl(HLPRSTEXT * prs);
+
+void parsetext_v2(TSCfgInfo *cfg, PRSTEXT * prs, char *buf, int4 buflen);
+int get_currcfg(void);
+
+#endif