The entry with OID 4035, for GIST jsonb_ops, is unused; apparently
it was added in preparation for index support that never materialized.
Remove it, and add a regression test case to detect future mistakes
of the same kind.
Discussion: https://postgr.es/m/17188.
1541379745@sss.pgh.pa.us
*/
/* yyyymmddN */
-#define CATALOG_VERSION_NO 201811012
+#define CATALOG_VERSION_NO 201811051
#endif
opfmethod => 'btree', opfname => 'jsonb_ops' },
{ oid => '4034',
opfmethod => 'hash', opfname => 'jsonb_ops' },
-{ oid => '4035',
- opfmethod => 'gist', opfname => 'jsonb_ops' },
{ oid => '4036',
opfmethod => 'gin', opfname => 'jsonb_ops' },
{ oid => '4037',
-----
(0 rows)
+-- Look for opfamilies having no opclasses. While most validation of
+-- opfamilies is now handled by AM-specific amvalidate functions, that's
+-- driven from pg_opclass entries below, so an empty opfamily would not
+-- get noticed.
+SELECT oid, opfname FROM pg_opfamily f
+WHERE NOT EXISTS (SELECT 1 FROM pg_opclass WHERE opcfamily = f.oid);
+ oid | opfname
+-----+---------
+(0 rows)
+
-- **************** pg_opclass ****************
-- Look for illegal values in pg_opclass fields
SELECT p1.oid
FROM pg_opfamily as p1
WHERE p1.opfmethod = 0 OR p1.opfnamespace = 0;
+-- Look for opfamilies having no opclasses. While most validation of
+-- opfamilies is now handled by AM-specific amvalidate functions, that's
+-- driven from pg_opclass entries below, so an empty opfamily would not
+-- get noticed.
+
+SELECT oid, opfname FROM pg_opfamily f
+WHERE NOT EXISTS (SELECT 1 FROM pg_opclass WHERE opcfamily = f.oid);
+
-- **************** pg_opclass ****************