summaryrefslogtreecommitdiff
path: root/contrib/bloom
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bloom')
-rw-r--r--contrib/bloom/bloom.h3
-rw-r--r--contrib/bloom/blutils.c1
-rw-r--r--contrib/bloom/blvalidate.c5
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",