summaryrefslogtreecommitdiff
path: root/contrib/pg_trgm/trgm.h
diff options
context:
space:
mode:
authorTeodor Sigaev2018-03-21 11:57:42 +0000
committerTeodor Sigaev2018-03-21 11:57:42 +0000
commitbe8a7a6866276b228b4ffaa3003e1dc2dd1d140a (patch)
tree6ff95878418ee689723728dca29de6de337ef200 /contrib/pg_trgm/trgm.h
parentf20b3285340cc0576ab8445f483700983cf2ba9f (diff)
Add strict_word_similarity to pg_trgm module
strict_word_similarity is similar to existing word_similarity function but it takes into account word boundaries to compute similarity. Author: Alexander Korotkov Review by: David Steele, Liudmila Mantrova, me Discussion: https://www.postgresql.org/message-id/flat/CY4PR17MB13207ED8310F847CF117EED0D85A0@CY4PR17MB1320.namprd17.prod.outlook.com
Diffstat (limited to 'contrib/pg_trgm/trgm.h')
-rw-r--r--contrib/pg_trgm/trgm.h21
1 files changed, 13 insertions, 8 deletions
diff --git a/contrib/pg_trgm/trgm.h b/contrib/pg_trgm/trgm.h
index 45df91875ab..f0ab50dd05c 100644
--- a/contrib/pg_trgm/trgm.h
+++ b/contrib/pg_trgm/trgm.h
@@ -6,6 +6,7 @@
#include "access/gist.h"
#include "access/itup.h"
+#include "access/stratnum.h"
#include "storage/bufpage.h"
/*
@@ -26,14 +27,16 @@
#define DIVUNION
/* operator strategy numbers */
-#define SimilarityStrategyNumber 1
-#define DistanceStrategyNumber 2
-#define LikeStrategyNumber 3
-#define ILikeStrategyNumber 4
-#define RegExpStrategyNumber 5
-#define RegExpICaseStrategyNumber 6
-#define WordSimilarityStrategyNumber 7
-#define WordDistanceStrategyNumber 8
+#define SimilarityStrategyNumber 1
+#define DistanceStrategyNumber 2
+#define LikeStrategyNumber 3
+#define ILikeStrategyNumber 4
+#define RegExpStrategyNumber 5
+#define RegExpICaseStrategyNumber 6
+#define WordSimilarityStrategyNumber 7
+#define WordDistanceStrategyNumber 8
+#define StrictWordSimilarityStrategyNumber 9
+#define StrictWordDistanceStrategyNumber 10
typedef char trgm[3];
@@ -120,7 +123,9 @@ typedef struct TrgmPackedGraph TrgmPackedGraph;
extern double similarity_threshold;
extern double word_similarity_threshold;
+extern double strict_word_similarity_threshold;
+extern double index_strategy_get_limit(StrategyNumber strategy);
extern uint32 trgm2int(trgm *ptr);
extern void compact_trigram(trgm *tptr, char *str, int bytelen);
extern TRGM *generate_trgm(char *str, int slen);