diff options
Diffstat (limited to 'contrib/bloom')
| -rw-r--r-- | contrib/bloom/bloom.h | 3 | ||||
| -rw-r--r-- | contrib/bloom/blutils.c | 1 | ||||
| -rw-r--r-- | contrib/bloom/blvalidate.c | 5 |
3 files changed, 8 insertions, 1 deletions
diff --git a/contrib/bloom/bloom.h b/contrib/bloom/bloom.h index d8fb36831f8..23aa7ac4416 100644 --- a/contrib/bloom/bloom.h +++ b/contrib/bloom/bloom.h @@ -22,7 +22,8 @@ /* Support procedures numbers */ #define BLOOM_HASH_PROC 1 -#define BLOOM_NPROC 1 +#define BLOOM_OPTIONS_PROC 2 +#define BLOOM_NPROC 2 /* Scan strategies */ #define BLOOM_EQUAL_STRATEGY 1 diff --git a/contrib/bloom/blutils.c b/contrib/bloom/blutils.c index 0104d02f675..d3bf8665df1 100644 --- a/contrib/bloom/blutils.c +++ b/contrib/bloom/blutils.c @@ -109,6 +109,7 @@ blhandler(PG_FUNCTION_ARGS) amroutine->amstrategies = BLOOM_NSTRATEGIES; amroutine->amsupport = BLOOM_NPROC; + amroutine->amoptsprocnum = BLOOM_OPTIONS_PROC; amroutine->amcanorder = false; amroutine->amcanorderbyop = false; amroutine->amcanbackward = false; diff --git a/contrib/bloom/blvalidate.c b/contrib/bloom/blvalidate.c index 12773fcf5d5..3c05e5b01c9 100644 --- a/contrib/bloom/blvalidate.c +++ b/contrib/bloom/blvalidate.c @@ -108,6 +108,9 @@ blvalidate(Oid opclassoid) ok = check_amproc_signature(procform->amproc, INT4OID, false, 1, 1, opckeytype); break; + case BLOOM_OPTIONS_PROC: + ok = check_amoptsproc_signature(procform->amproc); + break; default: ereport(INFO, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), @@ -204,6 +207,8 @@ blvalidate(Oid opclassoid) if (opclassgroup && (opclassgroup->functionset & (((uint64) 1) << i)) != 0) continue; /* got it */ + if (i == BLOOM_OPTIONS_PROC) + continue; /* optional method */ ereport(INFO, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), errmsg("bloom opclass %s is missing support function %d", |
