diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2008-05-16 16:31:02 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2008-05-16 16:31:02 +0000 |
commit | e6dbcb72fafa4031c73cc914e829a6dec96ab6b6 (patch) | |
tree | 6a7a3c22d0a127a27aed46c0f8d42b8455476d56 /src/backend/access/gin/ginutil.c | |
parent | e1bdd07c3c33d4004180506f1493efcbbbc02b4c (diff) | |
download | postgresql-e6dbcb72fafa4031c73cc914e829a6dec96ab6b6.tar.gz postgresql-e6dbcb72fafa4031c73cc914e829a6dec96ab6b6.zip |
Extend GIN to support partial-match searches, and extend tsquery to support
prefix matching using this facility.
Teodor Sigaev and Oleg Bartunov
Diffstat (limited to 'src/backend/access/gin/ginutil.c')
-rw-r--r-- | src/backend/access/gin/ginutil.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/backend/access/gin/ginutil.c b/src/backend/access/gin/ginutil.c index 7da7689f826..36105e20d2d 100644 --- a/src/backend/access/gin/ginutil.c +++ b/src/backend/access/gin/ginutil.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gin/ginutil.c,v 1.14 2008/05/12 00:00:44 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/access/gin/ginutil.c,v 1.15 2008/05/16 16:31:01 tgl Exp $ *------------------------------------------------------------------------- */ @@ -41,6 +41,22 @@ initGinState(GinState *state, Relation index) fmgr_info_copy(&(state->consistentFn), index_getprocinfo(index, 1, GIN_CONSISTENT_PROC), CurrentMemoryContext); + + /* + * Check opclass capability to do partial match. + */ + if ( index_getprocid(index, 1, GIN_COMPARE_PARTIAL_PROC) != InvalidOid ) + { + fmgr_info_copy(&(state->comparePartialFn), + index_getprocinfo(index, 1, GIN_COMPARE_PARTIAL_PROC), + CurrentMemoryContext); + + state->canPartialMatch = true; + } + else + { + state->canPartialMatch = false; + } } /* |