From 32bdd062ed87ca43102aaf360c126874af14a036 Mon Sep 17 00:00:00 2001
From: Tomas Vondra <tomas.vondra@postgresql.org>
Date: Mon, 22 Mar 2021 05:10:37 +0100
Subject: [PATCH 5/5] move minmax-multi to contrib

---
 contrib/Makefile                              |   1 +
 contrib/brin_minmax_multi/.gitignore          |   4 +
 contrib/brin_minmax_multi/Makefile            |  23 +
 .../brin_minmax_multi--1.0.sql                | 552 ++++++++++++++++
 .../brin_minmax_multi}/brin_minmax_multi.c    |  63 +-
 .../brin_minmax_multi.control                 |   6 +
 .../expected/brin_multi.out                   |  21 +
 .../brin_minmax_multi}/sql/brin_multi.sql     |  25 +
 src/backend/access/brin/Makefile              |   1 -
 src/include/catalog/pg_amop.dat               | 545 ----------------
 src/include/catalog/pg_amproc.dat             | 597 ------------------
 src/include/catalog/pg_opclass.dat            |  57 --
 src/include/catalog/pg_opfamily.dat           |  28 -
 src/include/catalog/pg_proc.dat               |  85 +--
 src/include/catalog/pg_type.dat               |   6 -
 src/test/regress/expected/psql.out            |  11 +-
 src/test/regress/expected/type_sanity.out     |   7 +-
 src/test/regress/parallel_schedule            |   5 -
 src/test/regress/serial_schedule              |   1 -
 19 files changed, 703 insertions(+), 1335 deletions(-)
 create mode 100644 contrib/brin_minmax_multi/.gitignore
 create mode 100644 contrib/brin_minmax_multi/Makefile
 create mode 100644 contrib/brin_minmax_multi/brin_minmax_multi--1.0.sql
 rename {src/backend/access/brin => contrib/brin_minmax_multi}/brin_minmax_multi.c (96%)
 create mode 100644 contrib/brin_minmax_multi/brin_minmax_multi.control
 rename {src/test/regress => contrib/brin_minmax_multi}/expected/brin_multi.out (97%)
 rename {src/test/regress => contrib/brin_minmax_multi}/sql/brin_multi.sql (97%)

diff --git a/contrib/Makefile b/contrib/Makefile
index f878287429..bd131f8fc3 100644
--- a/contrib/Makefile
+++ b/contrib/Makefile
@@ -13,6 +13,7 @@ SUBDIRS = \
 		btree_gin	\
 		btree_gist	\
 		brin_bloom	\
+		brin_minmax_multi	\
 		citext		\
 		cube		\
 		dblink		\
diff --git a/contrib/brin_minmax_multi/.gitignore b/contrib/brin_minmax_multi/.gitignore
new file mode 100644
index 0000000000..5dcb3ff972
--- /dev/null
+++ b/contrib/brin_minmax_multi/.gitignore
@@ -0,0 +1,4 @@
+# Generated subdirectories
+/log/
+/results/
+/tmp_check/
diff --git a/contrib/brin_minmax_multi/Makefile b/contrib/brin_minmax_multi/Makefile
new file mode 100644
index 0000000000..9ca5112339
--- /dev/null
+++ b/contrib/brin_minmax_multi/Makefile
@@ -0,0 +1,23 @@
+# contrib/brin_minmax_multi/Makefile
+
+MODULE_big = brin_minmax_multi
+OBJS = \
+	$(WIN32RES) \
+	brin_minmax_multi.o
+
+EXTENSION = brin_minmax_multi
+DATA = brin_minmax_multi--1.0.sql
+PGFILEDESC = "brin_minmax_multi - BRIN minmax-multi operator classes"
+
+REGRESS = brin_multi
+
+ifdef USE_PGXS
+PG_CONFIG = pg_config
+PGXS := $(shell $(PG_CONFIG) --pgxs)
+include $(PGXS)
+else
+subdir = contrib/brin_minmax_multi
+top_builddir = ../..
+include $(top_builddir)/src/Makefile.global
+include $(top_srcdir)/contrib/contrib-global.mk
+endif
diff --git a/contrib/brin_minmax_multi/brin_minmax_multi--1.0.sql b/contrib/brin_minmax_multi/brin_minmax_multi--1.0.sql
new file mode 100644
index 0000000000..0e32d38bd9
--- /dev/null
+++ b/contrib/brin_minmax_multi/brin_minmax_multi--1.0.sql
@@ -0,0 +1,552 @@
+/* contrib/brin_minmax_multi/brin_minmax_multi--1.0.sql */
+
+-- complain if script is sourced in psql, rather than via CREATE EXTENSION
+\echo Use "CREATE EXTENSION brin_minmax_multi" to load this file. \quit
+
+CREATE TYPE brin_minmax_multi_summary;
+
+-- BRIN bloom summary data type
+CREATE FUNCTION brin_minmax_multi_summary_in(cstring)
+RETURNS brin_minmax_multi_summary
+AS 'MODULE_PATHNAME'
+LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
+
+CREATE FUNCTION brin_minmax_multi_summary_out(brin_minmax_multi_summary)
+RETURNS cstring
+AS 'MODULE_PATHNAME'
+LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
+
+CREATE FUNCTION brin_minmax_multi_summary_recv(internal)
+RETURNS brin_minmax_multi_summary
+AS 'MODULE_PATHNAME'
+LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
+
+CREATE FUNCTION brin_minmax_multi_summary_send(brin_minmax_multi_summary)
+RETURNS bytea
+AS 'MODULE_PATHNAME'
+LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
+
+CREATE TYPE brin_minmax_multi_summary (
+	INTERNALLENGTH = -1,
+	INPUT = brin_minmax_multi_summary_in,
+	OUTPUT = brin_minmax_multi_summary_out,
+	RECEIVE = brin_minmax_multi_summary_recv,
+	SEND = brin_minmax_multi_summary_send,
+	STORAGE = extended
+);
+
+-- BRIN support procedures
+CREATE FUNCTION brin_minmax_multi_opcinfo(internal)
+RETURNS internal
+AS 'MODULE_PATHNAME'
+LANGUAGE C STRICT IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_add_value(internal, internal, internal, internal)
+RETURNS bool
+AS 'MODULE_PATHNAME'
+LANGUAGE C STRICT IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_consistent(internal, internal, internal, int4)
+RETURNS bool
+AS 'MODULE_PATHNAME'
+LANGUAGE C STRICT IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_union(internal, internal, internal)
+RETURNS bool
+AS 'MODULE_PATHNAME'
+LANGUAGE C STRICT IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_options(internal)
+RETURNS void
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+-- distance functions
+
+CREATE FUNCTION brin_minmax_multi_distance_int2(int2, int2)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_distance_int4(int4, int4)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_distance_int8(int8, int8)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_distance_float4(float4, float4)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_distance_float8(float8, float8)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_distance_numeric(numeric, numeric)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_distance_tid(tid, tid)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_distance_uuid(uuid, uuid)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_distance_date(date, date)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_distance_time(time, time)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_distance_interval(interval, interval)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_distance_timetz(timetz, timetz)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_distance_pg_lsn(pg_lsn, pg_lsn)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_distance_macaddr(macaddr, macaddr)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_distance_macaddr8(macaddr8, macaddr8)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_distance_inet(inet, inet)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE FUNCTION brin_minmax_multi_distance_timestamp(timestamp, timestamp)
+RETURNS float8
+AS 'MODULE_PATHNAME'
+LANGUAGE C IMMUTABLE;
+
+CREATE OPERATOR FAMILY datetime_minmax_multi_ops USING brin;
+
+CREATE OPERATOR CLASS date_minmax_multi_ops
+FOR TYPE date USING brin FAMILY datetime_minmax_multi_ops
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_date(date,date),
+STORAGE         date;
+
+CREATE OPERATOR FAMILY float_minmax_multi_ops USING brin;
+
+CREATE OPERATOR CLASS float4_minmax_multi_ops
+FOR TYPE float4 USING brin FAMILY float_minmax_multi_ops
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_float4(float4,float4),
+STORAGE         float4;
+
+CREATE OPERATOR CLASS float8_minmax_multi_ops
+FOR TYPE float8 USING brin FAMILY float_minmax_multi_ops
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_float8(float8,float8),
+STORAGE         float8;
+
+ALTER OPERATOR FAMILY float_minmax_multi_ops USING brin ADD
+
+    OPERATOR        1       <(float4,float8),
+    OPERATOR        2       <=(float4,float8),
+    OPERATOR        3       =(float4,float8),
+    OPERATOR        4       >=(float4,float8),
+    OPERATOR        5       >(float4,float8),
+
+    OPERATOR        1       <(float8,float4),
+    OPERATOR        2       <=(float8,float4),
+    OPERATOR        3       =(float8,float4),
+    OPERATOR        4       >=(float8,float4),
+    OPERATOR        5       >(float8,float4);
+
+CREATE OPERATOR FAMILY network_minmax_multi_ops USING brin;
+
+CREATE OPERATOR CLASS inet_minmax_multi_ops
+FOR TYPE inet USING brin FAMILY network_minmax_multi_ops
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_inet(inet,inet),
+STORAGE         inet;
+
+CREATE OPERATOR FAMILY integer_minmax_multi_ops USING brin;
+
+CREATE OPERATOR CLASS int2_minmax_multi_ops
+FOR TYPE int2 USING brin FAMILY integer_minmax_multi_ops
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_int2(int2,int2),
+STORAGE         int2;
+
+CREATE OPERATOR CLASS int4_minmax_multi_ops
+FOR TYPE int4 USING brin FAMILY integer_minmax_multi_ops
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_int4(int4,int4),
+STORAGE         int4;
+
+CREATE OPERATOR CLASS int8_minmax_multi_ops
+FOR TYPE int8 USING brin FAMILY integer_minmax_multi_ops
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_int8(int8,int8),
+STORAGE         int8;
+
+ALTER OPERATOR FAMILY integer_minmax_multi_ops USING brin ADD
+
+    OPERATOR        1       <(int2,int4),
+    OPERATOR        2       <=(int2,int4),
+    OPERATOR        3       =(int2,int4),
+    OPERATOR        4       >=(int2,int4),
+    OPERATOR        5       >(int2,int4),
+
+    OPERATOR        1       <(int2,int8),
+    OPERATOR        2       <=(int2,int8),
+    OPERATOR        3       =(int2,int8),
+    OPERATOR        4       >=(int2,int8),
+    OPERATOR        5       >(int2,int8),
+
+    OPERATOR        1       <(int4,int2),
+    OPERATOR        2       <=(int4,int2),
+    OPERATOR        3       =(int4,int2),
+    OPERATOR        4       >=(int4,int2),
+    OPERATOR        5       >(int4,int2),
+
+    OPERATOR        1       <(int4,int8),
+    OPERATOR        2       <=(int4,int8),
+    OPERATOR        3       =(int4,int8),
+    OPERATOR        4       >=(int4,int8),
+    OPERATOR        5       >(int4,int8),
+
+    OPERATOR        1       <(int8,int2),
+    OPERATOR        2       <=(int8,int2),
+    OPERATOR        3       =(int8,int2),
+    OPERATOR        4       >=(int8,int2),
+    OPERATOR        5       >(int8,int2),
+
+    OPERATOR        1       <(int8,int4),
+    OPERATOR        2       <=(int8,int4),
+    OPERATOR        3       =(int8,int4),
+    OPERATOR        4       >=(int8,int4),
+    OPERATOR        5       >(int8,int4);
+
+CREATE OPERATOR CLASS interval_minmax_multi_ops
+FOR TYPE interval USING brin
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_interval(interval,interval),
+STORAGE         interval;
+
+CREATE OPERATOR CLASS macaddr_minmax_multi_ops
+FOR TYPE macaddr USING brin
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_macaddr(macaddr,macaddr),
+STORAGE         macaddr;
+
+CREATE OPERATOR CLASS macaddr8_minmax_multi_ops
+FOR TYPE macaddr8 USING brin
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_macaddr8(macaddr8,macaddr8),
+STORAGE         macaddr8;
+
+CREATE OPERATOR CLASS numeric_minmax_multi_ops
+FOR TYPE numeric USING brin
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_numeric(numeric,numeric),
+STORAGE         numeric;
+
+CREATE OPERATOR CLASS oid_minmax_multi_ops
+FOR TYPE oid USING brin
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_int4(int4,int4),
+STORAGE         oid;
+
+CREATE OPERATOR CLASS pg_lsn_minmax_multi_ops
+FOR TYPE pg_lsn USING brin
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_pg_lsn(pg_lsn,pg_lsn),
+STORAGE         pg_lsn;
+
+CREATE OPERATOR CLASS tid_minmax_multi_ops
+FOR TYPE tid USING brin
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_tid(tid,tid),
+STORAGE         tid;
+
+CREATE OPERATOR CLASS time_minmax_multi_ops
+FOR TYPE time USING brin
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_time(time,time),
+STORAGE         time;
+
+CREATE OPERATOR CLASS timestamp_minmax_multi_ops
+FOR TYPE timestamp USING brin FAMILY datetime_minmax_multi_ops
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_timestamp(timestamp,timestamp),
+STORAGE         timestamp;
+
+CREATE OPERATOR CLASS timestamptz_minmax_multi_ops
+FOR TYPE timestamptz USING brin FAMILY datetime_minmax_multi_ops
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_timestamp(timestamp,timestamp),
+STORAGE         timestamptz;
+
+ALTER OPERATOR FAMILY datetime_minmax_multi_ops USING brin ADD
+
+    OPERATOR        1       <(timestamp,timestamptz),
+    OPERATOR        2       <=(timestamp,timestamptz),
+    OPERATOR        3       =(timestamp,timestamptz),
+    OPERATOR        4       >=(timestamp,timestamptz),
+    OPERATOR        5       >(timestamp,timestamptz),
+
+    OPERATOR        1       <(timestamp,date),
+    OPERATOR        2       <=(timestamp,date),
+    OPERATOR        3       =(timestamp,date),
+    OPERATOR        4       >=(timestamp,date),
+    OPERATOR        5       >(timestamp,date),
+
+    OPERATOR        1       <(date,timestamp),
+    OPERATOR        2       <=(date,timestamp),
+    OPERATOR        3       =(date,timestamp),
+    OPERATOR        4       >=(date,timestamp),
+    OPERATOR        5       >(date,timestamp),
+
+    OPERATOR        1       <(date,timestamptz),
+    OPERATOR        2       <=(date,timestamptz),
+    OPERATOR        3       =(date,timestamptz),
+    OPERATOR        4       >=(date,timestamptz),
+    OPERATOR        5       >(date,timestamptz),
+
+    OPERATOR        1       <(timestamptz,timestamp),
+    OPERATOR        2       <=(timestamptz,timestamp),
+    OPERATOR        3       =(timestamptz,timestamp),
+    OPERATOR        4       >=(timestamptz,timestamp),
+    OPERATOR        5       >(timestamptz,timestamp),
+
+    OPERATOR        1       <(timestamptz,date),
+    OPERATOR        2       <=(timestamptz,date),
+    OPERATOR        3       =(timestamptz,date),
+    OPERATOR        4       >=(timestamptz,date),
+    OPERATOR        5       >(timestamptz,date);
+
+CREATE OPERATOR CLASS timetz_minmax_multi_ops
+FOR TYPE timetz USING brin
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_timetz(timetz,timetz),
+STORAGE         timetz;
+
+CREATE OPERATOR CLASS uuid_minmax_multi_ops
+FOR TYPE uuid USING brin
+AS
+    OPERATOR        1       <,
+    OPERATOR        2       <=,
+    OPERATOR        3       =,
+    OPERATOR        4       >=,
+    OPERATOR        5       >,
+    FUNCTION        1       brin_minmax_multi_opcinfo(internal),
+    FUNCTION        2       brin_minmax_multi_add_value(internal, internal, internal, internal),
+    FUNCTION        3       brin_minmax_multi_consistent(internal, internal, internal, int4),
+    FUNCTION        4       brin_minmax_multi_union(internal, internal, internal),
+    FUNCTION        5       brin_minmax_multi_options(internal),
+    FUNCTION       11       brin_minmax_multi_distance_uuid(uuid,uuid),
+STORAGE         uuid;
diff --git a/src/backend/access/brin/brin_minmax_multi.c b/contrib/brin_minmax_multi/brin_minmax_multi.c
similarity index 96%
rename from src/backend/access/brin/brin_minmax_multi.c
rename to contrib/brin_minmax_multi/brin_minmax_multi.c
index 1ca86b7fb7..bb6a9b9157 100644
--- a/src/backend/access/brin/brin_minmax_multi.c
+++ b/contrib/brin_minmax_multi/brin_minmax_multi.c
@@ -66,6 +66,7 @@
 #include "access/reloptions.h"
 #include "access/stratnum.h"
 #include "access/htup_details.h"
+#include "catalog/namespace.h"
 #include "catalog/pg_type.h"
 #include "catalog/pg_am.h"
 #include "catalog/pg_amop.h"
@@ -83,6 +84,8 @@
 #include "utils/timestamp.h"
 #include "utils/uuid.h"
 
+PG_MODULE_MAGIC;
+
 /*
  * Additional SQL level support functions
  *
@@ -257,6 +260,63 @@ static FmgrInfo *minmax_multi_get_strategy_procinfo(BrinDesc *bdesc,
 													uint16 attno, Oid subtype,
 													uint16 strategynum);
 
+Datum brin_minmax_multi_opcinfo(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_float4(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_float8(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_int2(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_int4(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_int8(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_tid(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_numeric(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_uuid(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_date(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_time(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_timetz(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_timestamp(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_interval(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_pg_lsn(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_macaddr(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_macaddr8(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_distance_inet(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_add_value(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_consistent(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_union(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_options(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_summary_in(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_summary_out(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_summary_recv(PG_FUNCTION_ARGS);
+Datum brin_minmax_multi_summary_send(PG_FUNCTION_ARGS);
+
+PG_FUNCTION_INFO_V1(brin_minmax_multi_summary_in);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_summary_out);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_summary_send);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_summary_recv);
+
+PG_FUNCTION_INFO_V1(brin_minmax_multi_opcinfo);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_options);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_add_value);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_consistent);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_union);
+
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_int2);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_int4);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_int8);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_float4);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_float8);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_numeric);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_tid);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_uuid);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_date);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_time);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_interval);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_timetz);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_pg_lsn);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_macaddr);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_macaddr8);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_inet);
+PG_FUNCTION_INFO_V1(brin_minmax_multi_distance_timestamp);
+
+
 typedef struct compare_context
 {
 	FmgrInfo   *cmpFn;
@@ -1782,6 +1842,7 @@ Datum
 brin_minmax_multi_opcinfo(PG_FUNCTION_ARGS)
 {
 	BrinOpcInfo *result;
+	Oid	typoid = TypenameGetTypidExtended("brin_minmax_multi_summary", false);
 
 	/*
 	 * opaque->strategy_procinfos is initialized lazily; here it is set to
@@ -1794,7 +1855,7 @@ brin_minmax_multi_opcinfo(PG_FUNCTION_ARGS)
 	result->oi_regular_nulls = true;
 	result->oi_opaque = (MinmaxMultiOpaque *)
 		MAXALIGN((char *) result + SizeofBrinOpcInfo(1));
-	result->oi_typcache[0] = lookup_type_cache(PG_BRIN_MINMAX_MULTI_SUMMARYOID, 0);
+	result->oi_typcache[0] = lookup_type_cache(typoid, 0);
 
 	PG_RETURN_POINTER(result);
 }
diff --git a/contrib/brin_minmax_multi/brin_minmax_multi.control b/contrib/brin_minmax_multi/brin_minmax_multi.control
new file mode 100644
index 0000000000..71e614867a
--- /dev/null
+++ b/contrib/brin_minmax_multi/brin_minmax_multi.control
@@ -0,0 +1,6 @@
+# brin_minmax_multi extension
+comment = 'support for BRIN minmax-multi indexes'
+default_version = '1.0'
+module_pathname = '$libdir/brin_minmax_multi'
+relocatable = true
+trusted = true
diff --git a/src/test/regress/expected/brin_multi.out b/contrib/brin_minmax_multi/expected/brin_multi.out
similarity index 97%
rename from src/test/regress/expected/brin_multi.out
rename to contrib/brin_minmax_multi/expected/brin_multi.out
index 0a7e4b8060..027d45c308 100644
--- a/src/test/regress/expected/brin_multi.out
+++ b/contrib/brin_minmax_multi/expected/brin_multi.out
@@ -1,3 +1,24 @@
+CREATE EXTENSION brin_minmax_multi;
+CREATE TABLE tenk1 (
+	unique1		int4,
+	unique2		int4,
+	two			int4,
+	four		int4,
+	ten			int4,
+	twenty		int4,
+	hundred		int4,
+	thousand	int4,
+	twothousand	int4,
+	fivethous	int4,
+	tenthous	int4,
+	odd			int4,
+	even		int4,
+	stringu1	name,
+	stringu2	name,
+	string4		name
+);
+\copy tenk1 from '../../src/test/regress/data/tenk.data'
+CREATE INDEX tenk1_unique1 ON tenk1 USING btree(unique1 int4_ops);
 CREATE TABLE brintest_multi (
 	int8col bigint,
 	int2col smallint,
diff --git a/src/test/regress/sql/brin_multi.sql b/contrib/brin_minmax_multi/sql/brin_multi.sql
similarity index 97%
rename from src/test/regress/sql/brin_multi.sql
rename to contrib/brin_minmax_multi/sql/brin_multi.sql
index f5ffcaea33..c7b87c1ca3 100644
--- a/src/test/regress/sql/brin_multi.sql
+++ b/contrib/brin_minmax_multi/sql/brin_multi.sql
@@ -1,3 +1,28 @@
+CREATE EXTENSION brin_minmax_multi;
+
+CREATE TABLE tenk1 (
+	unique1		int4,
+	unique2		int4,
+	two			int4,
+	four		int4,
+	ten			int4,
+	twenty		int4,
+	hundred		int4,
+	thousand	int4,
+	twothousand	int4,
+	fivethous	int4,
+	tenthous	int4,
+	odd			int4,
+	even		int4,
+	stringu1	name,
+	stringu2	name,
+	string4		name
+);
+
+\copy tenk1 from '../../src/test/regress/data/tenk.data'
+
+CREATE INDEX tenk1_unique1 ON tenk1 USING btree(unique1 int4_ops);
+
 CREATE TABLE brintest_multi (
 	int8col bigint,
 	int2col smallint,
diff --git a/src/backend/access/brin/Makefile b/src/backend/access/brin/Makefile
index 75eb87ec10..468e1e289a 100644
--- a/src/backend/access/brin/Makefile
+++ b/src/backend/access/brin/Makefile
@@ -16,7 +16,6 @@ OBJS = \
 	brin.o \
 	brin_inclusion.o \
 	brin_minmax.o \
-	brin_minmax_multi.o \
 	brin_pageops.o \
 	brin_revmap.o \
 	brin_tuple.o \
diff --git a/src/include/catalog/pg_amop.dat b/src/include/catalog/pg_amop.dat
index 51bef55a57..0f7ff63669 100644
--- a/src/include/catalog/pg_amop.dat
+++ b/src/include/catalog/pg_amop.dat
@@ -1994,152 +1994,6 @@
   amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int4,int8)',
   amopmethod => 'brin' },
 
-# minmax multi integer
-
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
-  amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int8,int8)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
-  amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int8,int8)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
-  amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int8,int8)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
-  amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int8,int8)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
-  amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int8,int8)',
-  amopmethod => 'brin' },
-
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
-  amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int8,int2)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
-  amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int8,int2)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
-  amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int8,int2)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
-  amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int8,int2)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
-  amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int8,int2)',
-  amopmethod => 'brin' },
-
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
-  amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int8,int4)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
-  amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int8,int4)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
-  amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int8,int4)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
-  amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int8,int4)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
-  amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int8,int4)',
-  amopmethod => 'brin' },
-
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
-  amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int2,int2)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
-  amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int2,int2)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
-  amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int2,int2)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
-  amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int2,int2)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
-  amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int2,int2)',
-  amopmethod => 'brin' },
-
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
-  amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int2,int8)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
-  amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int2,int8)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
-  amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int2,int8)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
-  amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int2,int8)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
-  amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int2,int8)',
-  amopmethod => 'brin' },
-
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
-  amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int2,int4)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
-  amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int2,int4)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
-  amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int2,int4)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
-  amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int2,int4)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
-  amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int2,int4)',
-  amopmethod => 'brin' },
-
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
-  amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int4,int4)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
-  amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int4,int4)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
-  amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int4,int4)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
-  amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int4,int4)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
-  amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int4,int4)',
-  amopmethod => 'brin' },
-
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
-  amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int4,int2)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
-  amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int4,int2)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
-  amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int4,int2)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
-  amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int4,int2)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
-  amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int4,int2)',
-  amopmethod => 'brin' },
-
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
-  amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int4,int8)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
-  amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int4,int8)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
-  amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int4,int8)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
-  amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int4,int8)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
-  amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int4,int8)',
-  amopmethod => 'brin' },
-
 # minmax text
 { amopfamily => 'brin/text_minmax_ops', amoplefttype => 'text',
   amoprighttype => 'text', amopstrategy => '1', amopopr => '<(text,text)',
@@ -2174,23 +2028,6 @@
   amoprighttype => 'oid', amopstrategy => '5', amopopr => '>(oid,oid)',
   amopmethod => 'brin' },
 
-# minmax multi oid
-{ amopfamily => 'brin/oid_minmax_multi_ops', amoplefttype => 'oid',
-  amoprighttype => 'oid', amopstrategy => '1', amopopr => '<(oid,oid)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/oid_minmax_multi_ops', amoplefttype => 'oid',
-  amoprighttype => 'oid', amopstrategy => '2', amopopr => '<=(oid,oid)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/oid_minmax_multi_ops', amoplefttype => 'oid',
-  amoprighttype => 'oid', amopstrategy => '3', amopopr => '=(oid,oid)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/oid_minmax_multi_ops', amoplefttype => 'oid',
-  amoprighttype => 'oid', amopstrategy => '4', amopopr => '>=(oid,oid)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/oid_minmax_multi_ops', amoplefttype => 'oid',
-  amoprighttype => 'oid', amopstrategy => '5', amopopr => '>(oid,oid)',
-  amopmethod => 'brin' },
-
 # minmax tid
 { amopfamily => 'brin/tid_minmax_ops', amoplefttype => 'tid',
   amoprighttype => 'tid', amopstrategy => '1', amopopr => '<(tid,tid)',
@@ -2208,23 +2045,6 @@
   amoprighttype => 'tid', amopstrategy => '5', amopopr => '>(tid,tid)',
   amopmethod => 'brin' },
 
-# minmax multi tid
-{ amopfamily => 'brin/tid_minmax_multi_ops', amoplefttype => 'tid',
-  amoprighttype => 'tid', amopstrategy => '1', amopopr => '<(tid,tid)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/tid_minmax_multi_ops', amoplefttype => 'tid',
-  amoprighttype => 'tid', amopstrategy => '2', amopopr => '<=(tid,tid)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/tid_minmax_multi_ops', amoplefttype => 'tid',
-  amoprighttype => 'tid', amopstrategy => '3', amopopr => '=(tid,tid)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/tid_minmax_multi_ops', amoplefttype => 'tid',
-  amoprighttype => 'tid', amopstrategy => '4', amopopr => '>=(tid,tid)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/tid_minmax_multi_ops', amoplefttype => 'tid',
-  amoprighttype => 'tid', amopstrategy => '5', amopopr => '>(tid,tid)',
-  amopmethod => 'brin' },
-
 # minmax float (float4, float8)
 
 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
@@ -2291,72 +2111,6 @@
   amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float8,float8)',
   amopmethod => 'brin' },
 
-# minmax multi float (float4, float8)
-
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
-  amoprighttype => 'float4', amopstrategy => '1', amopopr => '<(float4,float4)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
-  amoprighttype => 'float4', amopstrategy => '2',
-  amopopr => '<=(float4,float4)', amopmethod => 'brin' },
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
-  amoprighttype => 'float4', amopstrategy => '3', amopopr => '=(float4,float4)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
-  amoprighttype => 'float4', amopstrategy => '4',
-  amopopr => '>=(float4,float4)', amopmethod => 'brin' },
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
-  amoprighttype => 'float4', amopstrategy => '5', amopopr => '>(float4,float4)',
-  amopmethod => 'brin' },
-
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
-  amoprighttype => 'float8', amopstrategy => '1', amopopr => '<(float4,float8)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
-  amoprighttype => 'float8', amopstrategy => '2',
-  amopopr => '<=(float4,float8)', amopmethod => 'brin' },
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
-  amoprighttype => 'float8', amopstrategy => '3', amopopr => '=(float4,float8)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
-  amoprighttype => 'float8', amopstrategy => '4',
-  amopopr => '>=(float4,float8)', amopmethod => 'brin' },
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
-  amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float4,float8)',
-  amopmethod => 'brin' },
-
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
-  amoprighttype => 'float4', amopstrategy => '1', amopopr => '<(float8,float4)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
-  amoprighttype => 'float4', amopstrategy => '2',
-  amopopr => '<=(float8,float4)', amopmethod => 'brin' },
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
-  amoprighttype => 'float4', amopstrategy => '3', amopopr => '=(float8,float4)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
-  amoprighttype => 'float4', amopstrategy => '4',
-  amopopr => '>=(float8,float4)', amopmethod => 'brin' },
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
-  amoprighttype => 'float4', amopstrategy => '5', amopopr => '>(float8,float4)',
-  amopmethod => 'brin' },
-
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
-  amoprighttype => 'float8', amopstrategy => '1', amopopr => '<(float8,float8)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
-  amoprighttype => 'float8', amopstrategy => '2',
-  amopopr => '<=(float8,float8)', amopmethod => 'brin' },
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
-  amoprighttype => 'float8', amopstrategy => '3', amopopr => '=(float8,float8)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
-  amoprighttype => 'float8', amopstrategy => '4',
-  amopopr => '>=(float8,float8)', amopmethod => 'brin' },
-{ amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
-  amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float8,float8)',
-  amopmethod => 'brin' },
-
 # minmax macaddr
 { amopfamily => 'brin/macaddr_minmax_ops', amoplefttype => 'macaddr',
   amoprighttype => 'macaddr', amopstrategy => '1',
@@ -2374,23 +2128,6 @@
   amoprighttype => 'macaddr', amopstrategy => '5',
   amopopr => '>(macaddr,macaddr)', amopmethod => 'brin' },
 
-# minmax multi macaddr
-{ amopfamily => 'brin/macaddr_minmax_multi_ops', amoplefttype => 'macaddr',
-  amoprighttype => 'macaddr', amopstrategy => '1',
-  amopopr => '<(macaddr,macaddr)', amopmethod => 'brin' },
-{ amopfamily => 'brin/macaddr_minmax_multi_ops', amoplefttype => 'macaddr',
-  amoprighttype => 'macaddr', amopstrategy => '2',
-  amopopr => '<=(macaddr,macaddr)', amopmethod => 'brin' },
-{ amopfamily => 'brin/macaddr_minmax_multi_ops', amoplefttype => 'macaddr',
-  amoprighttype => 'macaddr', amopstrategy => '3',
-  amopopr => '=(macaddr,macaddr)', amopmethod => 'brin' },
-{ amopfamily => 'brin/macaddr_minmax_multi_ops', amoplefttype => 'macaddr',
-  amoprighttype => 'macaddr', amopstrategy => '4',
-  amopopr => '>=(macaddr,macaddr)', amopmethod => 'brin' },
-{ amopfamily => 'brin/macaddr_minmax_multi_ops', amoplefttype => 'macaddr',
-  amoprighttype => 'macaddr', amopstrategy => '5',
-  amopopr => '>(macaddr,macaddr)', amopmethod => 'brin' },
-
 # minmax macaddr8
 { amopfamily => 'brin/macaddr8_minmax_ops', amoplefttype => 'macaddr8',
   amoprighttype => 'macaddr8', amopstrategy => '1',
@@ -2408,23 +2145,6 @@
   amoprighttype => 'macaddr8', amopstrategy => '5',
   amopopr => '>(macaddr8,macaddr8)', amopmethod => 'brin' },
 
-# minmax multi macaddr8
-{ amopfamily => 'brin/macaddr8_minmax_multi_ops', amoplefttype => 'macaddr8',
-  amoprighttype => 'macaddr8', amopstrategy => '1',
-  amopopr => '<(macaddr8,macaddr8)', amopmethod => 'brin' },
-{ amopfamily => 'brin/macaddr8_minmax_multi_ops', amoplefttype => 'macaddr8',
-  amoprighttype => 'macaddr8', amopstrategy => '2',
-  amopopr => '<=(macaddr8,macaddr8)', amopmethod => 'brin' },
-{ amopfamily => 'brin/macaddr8_minmax_multi_ops', amoplefttype => 'macaddr8',
-  amoprighttype => 'macaddr8', amopstrategy => '3',
-  amopopr => '=(macaddr8,macaddr8)', amopmethod => 'brin' },
-{ amopfamily => 'brin/macaddr8_minmax_multi_ops', amoplefttype => 'macaddr8',
-  amoprighttype => 'macaddr8', amopstrategy => '4',
-  amopopr => '>=(macaddr8,macaddr8)', amopmethod => 'brin' },
-{ amopfamily => 'brin/macaddr8_minmax_multi_ops', amoplefttype => 'macaddr8',
-  amoprighttype => 'macaddr8', amopstrategy => '5',
-  amopopr => '>(macaddr8,macaddr8)', amopmethod => 'brin' },
-
 # minmax inet
 { amopfamily => 'brin/network_minmax_ops', amoplefttype => 'inet',
   amoprighttype => 'inet', amopstrategy => '1', amopopr => '<(inet,inet)',
@@ -2442,23 +2162,6 @@
   amoprighttype => 'inet', amopstrategy => '5', amopopr => '>(inet,inet)',
   amopmethod => 'brin' },
 
-# minmax multi inet
-{ amopfamily => 'brin/network_minmax_multi_ops', amoplefttype => 'inet',
-  amoprighttype => 'inet', amopstrategy => '1', amopopr => '<(inet,inet)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/network_minmax_multi_ops', amoplefttype => 'inet',
-  amoprighttype => 'inet', amopstrategy => '2', amopopr => '<=(inet,inet)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/network_minmax_multi_ops', amoplefttype => 'inet',
-  amoprighttype => 'inet', amopstrategy => '3', amopopr => '=(inet,inet)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/network_minmax_multi_ops', amoplefttype => 'inet',
-  amoprighttype => 'inet', amopstrategy => '4', amopopr => '>=(inet,inet)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/network_minmax_multi_ops', amoplefttype => 'inet',
-  amoprighttype => 'inet', amopstrategy => '5', amopopr => '>(inet,inet)',
-  amopmethod => 'brin' },
-
 # inclusion inet
 { amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet',
   amoprighttype => 'inet', amopstrategy => '3', amopopr => '&&(inet,inet)',
@@ -2513,23 +2216,6 @@
   amoprighttype => 'time', amopstrategy => '5', amopopr => '>(time,time)',
   amopmethod => 'brin' },
 
-# minmax multi time without time zone
-{ amopfamily => 'brin/time_minmax_multi_ops', amoplefttype => 'time',
-  amoprighttype => 'time', amopstrategy => '1', amopopr => '<(time,time)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/time_minmax_multi_ops', amoplefttype => 'time',
-  amoprighttype => 'time', amopstrategy => '2', amopopr => '<=(time,time)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/time_minmax_multi_ops', amoplefttype => 'time',
-  amoprighttype => 'time', amopstrategy => '3', amopopr => '=(time,time)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/time_minmax_multi_ops', amoplefttype => 'time',
-  amoprighttype => 'time', amopstrategy => '4', amopopr => '>=(time,time)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/time_minmax_multi_ops', amoplefttype => 'time',
-  amoprighttype => 'time', amopstrategy => '5', amopopr => '>(time,time)',
-  amopmethod => 'brin' },
-
 # minmax datetime (date, timestamp, timestamptz)
 
 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
@@ -2676,152 +2362,6 @@
   amoprighttype => 'timestamptz', amopstrategy => '5',
   amopopr => '>(timestamptz,timestamptz)', amopmethod => 'brin' },
 
-# minmax multi datetime (date, timestamp, timestamptz)
-
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
-  amoprighttype => 'timestamp', amopstrategy => '1',
-  amopopr => '<(timestamp,timestamp)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
-  amoprighttype => 'timestamp', amopstrategy => '2',
-  amopopr => '<=(timestamp,timestamp)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
-  amoprighttype => 'timestamp', amopstrategy => '3',
-  amopopr => '=(timestamp,timestamp)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
-  amoprighttype => 'timestamp', amopstrategy => '4',
-  amopopr => '>=(timestamp,timestamp)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
-  amoprighttype => 'timestamp', amopstrategy => '5',
-  amopopr => '>(timestamp,timestamp)', amopmethod => 'brin' },
-
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
-  amoprighttype => 'date', amopstrategy => '1', amopopr => '<(timestamp,date)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
-  amoprighttype => 'date', amopstrategy => '2', amopopr => '<=(timestamp,date)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
-  amoprighttype => 'date', amopstrategy => '3', amopopr => '=(timestamp,date)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
-  amoprighttype => 'date', amopstrategy => '4', amopopr => '>=(timestamp,date)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
-  amoprighttype => 'date', amopstrategy => '5', amopopr => '>(timestamp,date)',
-  amopmethod => 'brin' },
-
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
-  amoprighttype => 'timestamptz', amopstrategy => '1',
-  amopopr => '<(timestamp,timestamptz)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
-  amoprighttype => 'timestamptz', amopstrategy => '2',
-  amopopr => '<=(timestamp,timestamptz)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
-  amoprighttype => 'timestamptz', amopstrategy => '3',
-  amopopr => '=(timestamp,timestamptz)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
-  amoprighttype => 'timestamptz', amopstrategy => '4',
-  amopopr => '>=(timestamp,timestamptz)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
-  amoprighttype => 'timestamptz', amopstrategy => '5',
-  amopopr => '>(timestamp,timestamptz)', amopmethod => 'brin' },
-
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
-  amoprighttype => 'date', amopstrategy => '1', amopopr => '<(date,date)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
-  amoprighttype => 'date', amopstrategy => '2', amopopr => '<=(date,date)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
-  amoprighttype => 'date', amopstrategy => '3', amopopr => '=(date,date)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
-  amoprighttype => 'date', amopstrategy => '4', amopopr => '>=(date,date)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
-  amoprighttype => 'date', amopstrategy => '5', amopopr => '>(date,date)',
-  amopmethod => 'brin' },
-
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
-  amoprighttype => 'timestamp', amopstrategy => '1',
-  amopopr => '<(date,timestamp)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
-  amoprighttype => 'timestamp', amopstrategy => '2',
-  amopopr => '<=(date,timestamp)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
-  amoprighttype => 'timestamp', amopstrategy => '3',
-  amopopr => '=(date,timestamp)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
-  amoprighttype => 'timestamp', amopstrategy => '4',
-  amopopr => '>=(date,timestamp)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
-  amoprighttype => 'timestamp', amopstrategy => '5',
-  amopopr => '>(date,timestamp)', amopmethod => 'brin' },
-
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
-  amoprighttype => 'timestamptz', amopstrategy => '1',
-  amopopr => '<(date,timestamptz)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
-  amoprighttype => 'timestamptz', amopstrategy => '2',
-  amopopr => '<=(date,timestamptz)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
-  amoprighttype => 'timestamptz', amopstrategy => '3',
-  amopopr => '=(date,timestamptz)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
-  amoprighttype => 'timestamptz', amopstrategy => '4',
-  amopopr => '>=(date,timestamptz)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
-  amoprighttype => 'timestamptz', amopstrategy => '5',
-  amopopr => '>(date,timestamptz)', amopmethod => 'brin' },
-
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
-  amoprighttype => 'date', amopstrategy => '1',
-  amopopr => '<(timestamptz,date)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
-  amoprighttype => 'date', amopstrategy => '2',
-  amopopr => '<=(timestamptz,date)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
-  amoprighttype => 'date', amopstrategy => '3',
-  amopopr => '=(timestamptz,date)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
-  amoprighttype => 'date', amopstrategy => '4',
-  amopopr => '>=(timestamptz,date)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
-  amoprighttype => 'date', amopstrategy => '5',
-  amopopr => '>(timestamptz,date)', amopmethod => 'brin' },
-
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
-  amoprighttype => 'timestamp', amopstrategy => '1',
-  amopopr => '<(timestamptz,timestamp)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
-  amoprighttype => 'timestamp', amopstrategy => '2',
-  amopopr => '<=(timestamptz,timestamp)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
-  amoprighttype => 'timestamp', amopstrategy => '3',
-  amopopr => '=(timestamptz,timestamp)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
-  amoprighttype => 'timestamp', amopstrategy => '4',
-  amopopr => '>=(timestamptz,timestamp)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
-  amoprighttype => 'timestamp', amopstrategy => '5',
-  amopopr => '>(timestamptz,timestamp)', amopmethod => 'brin' },
-
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
-  amoprighttype => 'timestamptz', amopstrategy => '1',
-  amopopr => '<(timestamptz,timestamptz)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
-  amoprighttype => 'timestamptz', amopstrategy => '2',
-  amopopr => '<=(timestamptz,timestamptz)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
-  amoprighttype => 'timestamptz', amopstrategy => '3',
-  amopopr => '=(timestamptz,timestamptz)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
-  amoprighttype => 'timestamptz', amopstrategy => '4',
-  amopopr => '>=(timestamptz,timestamptz)', amopmethod => 'brin' },
-{ amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
-  amoprighttype => 'timestamptz', amopstrategy => '5',
-  amopopr => '>(timestamptz,timestamptz)', amopmethod => 'brin' },
-
 # minmax interval
 { amopfamily => 'brin/interval_minmax_ops', amoplefttype => 'interval',
   amoprighttype => 'interval', amopstrategy => '1',
@@ -2839,23 +2379,6 @@
   amoprighttype => 'interval', amopstrategy => '5',
   amopopr => '>(interval,interval)', amopmethod => 'brin' },
 
-# minmax multi interval
-{ amopfamily => 'brin/interval_minmax_multi_ops', amoplefttype => 'interval',
-  amoprighttype => 'interval', amopstrategy => '1',
-  amopopr => '<(interval,interval)', amopmethod => 'brin' },
-{ amopfamily => 'brin/interval_minmax_multi_ops', amoplefttype => 'interval',
-  amoprighttype => 'interval', amopstrategy => '2',
-  amopopr => '<=(interval,interval)', amopmethod => 'brin' },
-{ amopfamily => 'brin/interval_minmax_multi_ops', amoplefttype => 'interval',
-  amoprighttype => 'interval', amopstrategy => '3',
-  amopopr => '=(interval,interval)', amopmethod => 'brin' },
-{ amopfamily => 'brin/interval_minmax_multi_ops', amoplefttype => 'interval',
-  amoprighttype => 'interval', amopstrategy => '4',
-  amopopr => '>=(interval,interval)', amopmethod => 'brin' },
-{ amopfamily => 'brin/interval_minmax_multi_ops', amoplefttype => 'interval',
-  amoprighttype => 'interval', amopstrategy => '5',
-  amopopr => '>(interval,interval)', amopmethod => 'brin' },
-
 # minmax time with time zone
 { amopfamily => 'brin/timetz_minmax_ops', amoplefttype => 'timetz',
   amoprighttype => 'timetz', amopstrategy => '1', amopopr => '<(timetz,timetz)',
@@ -2873,23 +2396,6 @@
   amoprighttype => 'timetz', amopstrategy => '5', amopopr => '>(timetz,timetz)',
   amopmethod => 'brin' },
 
-# minmax multi time with time zone
-{ amopfamily => 'brin/timetz_minmax_multi_ops', amoplefttype => 'timetz',
-  amoprighttype => 'timetz', amopstrategy => '1', amopopr => '<(timetz,timetz)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/timetz_minmax_multi_ops', amoplefttype => 'timetz',
-  amoprighttype => 'timetz', amopstrategy => '2',
-  amopopr => '<=(timetz,timetz)', amopmethod => 'brin' },
-{ amopfamily => 'brin/timetz_minmax_multi_ops', amoplefttype => 'timetz',
-  amoprighttype => 'timetz', amopstrategy => '3', amopopr => '=(timetz,timetz)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/timetz_minmax_multi_ops', amoplefttype => 'timetz',
-  amoprighttype => 'timetz', amopstrategy => '4',
-  amopopr => '>=(timetz,timetz)', amopmethod => 'brin' },
-{ amopfamily => 'brin/timetz_minmax_multi_ops', amoplefttype => 'timetz',
-  amoprighttype => 'timetz', amopstrategy => '5', amopopr => '>(timetz,timetz)',
-  amopmethod => 'brin' },
-
 # minmax bit
 { amopfamily => 'brin/bit_minmax_ops', amoplefttype => 'bit',
   amoprighttype => 'bit', amopstrategy => '1', amopopr => '<(bit,bit)',
@@ -2941,23 +2447,6 @@
   amoprighttype => 'numeric', amopstrategy => '5',
   amopopr => '>(numeric,numeric)', amopmethod => 'brin' },
 
-# minmax multi numeric
-{ amopfamily => 'brin/numeric_minmax_multi_ops', amoplefttype => 'numeric',
-  amoprighttype => 'numeric', amopstrategy => '1',
-  amopopr => '<(numeric,numeric)', amopmethod => 'brin' },
-{ amopfamily => 'brin/numeric_minmax_multi_ops', amoplefttype => 'numeric',
-  amoprighttype => 'numeric', amopstrategy => '2',
-  amopopr => '<=(numeric,numeric)', amopmethod => 'brin' },
-{ amopfamily => 'brin/numeric_minmax_multi_ops', amoplefttype => 'numeric',
-  amoprighttype => 'numeric', amopstrategy => '3',
-  amopopr => '=(numeric,numeric)', amopmethod => 'brin' },
-{ amopfamily => 'brin/numeric_minmax_multi_ops', amoplefttype => 'numeric',
-  amoprighttype => 'numeric', amopstrategy => '4',
-  amopopr => '>=(numeric,numeric)', amopmethod => 'brin' },
-{ amopfamily => 'brin/numeric_minmax_multi_ops', amoplefttype => 'numeric',
-  amoprighttype => 'numeric', amopstrategy => '5',
-  amopopr => '>(numeric,numeric)', amopmethod => 'brin' },
-
 # minmax uuid
 { amopfamily => 'brin/uuid_minmax_ops', amoplefttype => 'uuid',
   amoprighttype => 'uuid', amopstrategy => '1', amopopr => '<(uuid,uuid)',
@@ -2975,23 +2464,6 @@
   amoprighttype => 'uuid', amopstrategy => '5', amopopr => '>(uuid,uuid)',
   amopmethod => 'brin' },
 
-# minmax multi uuid
-{ amopfamily => 'brin/uuid_minmax_multi_ops', amoplefttype => 'uuid',
-  amoprighttype => 'uuid', amopstrategy => '1', amopopr => '<(uuid,uuid)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/uuid_minmax_multi_ops', amoplefttype => 'uuid',
-  amoprighttype => 'uuid', amopstrategy => '2', amopopr => '<=(uuid,uuid)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/uuid_minmax_multi_ops', amoplefttype => 'uuid',
-  amoprighttype => 'uuid', amopstrategy => '3', amopopr => '=(uuid,uuid)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/uuid_minmax_multi_ops', amoplefttype => 'uuid',
-  amoprighttype => 'uuid', amopstrategy => '4', amopopr => '>=(uuid,uuid)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/uuid_minmax_multi_ops', amoplefttype => 'uuid',
-  amoprighttype => 'uuid', amopstrategy => '5', amopopr => '>(uuid,uuid)',
-  amopmethod => 'brin' },
-
 # inclusion range types
 { amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
   amoprighttype => 'anyrange', amopstrategy => '1',
@@ -3053,23 +2525,6 @@
   amoprighttype => 'pg_lsn', amopstrategy => '5', amopopr => '>(pg_lsn,pg_lsn)',
   amopmethod => 'brin' },
 
-# minmax multi pg_lsn
-{ amopfamily => 'brin/pg_lsn_minmax_multi_ops', amoplefttype => 'pg_lsn',
-  amoprighttype => 'pg_lsn', amopstrategy => '1', amopopr => '<(pg_lsn,pg_lsn)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/pg_lsn_minmax_multi_ops', amoplefttype => 'pg_lsn',
-  amoprighttype => 'pg_lsn', amopstrategy => '2',
-  amopopr => '<=(pg_lsn,pg_lsn)', amopmethod => 'brin' },
-{ amopfamily => 'brin/pg_lsn_minmax_multi_ops', amoplefttype => 'pg_lsn',
-  amoprighttype => 'pg_lsn', amopstrategy => '3', amopopr => '=(pg_lsn,pg_lsn)',
-  amopmethod => 'brin' },
-{ amopfamily => 'brin/pg_lsn_minmax_multi_ops', amoplefttype => 'pg_lsn',
-  amoprighttype => 'pg_lsn', amopstrategy => '4',
-  amopopr => '>=(pg_lsn,pg_lsn)', amopmethod => 'brin' },
-{ amopfamily => 'brin/pg_lsn_minmax_multi_ops', amoplefttype => 'pg_lsn',
-  amoprighttype => 'pg_lsn', amopstrategy => '5', amopopr => '>(pg_lsn,pg_lsn)',
-  amopmethod => 'brin' },
-
 # inclusion box
 { amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
   amoprighttype => 'box', amopstrategy => '1', amopopr => '<<(box,box)',
diff --git a/src/include/catalog/pg_amproc.dat b/src/include/catalog/pg_amproc.dat
index 68c3342eeb..9192a66a88 100644
--- a/src/include/catalog/pg_amproc.dat
+++ b/src/include/catalog/pg_amproc.dat
@@ -932,152 +932,6 @@
 { amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4',
   amprocrighttype => 'int2', amprocnum => '4', amproc => 'brin_minmax_union' },
 
-# minmax multi integer: int2, int4, int8
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int8', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int8', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int8', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int8', amprocnum => '4', amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int8', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int8', amprocnum => '11', amproc => 'brin_minmax_multi_distance_int8' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int2', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int2', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int2', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int2', amprocnum => '4', amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int2', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int2', amprocnum => '11', amproc => 'brin_minmax_multi_distance_int8' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int4', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int4', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int4', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int4', amprocnum => '4', amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int4', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int8',
-  amprocrighttype => 'int4', amprocnum => '11', amproc => 'brin_minmax_multi_distance_int8' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int2', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int2', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int2', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int2', amprocnum => '4', amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int2', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int2', amprocnum => '11', amproc => 'brin_minmax_multi_distance_int2' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int8', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int8', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int8', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int8', amprocnum => '4', amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int8', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int8', amprocnum => '11', amproc => 'brin_minmax_multi_distance_int8' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int4', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int4', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int4', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int4', amprocnum => '4', amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int4', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int2',
-  amprocrighttype => 'int4', amprocnum => '11', amproc => 'brin_minmax_multi_distance_int4' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int4', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int4', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int4', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int4', amprocnum => '4', amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int4', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int4', amprocnum => '11', amproc => 'brin_minmax_multi_distance_int4' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int8', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int8', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int8', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int8', amprocnum => '4', amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int8', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int8', amprocnum => '11', amproc => 'brin_minmax_multi_distance_int8' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int2', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int2', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int2', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int2', amprocnum => '4', amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int2', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/integer_minmax_multi_ops', amproclefttype => 'int4',
-  amprocrighttype => 'int2', amprocnum => '11', amproc => 'brin_minmax_multi_distance_int4' },
-
 # minmax text
 { amprocfamily => 'brin/text_minmax_ops', amproclefttype => 'text',
   amprocrighttype => 'text', amprocnum => '1',
@@ -1103,23 +957,6 @@
 { amprocfamily => 'brin/oid_minmax_ops', amproclefttype => 'oid',
   amprocrighttype => 'oid', amprocnum => '4', amproc => 'brin_minmax_union' },
 
-# minmax multi oid
-{ amprocfamily => 'brin/oid_minmax_multi_ops', amproclefttype => 'oid',
-  amprocrighttype => 'oid', amprocnum => '1', amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/oid_minmax_multi_ops', amproclefttype => 'oid',
-  amprocrighttype => 'oid', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/oid_minmax_multi_ops', amproclefttype => 'oid',
-  amprocrighttype => 'oid', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/oid_minmax_multi_ops', amproclefttype => 'oid',
-  amprocrighttype => 'oid', amprocnum => '4', amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/oid_minmax_multi_ops', amproclefttype => 'oid',
-  amprocrighttype => 'oid', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/oid_minmax_multi_ops', amproclefttype => 'oid',
-  amprocrighttype => 'oid', amprocnum => '11', amproc => 'brin_minmax_multi_distance_int4' },
-
 # minmax tid
 { amprocfamily => 'brin/tid_minmax_ops', amproclefttype => 'tid',
   amprocrighttype => 'tid', amprocnum => '1', amproc => 'brin_minmax_opcinfo' },
@@ -1132,23 +969,6 @@
 { amprocfamily => 'brin/tid_minmax_ops', amproclefttype => 'tid',
   amprocrighttype => 'tid', amprocnum => '4', amproc => 'brin_minmax_union' },
 
-# minmax multi tid
-{ amprocfamily => 'brin/tid_minmax_multi_ops', amproclefttype => 'tid',
-  amprocrighttype => 'tid', amprocnum => '1', amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/tid_minmax_multi_ops', amproclefttype => 'tid',
-  amprocrighttype => 'tid', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/tid_minmax_multi_ops', amproclefttype => 'tid',
-  amprocrighttype => 'tid', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/tid_minmax_multi_ops', amproclefttype => 'tid',
-  amprocrighttype => 'tid', amprocnum => '4', amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/tid_minmax_multi_ops', amproclefttype => 'tid',
-  amprocrighttype => 'tid', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/tid_minmax_multi_ops', amproclefttype => 'tid',
-  amprocrighttype => 'tid', amprocnum => '11', amproc => 'brin_minmax_multi_distance_tid' },
-
 # minmax float
 { amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4',
   amprocrighttype => 'float4', amprocnum => '1',
@@ -1199,80 +1019,6 @@
   amprocrighttype => 'float4', amprocnum => '4',
   amproc => 'brin_minmax_union' },
 
-# minmax multi float
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float4',
-  amprocrighttype => 'float4', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float4',
-  amprocrighttype => 'float4', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float4',
-  amprocrighttype => 'float4', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float4',
-  amprocrighttype => 'float4', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float4',
-  amprocrighttype => 'float4', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float4',
-  amprocrighttype => 'float4', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_float4' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float4',
-  amprocrighttype => 'float8', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float4',
-  amprocrighttype => 'float8', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float4',
-  amprocrighttype => 'float8', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float4',
-  amprocrighttype => 'float8', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float4',
-  amprocrighttype => 'float8', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float4',
-  amprocrighttype => 'float8', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_float8' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float8',
-  amprocrighttype => 'float8', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float8',
-  amprocrighttype => 'float8', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float8',
-  amprocrighttype => 'float8', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float8',
-  amprocrighttype => 'float8', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float8',
-  amprocrighttype => 'float8', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float8',
-  amprocrighttype => 'float8', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_float8' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float8',
-  amprocrighttype => 'float4', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float8',
-  amprocrighttype => 'float4', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float8',
-  amprocrighttype => 'float4', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float8',
-  amprocrighttype => 'float4', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float8',
-  amprocrighttype => 'float4', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/float_minmax_multi_ops', amproclefttype => 'float8',
-  amprocrighttype => 'float4', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_float8' },
-
 # minmax macaddr
 { amprocfamily => 'brin/macaddr_minmax_ops', amproclefttype => 'macaddr',
   amprocrighttype => 'macaddr', amprocnum => '1',
@@ -1287,26 +1033,6 @@
   amprocrighttype => 'macaddr', amprocnum => '4',
   amproc => 'brin_minmax_union' },
 
-# minmax multi macaddr
-{ amprocfamily => 'brin/macaddr_minmax_multi_ops', amproclefttype => 'macaddr',
-  amprocrighttype => 'macaddr', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/macaddr_minmax_multi_ops', amproclefttype => 'macaddr',
-  amprocrighttype => 'macaddr', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/macaddr_minmax_multi_ops', amproclefttype => 'macaddr',
-  amprocrighttype => 'macaddr', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/macaddr_minmax_multi_ops', amproclefttype => 'macaddr',
-  amprocrighttype => 'macaddr', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/macaddr_minmax_multi_ops', amproclefttype => 'macaddr',
-  amprocrighttype => 'macaddr', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/macaddr_minmax_multi_ops', amproclefttype => 'macaddr',
-  amprocrighttype => 'macaddr', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_macaddr' },
-
 # minmax macaddr8
 { amprocfamily => 'brin/macaddr8_minmax_ops', amproclefttype => 'macaddr8',
   amprocrighttype => 'macaddr8', amprocnum => '1',
@@ -1321,26 +1047,6 @@
   amprocrighttype => 'macaddr8', amprocnum => '4',
   amproc => 'brin_minmax_union' },
 
-# minmax multi macaddr8
-{ amprocfamily => 'brin/macaddr8_minmax_multi_ops', amproclefttype => 'macaddr8',
-  amprocrighttype => 'macaddr8', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/macaddr8_minmax_multi_ops', amproclefttype => 'macaddr8',
-  amprocrighttype => 'macaddr8', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/macaddr8_minmax_multi_ops', amproclefttype => 'macaddr8',
-  amprocrighttype => 'macaddr8', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/macaddr8_minmax_multi_ops', amproclefttype => 'macaddr8',
-  amprocrighttype => 'macaddr8', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/macaddr8_minmax_multi_ops', amproclefttype => 'macaddr8',
-  amprocrighttype => 'macaddr8', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/macaddr8_minmax_multi_ops', amproclefttype => 'macaddr8',
-  amprocrighttype => 'macaddr8', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_macaddr8' },
-
 # minmax inet
 { amprocfamily => 'brin/network_minmax_ops', amproclefttype => 'inet',
   amprocrighttype => 'inet', amprocnum => '1',
@@ -1354,26 +1060,6 @@
 { amprocfamily => 'brin/network_minmax_ops', amproclefttype => 'inet',
   amprocrighttype => 'inet', amprocnum => '4', amproc => 'brin_minmax_union' },
 
-# minmax multi inet
-{ amprocfamily => 'brin/network_minmax_multi_ops', amproclefttype => 'inet',
-  amprocrighttype => 'inet', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/network_minmax_multi_ops', amproclefttype => 'inet',
-  amprocrighttype => 'inet', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/network_minmax_multi_ops', amproclefttype => 'inet',
-  amprocrighttype => 'inet', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/network_minmax_multi_ops', amproclefttype => 'inet',
-  amprocrighttype => 'inet', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/network_minmax_multi_ops', amproclefttype => 'inet',
-  amprocrighttype => 'inet', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/network_minmax_multi_ops', amproclefttype => 'inet',
-  amprocrighttype => 'inet', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_inet' },
-
 # inclusion inet
 { amprocfamily => 'brin/network_inclusion_ops', amproclefttype => 'inet',
   amprocrighttype => 'inet', amprocnum => '1',
@@ -1421,25 +1107,6 @@
 { amprocfamily => 'brin/time_minmax_ops', amproclefttype => 'time',
   amprocrighttype => 'time', amprocnum => '4', amproc => 'brin_minmax_union' },
 
-# minmax multi time without time zone
-{ amprocfamily => 'brin/time_minmax_multi_ops', amproclefttype => 'time',
-  amprocrighttype => 'time', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/time_minmax_multi_ops', amproclefttype => 'time',
-  amprocrighttype => 'time', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/time_minmax_multi_ops', amproclefttype => 'time',
-  amprocrighttype => 'time', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/time_minmax_multi_ops', amproclefttype => 'time',
-  amprocrighttype => 'time', amprocnum => '4', amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/time_minmax_multi_ops', amproclefttype => 'time',
-  amprocrighttype => 'time', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/time_minmax_multi_ops', amproclefttype => 'time',
-  amprocrighttype => 'time', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_time' },
-
 # minmax datetime (date, timestamp, timestamptz)
 { amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp',
   amprocrighttype => 'timestamp', amprocnum => '1',
@@ -1547,170 +1214,6 @@
   amprocrighttype => 'timestamptz', amprocnum => '4',
   amproc => 'brin_minmax_union' },
 
-# minmax multi datetime (date, timestamp, timestamptz)
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'timestamp', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'timestamp', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'timestamp', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'timestamp', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'timestamp', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'timestamp', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_time' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'timestamptz', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'timestamptz', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'timestamptz', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'timestamptz', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'timestamptz', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'timestamptz', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_time' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'date', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'date', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'date', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'date', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'date', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamp',
-  amprocrighttype => 'date', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_time' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'timestamptz', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'timestamptz', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'timestamptz', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'timestamptz', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'timestamptz', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'timestamptz', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_time' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'timestamp', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'timestamp', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'timestamp', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'timestamp', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'timestamp', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'timestamp', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_timestamp' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'date', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'date', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'date', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'date', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'date', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'timestamptz',
-  amprocrighttype => 'date', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_timestamp' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'date', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'date', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'date', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'date', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'date', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'date', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_date' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'timestamp', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'timestamp', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'timestamp', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'timestamp', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'timestamp', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'timestamp', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_date' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'timestamptz', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'timestamptz', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'timestamptz', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'timestamptz', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'timestamptz', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/datetime_minmax_multi_ops', amproclefttype => 'date',
-  amprocrighttype => 'timestamptz', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_date' },
-
 # minmax interval
 { amprocfamily => 'brin/interval_minmax_ops', amproclefttype => 'interval',
   amprocrighttype => 'interval', amprocnum => '1',
@@ -1725,26 +1228,6 @@
   amprocrighttype => 'interval', amprocnum => '4',
   amproc => 'brin_minmax_union' },
 
-# minmax multi interval
-{ amprocfamily => 'brin/interval_minmax_multi_ops', amproclefttype => 'interval',
-  amprocrighttype => 'interval', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/interval_minmax_multi_ops', amproclefttype => 'interval',
-  amprocrighttype => 'interval', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/interval_minmax_multi_ops', amproclefttype => 'interval',
-  amprocrighttype => 'interval', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/interval_minmax_multi_ops', amproclefttype => 'interval',
-  amprocrighttype => 'interval', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/interval_minmax_multi_ops', amproclefttype => 'interval',
-  amprocrighttype => 'interval', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/interval_minmax_multi_ops', amproclefttype => 'interval',
-  amprocrighttype => 'interval', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_interval' },
-
 # minmax time with time zone
 { amprocfamily => 'brin/timetz_minmax_ops', amproclefttype => 'timetz',
   amprocrighttype => 'timetz', amprocnum => '1',
@@ -1759,26 +1242,6 @@
   amprocrighttype => 'timetz', amprocnum => '4',
   amproc => 'brin_minmax_union' },
 
-# minmax multi time with time zone
-{ amprocfamily => 'brin/timetz_minmax_multi_ops', amproclefttype => 'timetz',
-  amprocrighttype => 'timetz', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/timetz_minmax_multi_ops', amproclefttype => 'timetz',
-  amprocrighttype => 'timetz', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/timetz_minmax_multi_ops', amproclefttype => 'timetz',
-  amprocrighttype => 'timetz', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/timetz_minmax_multi_ops', amproclefttype => 'timetz',
-  amprocrighttype => 'timetz', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/timetz_minmax_multi_ops', amproclefttype => 'timetz',
-  amprocrighttype => 'timetz', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/timetz_minmax_multi_ops', amproclefttype => 'timetz',
-  amprocrighttype => 'timetz', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_timetz' },
-
 # minmax bit
 { amprocfamily => 'brin/bit_minmax_ops', amproclefttype => 'bit',
   amprocrighttype => 'bit', amprocnum => '1', amproc => 'brin_minmax_opcinfo' },
@@ -1819,26 +1282,6 @@
   amprocrighttype => 'numeric', amprocnum => '4',
   amproc => 'brin_minmax_union' },
 
-# minmax multi numeric
-{ amprocfamily => 'brin/numeric_minmax_multi_ops', amproclefttype => 'numeric',
-  amprocrighttype => 'numeric', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/numeric_minmax_multi_ops', amproclefttype => 'numeric',
-  amprocrighttype => 'numeric', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/numeric_minmax_multi_ops', amproclefttype => 'numeric',
-  amprocrighttype => 'numeric', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/numeric_minmax_multi_ops', amproclefttype => 'numeric',
-  amprocrighttype => 'numeric', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/numeric_minmax_multi_ops', amproclefttype => 'numeric',
-  amprocrighttype => 'numeric', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/numeric_minmax_multi_ops', amproclefttype => 'numeric',
-  amprocrighttype => 'numeric', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_numeric' },
-
 # minmax uuid
 { amprocfamily => 'brin/uuid_minmax_ops', amproclefttype => 'uuid',
   amprocrighttype => 'uuid', amprocnum => '1',
@@ -1853,26 +1296,6 @@
   amprocrighttype => 'uuid', amprocnum => '4',
   amproc => 'brin_minmax_union' },
 
-# minmax multi uuid
-{ amprocfamily => 'brin/uuid_minmax_multi_ops', amproclefttype => 'uuid',
-  amprocrighttype => 'uuid', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/uuid_minmax_multi_ops', amproclefttype => 'uuid',
-  amprocrighttype => 'uuid', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/uuid_minmax_multi_ops', amproclefttype => 'uuid',
-  amprocrighttype => 'uuid', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/uuid_minmax_multi_ops', amproclefttype => 'uuid',
-  amprocrighttype => 'uuid', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/uuid_minmax_multi_ops', amproclefttype => 'uuid',
-  amprocrighttype => 'uuid', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/uuid_minmax_multi_ops', amproclefttype => 'uuid',
-  amprocrighttype => 'uuid', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_uuid' },
-
 # inclusion range types
 { amprocfamily => 'brin/range_inclusion_ops', amproclefttype => 'anyrange',
   amprocrighttype => 'anyrange', amprocnum => '1',
@@ -1910,26 +1333,6 @@
   amprocrighttype => 'pg_lsn', amprocnum => '4',
   amproc => 'brin_minmax_union' },
 
-# minmax multi pg_lsn
-{ amprocfamily => 'brin/pg_lsn_minmax_multi_ops', amproclefttype => 'pg_lsn',
-  amprocrighttype => 'pg_lsn', amprocnum => '1',
-  amproc => 'brin_minmax_multi_opcinfo' },
-{ amprocfamily => 'brin/pg_lsn_minmax_multi_ops', amproclefttype => 'pg_lsn',
-  amprocrighttype => 'pg_lsn', amprocnum => '2',
-  amproc => 'brin_minmax_multi_add_value' },
-{ amprocfamily => 'brin/pg_lsn_minmax_multi_ops', amproclefttype => 'pg_lsn',
-  amprocrighttype => 'pg_lsn', amprocnum => '3',
-  amproc => 'brin_minmax_multi_consistent' },
-{ amprocfamily => 'brin/pg_lsn_minmax_multi_ops', amproclefttype => 'pg_lsn',
-  amprocrighttype => 'pg_lsn', amprocnum => '4',
-  amproc => 'brin_minmax_multi_union' },
-{ amprocfamily => 'brin/pg_lsn_minmax_multi_ops', amproclefttype => 'pg_lsn',
-  amprocrighttype => 'pg_lsn', amprocnum => '5',
-  amproc => 'brin_minmax_multi_options' },
-{ amprocfamily => 'brin/pg_lsn_minmax_multi_ops', amproclefttype => 'pg_lsn',
-  amprocrighttype => 'pg_lsn', amprocnum => '11',
-  amproc => 'brin_minmax_multi_distance_pg_lsn' },
-
 # inclusion box
 { amprocfamily => 'brin/box_inclusion_ops', amproclefttype => 'box',
   amprocrighttype => 'box', amprocnum => '1',
diff --git a/src/include/catalog/pg_opclass.dat b/src/include/catalog/pg_opclass.dat
index e510e28655..24b1433e1f 100644
--- a/src/include/catalog/pg_opclass.dat
+++ b/src/include/catalog/pg_opclass.dat
@@ -275,64 +275,34 @@
 { opcmethod => 'brin', opcname => 'int8_minmax_ops',
   opcfamily => 'brin/integer_minmax_ops', opcintype => 'int8',
   opckeytype => 'int8' },
-{ opcmethod => 'brin', opcname => 'int8_minmax_multi_ops',
-  opcfamily => 'brin/integer_minmax_multi_ops', opcintype => 'int8',
-  opckeytype => 'int8', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'int2_minmax_ops',
   opcfamily => 'brin/integer_minmax_ops', opcintype => 'int2',
   opckeytype => 'int2' },
-{ opcmethod => 'brin', opcname => 'int2_minmax_multi_ops',
-  opcfamily => 'brin/integer_minmax_multi_ops', opcintype => 'int2',
-  opckeytype => 'int2', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'int4_minmax_ops',
   opcfamily => 'brin/integer_minmax_ops', opcintype => 'int4',
   opckeytype => 'int4' },
-{ opcmethod => 'brin', opcname => 'int4_minmax_multi_ops',
-  opcfamily => 'brin/integer_minmax_multi_ops', opcintype => 'int4',
-  opckeytype => 'int4', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'text_minmax_ops',
   opcfamily => 'brin/text_minmax_ops', opcintype => 'text',
   opckeytype => 'text' },
 { opcmethod => 'brin', opcname => 'oid_minmax_ops',
   opcfamily => 'brin/oid_minmax_ops', opcintype => 'oid', opckeytype => 'oid' },
-{ opcmethod => 'brin', opcname => 'oid_minmax_multi_ops',
-  opcfamily => 'brin/oid_minmax_multi_ops', opcintype => 'oid',
-  opckeytype => 'oid', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'tid_minmax_ops',
   opcfamily => 'brin/tid_minmax_ops', opcintype => 'tid', opckeytype => 'tid' },
-{ opcmethod => 'brin', opcname => 'tid_minmax_multi_ops',
-  opcfamily => 'brin/tid_minmax_multi_ops', opcintype => 'tid',
-  opckeytype => 'tid', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'float4_minmax_ops',
   opcfamily => 'brin/float_minmax_ops', opcintype => 'float4',
   opckeytype => 'float4' },
-{ opcmethod => 'brin', opcname => 'float4_minmax_multi_ops',
-  opcfamily => 'brin/float_minmax_multi_ops', opcintype => 'float4',
-  opckeytype => 'float4', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'float8_minmax_ops',
   opcfamily => 'brin/float_minmax_ops', opcintype => 'float8',
   opckeytype => 'float8' },
-{ opcmethod => 'brin', opcname => 'float8_minmax_multi_ops',
-  opcfamily => 'brin/float_minmax_multi_ops', opcintype => 'float8',
-  opckeytype => 'float8', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'macaddr_minmax_ops',
   opcfamily => 'brin/macaddr_minmax_ops', opcintype => 'macaddr',
   opckeytype => 'macaddr' },
-{ opcmethod => 'brin', opcname => 'macaddr_minmax_multi_ops',
-  opcfamily => 'brin/macaddr_minmax_multi_ops', opcintype => 'macaddr',
-  opckeytype => 'macaddr', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'macaddr8_minmax_ops',
   opcfamily => 'brin/macaddr8_minmax_ops', opcintype => 'macaddr8',
   opckeytype => 'macaddr8' },
-{ opcmethod => 'brin', opcname => 'macaddr8_minmax_multi_ops',
-  opcfamily => 'brin/macaddr8_minmax_multi_ops', opcintype => 'macaddr8',
-  opckeytype => 'macaddr8', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'inet_minmax_ops',
   opcfamily => 'brin/network_minmax_ops', opcintype => 'inet',
   opcdefault => 'f', opckeytype => 'inet' },
-{ opcmethod => 'brin', opcname => 'inet_minmax_multi_ops',
-  opcfamily => 'brin/network_minmax_multi_ops', opcintype => 'inet',
-  opcdefault => 'f', opckeytype => 'inet', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'inet_inclusion_ops',
   opcfamily => 'brin/network_inclusion_ops', opcintype => 'inet',
   opckeytype => 'inet' },
@@ -342,39 +312,21 @@
 { opcmethod => 'brin', opcname => 'time_minmax_ops',
   opcfamily => 'brin/time_minmax_ops', opcintype => 'time',
   opckeytype => 'time' },
-{ opcmethod => 'brin', opcname => 'time_minmax_multi_ops',
-  opcfamily => 'brin/time_minmax_multi_ops', opcintype => 'time',
-  opckeytype => 'time', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'date_minmax_ops',
   opcfamily => 'brin/datetime_minmax_ops', opcintype => 'date',
   opckeytype => 'date' },
-{ opcmethod => 'brin', opcname => 'date_minmax_multi_ops',
-  opcfamily => 'brin/datetime_minmax_multi_ops', opcintype => 'date',
-  opckeytype => 'date', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'timestamp_minmax_ops',
   opcfamily => 'brin/datetime_minmax_ops', opcintype => 'timestamp',
   opckeytype => 'timestamp' },
-{ opcmethod => 'brin', opcname => 'timestamp_minmax_multi_ops',
-  opcfamily => 'brin/datetime_minmax_multi_ops', opcintype => 'timestamp',
-  opckeytype => 'timestamp', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'timestamptz_minmax_ops',
   opcfamily => 'brin/datetime_minmax_ops', opcintype => 'timestamptz',
   opckeytype => 'timestamptz' },
-{ opcmethod => 'brin', opcname => 'timestamptz_minmax_multi_ops',
-  opcfamily => 'brin/datetime_minmax_multi_ops', opcintype => 'timestamptz',
-  opckeytype => 'timestamptz', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'interval_minmax_ops',
   opcfamily => 'brin/interval_minmax_ops', opcintype => 'interval',
   opckeytype => 'interval' },
-{ opcmethod => 'brin', opcname => 'interval_minmax_multi_ops',
-  opcfamily => 'brin/interval_minmax_multi_ops', opcintype => 'interval',
-  opckeytype => 'interval', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'timetz_minmax_ops',
   opcfamily => 'brin/timetz_minmax_ops', opcintype => 'timetz',
   opckeytype => 'timetz' },
-{ opcmethod => 'brin', opcname => 'timetz_minmax_multi_ops',
-  opcfamily => 'brin/timetz_minmax_multi_ops', opcintype => 'timetz',
-  opckeytype => 'timetz', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'bit_minmax_ops',
   opcfamily => 'brin/bit_minmax_ops', opcintype => 'bit', opckeytype => 'bit' },
 { opcmethod => 'brin', opcname => 'varbit_minmax_ops',
@@ -383,27 +335,18 @@
 { opcmethod => 'brin', opcname => 'numeric_minmax_ops',
   opcfamily => 'brin/numeric_minmax_ops', opcintype => 'numeric',
   opckeytype => 'numeric' },
-{ opcmethod => 'brin', opcname => 'numeric_minmax_multi_ops',
-  opcfamily => 'brin/numeric_minmax_multi_ops', opcintype => 'numeric',
-  opckeytype => 'numeric', opcdefault => 'f' },
 
 # no brin opclass for record, anyarray
 
 { opcmethod => 'brin', opcname => 'uuid_minmax_ops',
   opcfamily => 'brin/uuid_minmax_ops', opcintype => 'uuid',
   opckeytype => 'uuid' },
-{ opcmethod => 'brin', opcname => 'uuid_minmax_multi_ops',
-  opcfamily => 'brin/uuid_minmax_multi_ops', opcintype => 'uuid',
-  opckeytype => 'uuid', opcdefault => 'f' },
 { opcmethod => 'brin', opcname => 'range_inclusion_ops',
   opcfamily => 'brin/range_inclusion_ops', opcintype => 'anyrange',
   opckeytype => 'anyrange' },
 { opcmethod => 'brin', opcname => 'pg_lsn_minmax_ops',
   opcfamily => 'brin/pg_lsn_minmax_ops', opcintype => 'pg_lsn',
   opckeytype => 'pg_lsn' },
-{ opcmethod => 'brin', opcname => 'pg_lsn_minmax_multi_ops',
-  opcfamily => 'brin/pg_lsn_minmax_multi_ops', opcintype => 'pg_lsn',
-  opckeytype => 'pg_lsn', opcdefault => 'f' },
 
 # no brin opclass for enum, tsvector, tsquery, jsonb
 
diff --git a/src/include/catalog/pg_opfamily.dat b/src/include/catalog/pg_opfamily.dat
index 6218eade08..57e5aa0d8b 100644
--- a/src/include/catalog/pg_opfamily.dat
+++ b/src/include/catalog/pg_opfamily.dat
@@ -182,22 +182,14 @@
   opfmethod => 'gin', opfname => 'jsonb_path_ops' },
 { oid => '4054',
   opfmethod => 'brin', opfname => 'integer_minmax_ops' },
-{ oid => '4602',
-  opfmethod => 'brin', opfname => 'integer_minmax_multi_ops' },
 { oid => '4055',
   opfmethod => 'brin', opfname => 'numeric_minmax_ops' },
-{ oid => '4603',
-  opfmethod => 'brin', opfname => 'numeric_minmax_multi_ops' },
 { oid => '4056',
   opfmethod => 'brin', opfname => 'text_minmax_ops' },
 { oid => '4058',
   opfmethod => 'brin', opfname => 'timetz_minmax_ops' },
-{ oid => '4604',
-  opfmethod => 'brin', opfname => 'timetz_minmax_multi_ops' },
 { oid => '4059',
   opfmethod => 'brin', opfname => 'datetime_minmax_ops' },
-{ oid => '4605',
-  opfmethod => 'brin', opfname => 'datetime_minmax_multi_ops' },
 { oid => '4062',
   opfmethod => 'brin', opfname => 'char_minmax_ops' },
 { oid => '4064',
@@ -206,54 +198,34 @@
   opfmethod => 'brin', opfname => 'name_minmax_ops' },
 { oid => '4068',
   opfmethod => 'brin', opfname => 'oid_minmax_ops' },
-{ oid => '4606',
-  opfmethod => 'brin', opfname => 'oid_minmax_multi_ops' },
 { oid => '4069',
   opfmethod => 'brin', opfname => 'tid_minmax_ops' },
-{ oid => '4607',
-  opfmethod => 'brin', opfname => 'tid_minmax_multi_ops' },
 { oid => '4070',
   opfmethod => 'brin', opfname => 'float_minmax_ops' },
-{ oid => '4608',
-  opfmethod => 'brin', opfname => 'float_minmax_multi_ops' },
 { oid => '4074',
   opfmethod => 'brin', opfname => 'macaddr_minmax_ops' },
-{ oid => '4609',
-  opfmethod => 'brin', opfname => 'macaddr_minmax_multi_ops' },
 { oid => '4109',
   opfmethod => 'brin', opfname => 'macaddr8_minmax_ops' },
-{ oid => '4610',
-  opfmethod => 'brin', opfname => 'macaddr8_minmax_multi_ops' },
 { oid => '4075',
   opfmethod => 'brin', opfname => 'network_minmax_ops' },
-{ oid => '4611',
-  opfmethod => 'brin', opfname => 'network_minmax_multi_ops' },
 { oid => '4102',
   opfmethod => 'brin', opfname => 'network_inclusion_ops' },
 { oid => '4076',
   opfmethod => 'brin', opfname => 'bpchar_minmax_ops' },
 { oid => '4077',
   opfmethod => 'brin', opfname => 'time_minmax_ops' },
-{ oid => '4612',
-  opfmethod => 'brin', opfname => 'time_minmax_multi_ops' },
 { oid => '4078',
   opfmethod => 'brin', opfname => 'interval_minmax_ops' },
-{ oid => '4613',
-  opfmethod => 'brin', opfname => 'interval_minmax_multi_ops' },
 { oid => '4079',
   opfmethod => 'brin', opfname => 'bit_minmax_ops' },
 { oid => '4080',
   opfmethod => 'brin', opfname => 'varbit_minmax_ops' },
 { oid => '4081',
   opfmethod => 'brin', opfname => 'uuid_minmax_ops' },
-{ oid => '4614',
-  opfmethod => 'brin', opfname => 'uuid_minmax_multi_ops' },
 { oid => '4103',
   opfmethod => 'brin', opfname => 'range_inclusion_ops' },
 { oid => '4082',
   opfmethod => 'brin', opfname => 'pg_lsn_minmax_ops' },
-{ oid => '4615',
-  opfmethod => 'brin', opfname => 'pg_lsn_minmax_multi_ops' },
 { oid => '4104',
   opfmethod => 'brin', opfname => 'box_inclusion_ops' },
 { oid => '5000',
diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat
index cb7d421d5a..ca240cef1a 100644
--- a/src/include/catalog/pg_proc.dat
+++ b/src/include/catalog/pg_proc.dat
@@ -8221,76 +8221,7 @@
   proname => 'brin_minmax_union', prorettype => 'bool',
   proargtypes => 'internal internal internal', prosrc => 'brin_minmax_union' },
 
-# BRIN minmax multi
-{ oid => '4616', descr => 'BRIN multi minmax support',
-  proname => 'brin_minmax_multi_opcinfo', prorettype => 'internal',
-  proargtypes => 'internal', prosrc => 'brin_minmax_multi_opcinfo' },
-{ oid => '4617', descr => 'BRIN multi minmax support',
-  proname => 'brin_minmax_multi_add_value', prorettype => 'bool',
-  proargtypes => 'internal internal internal internal',
-  prosrc => 'brin_minmax_multi_add_value' },
-{ oid => '4618', descr => 'BRIN multi minmax support',
-  proname => 'brin_minmax_multi_consistent', prorettype => 'bool',
-  proargtypes => 'internal internal internal int4',
-  prosrc => 'brin_minmax_multi_consistent' },
-{ oid => '4619', descr => 'BRIN multi minmax support',
-  proname => 'brin_minmax_multi_union', prorettype => 'bool',
-  proargtypes => 'internal internal internal', prosrc => 'brin_minmax_multi_union' },
-{ oid => '4620', descr => 'BRIN multi minmax support',
-  proname => 'brin_minmax_multi_options', prorettype => 'void', proisstrict => 'f',
-  proargtypes => 'internal', prosrc => 'brin_minmax_multi_options' },
-
-{ oid => '4621', descr => 'BRIN multi minmax int2 distance',
-  proname => 'brin_minmax_multi_distance_int2', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_int2' },
-{ oid => '4622', descr => 'BRIN multi minmax int4 distance',
-  proname => 'brin_minmax_multi_distance_int4', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_int4' },
-{ oid => '4623', descr => 'BRIN multi minmax int8 distance',
-  proname => 'brin_minmax_multi_distance_int8', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_int8' },
-{ oid => '4624', descr => 'BRIN multi minmax float4 distance',
-  proname => 'brin_minmax_multi_distance_float4', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_float4' },
-{ oid => '4625', descr => 'BRIN multi minmax float8 distance',
-  proname => 'brin_minmax_multi_distance_float8', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_float8' },
-{ oid => '4626', descr => 'BRIN multi minmax numeric distance',
-  proname => 'brin_minmax_multi_distance_numeric', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_numeric' },
-{ oid => '4627', descr => 'BRIN multi minmax tid distance',
-  proname => 'brin_minmax_multi_distance_tid', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_tid' },
-{ oid => '4628', descr => 'BRIN multi minmax uuid distance',
-  proname => 'brin_minmax_multi_distance_uuid', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_uuid' },
-{ oid => '4629', descr => 'BRIN multi minmax date distance',
-  proname => 'brin_minmax_multi_distance_date', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_date' },
-{ oid => '4630', descr => 'BRIN multi minmax time distance',
-  proname => 'brin_minmax_multi_distance_time', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_time' },
-{ oid => '4631', descr => 'BRIN multi minmax interval distance',
-  proname => 'brin_minmax_multi_distance_interval', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_interval' },
-{ oid => '4632', descr => 'BRIN multi minmax timetz distance',
-  proname => 'brin_minmax_multi_distance_timetz', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_timetz' },
-{ oid => '4633', descr => 'BRIN multi minmax pg_lsn distance',
-  proname => 'brin_minmax_multi_distance_pg_lsn', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_pg_lsn' },
-{ oid => '4634', descr => 'BRIN multi minmax macaddr distance',
-  proname => 'brin_minmax_multi_distance_macaddr', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_macaddr' },
-{ oid => '4635', descr => 'BRIN multi minmax macaddr8 distance',
-  proname => 'brin_minmax_multi_distance_macaddr8', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_macaddr8' },
-{ oid => '4636', descr => 'BRIN multi minmax inet distance',
-  proname => 'brin_minmax_multi_distance_inet', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_inet' },
-{ oid => '4637', descr => 'BRIN multi minmax timestamp distance',
-  proname => 'brin_minmax_multi_distance_timestamp', prorettype => 'float8',
-  proargtypes => 'internal internal', prosrc => 'brin_minmax_multi_distance_timestamp' },
+
 
 # BRIN inclusion
 { oid => '4105', descr => 'BRIN inclusion support',
@@ -11482,18 +11413,4 @@
   proname => 'is_normalized', prorettype => 'bool', proargtypes => 'text text',
   prosrc => 'unicode_is_normalized' },
 
-{ oid => '4638', descr => 'I/O',
-  proname => 'brin_minmax_multi_summary_in', prorettype => 'pg_brin_minmax_multi_summary',
-  proargtypes => 'cstring', prosrc => 'brin_minmax_multi_summary_in' },
-{ oid => '4639', descr => 'I/O',
-  proname => 'brin_minmax_multi_summary_out', prorettype => 'cstring',
-  proargtypes => 'pg_brin_minmax_multi_summary', prosrc => 'brin_minmax_multi_summary_out' },
-{ oid => '4640', descr => 'I/O',
-  proname => 'brin_minmax_multi_summary_recv', provolatile => 's',
-  prorettype => 'pg_brin_minmax_multi_summary', proargtypes => 'internal',
-  prosrc => 'brin_minmax_multi_summary_recv' },
-{ oid => '4641', descr => 'I/O',
-  proname => 'brin_minmax_multi_summary_send', provolatile => 's', prorettype => 'bytea',
-  proargtypes => 'pg_brin_minmax_multi_summary', prosrc => 'brin_minmax_multi_summary_send' },
-
 ]
diff --git a/src/include/catalog/pg_type.dat b/src/include/catalog/pg_type.dat
index 387d25d66a..920dbbbfeb 100644
--- a/src/include/catalog/pg_type.dat
+++ b/src/include/catalog/pg_type.dat
@@ -679,10 +679,4 @@
   typtype => 'p', typcategory => 'P', typinput => 'anycompatiblemultirange_in',
   typoutput => 'anycompatiblemultirange_out', typreceive => '-', typsend => '-',
   typalign => 'd', typstorage => 'x' },
-{ oid => '4601',
-  descr => 'BRIN minmax-multi summary',
-  typname => 'pg_brin_minmax_multi_summary', typlen => '-1', typbyval => 'f', typcategory => 'S',
-  typinput => 'brin_minmax_multi_summary_in', typoutput => 'brin_minmax_multi_summary_out',
-  typreceive => 'brin_minmax_multi_summary_recv', typsend => 'brin_minmax_multi_summary_send',
-  typalign => 'i', typstorage => 'x', typcollation => 'default' },
 ]
diff --git a/src/test/regress/expected/psql.out b/src/test/regress/expected/psql.out
index ee45e37b84..7204fdb0b4 100644
--- a/src/test/regress/expected/psql.out
+++ b/src/test/regress/expected/psql.out
@@ -4990,12 +4990,11 @@ List of access methods
 (0 rows)
 
 \dAc brin pg*.oid*
-                      List of operator classes
-  AM  | Input type | Storage type |    Operator class    | Default? 
-------+------------+--------------+----------------------+----------
- brin | oid        |              | oid_minmax_multi_ops | no
- brin | oid        |              | oid_minmax_ops       | yes
-(2 rows)
+                   List of operator classes
+  AM  | Input type | Storage type | Operator class | Default? 
+------+------------+--------------+----------------+----------
+ brin | oid        |              | oid_minmax_ops | yes
+(1 row)
 
 \dAf spgist
           List of operator families
diff --git a/src/test/regress/expected/type_sanity.out b/src/test/regress/expected/type_sanity.out
index 26f4b6097b..0c74dc96a8 100644
--- a/src/test/regress/expected/type_sanity.out
+++ b/src/test/regress/expected/type_sanity.out
@@ -67,14 +67,13 @@ WHERE p1.typtype not in ('p') AND p1.typname NOT LIKE E'\\_%'
      WHERE p2.typname = ('_' || p1.typname)::name AND
            p2.typelem = p1.oid and p1.typarray = p2.oid)
 ORDER BY p1.oid;
- oid  |           typname            
-------+------------------------------
+ oid  |     typname     
+------+-----------------
   194 | pg_node_tree
  3361 | pg_ndistinct
  3402 | pg_dependencies
- 4601 | pg_brin_minmax_multi_summary
  5017 | pg_mcv_list
-(5 rows)
+(4 rows)
 
 -- Make sure typarray points to a "true" array type of our own base
 SELECT p1.oid, p1.typname as basetype, p2.typname as arraytype,
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 1c6bbfcf54..70c38309d7 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -77,11 +77,6 @@ test: select_into select_distinct select_distinct_on select_implicit select_havi
 # ----------
 test: brin gin gist spgist privileges init_privs security_label collate matview lock replica_identity rowsecurity object_address tablesample groupingsets drop_operator password identity generated join_hash
 
-# ----------
-# Additional BRIN tests
-# ----------
-test: brin_multi
-
 # ----------
 # Another group of parallel tests
 # ----------
diff --git a/src/test/regress/serial_schedule b/src/test/regress/serial_schedule
index dd3f3a9f0b..d81d04136c 100644
--- a/src/test/regress/serial_schedule
+++ b/src/test/regress/serial_schedule
@@ -108,7 +108,6 @@ test: delete
 test: namespace
 test: prepared_xacts
 test: brin
-test: brin_multi
 test: gin
 test: gist
 test: spgist
-- 
2.30.2

