pg_opclass.dat 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491
  1. #----------------------------------------------------------------------
  2. #
  3. # pg_opclass.dat
  4. # Initial contents of the pg_opclass system catalog.
  5. #
  6. # Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
  7. # Portions Copyright (c) 1994, Regents of the University of California
  8. #
  9. # src/include/catalog/pg_opclass.dat
  10. #
  11. #----------------------------------------------------------------------
  12. [
  13. # Note: we hard-wire an OID only for a few entries that have to be explicitly
  14. # referenced in the C code or in built-in catalog entries. The rest get OIDs
  15. # assigned on-the-fly during initdb.
  16. { opcmethod => 'btree', opcname => 'array_ops', opcfamily => 'btree/array_ops',
  17. opcintype => 'anyarray' },
  18. { opcmethod => 'hash', opcname => 'array_ops', opcfamily => 'hash/array_ops',
  19. opcintype => 'anyarray' },
  20. { opcmethod => 'btree', opcname => 'bit_ops', opcfamily => 'btree/bit_ops',
  21. opcintype => 'bit' },
  22. { opcmethod => 'btree', opcname => 'bool_ops', opcfamily => 'btree/bool_ops',
  23. opcintype => 'bool' },
  24. { opcmethod => 'btree', opcname => 'bpchar_ops',
  25. opcfamily => 'btree/bpchar_ops', opcintype => 'bpchar' },
  26. { opcmethod => 'hash', opcname => 'bpchar_ops', opcfamily => 'hash/bpchar_ops',
  27. opcintype => 'bpchar' },
  28. { opcmethod => 'btree', opcname => 'bytea_ops', opcfamily => 'btree/bytea_ops',
  29. opcintype => 'bytea' },
  30. { opcmethod => 'btree', opcname => 'char_ops', opcfamily => 'btree/char_ops',
  31. opcintype => 'char' },
  32. { opcmethod => 'hash', opcname => 'char_ops', opcfamily => 'hash/char_ops',
  33. opcintype => 'char' },
  34. { opcmethod => 'btree', opcname => 'cidr_ops', opcfamily => 'btree/network_ops',
  35. opcintype => 'inet', opcdefault => 'f' },
  36. { opcmethod => 'hash', opcname => 'cidr_ops', opcfamily => 'hash/network_ops',
  37. opcintype => 'inet', opcdefault => 'f' },
  38. { oid => '3122', oid_symbol => 'DATE_BTREE_OPS_OID',
  39. opcmethod => 'btree', opcname => 'date_ops',
  40. opcfamily => 'btree/datetime_ops', opcintype => 'date' },
  41. { opcmethod => 'hash', opcname => 'date_ops', opcfamily => 'hash/date_ops',
  42. opcintype => 'date' },
  43. { opcmethod => 'btree', opcname => 'float4_ops', opcfamily => 'btree/float_ops',
  44. opcintype => 'float4' },
  45. { opcmethod => 'hash', opcname => 'float4_ops', opcfamily => 'hash/float_ops',
  46. opcintype => 'float4' },
  47. { oid => '3123', oid_symbol => 'FLOAT8_BTREE_OPS_OID',
  48. opcmethod => 'btree', opcname => 'float8_ops', opcfamily => 'btree/float_ops',
  49. opcintype => 'float8' },
  50. { opcmethod => 'hash', opcname => 'float8_ops', opcfamily => 'hash/float_ops',
  51. opcintype => 'float8' },
  52. { opcmethod => 'btree', opcname => 'inet_ops', opcfamily => 'btree/network_ops',
  53. opcintype => 'inet' },
  54. { opcmethod => 'hash', opcname => 'inet_ops', opcfamily => 'hash/network_ops',
  55. opcintype => 'inet' },
  56. { opcmethod => 'gist', opcname => 'inet_ops', opcfamily => 'gist/network_ops',
  57. opcintype => 'inet', opcdefault => 'f' },
  58. { opcmethod => 'spgist', opcname => 'inet_ops',
  59. opcfamily => 'spgist/network_ops', opcintype => 'inet' },
  60. { oid => '1979', oid_symbol => 'INT2_BTREE_OPS_OID',
  61. opcmethod => 'btree', opcname => 'int2_ops', opcfamily => 'btree/integer_ops',
  62. opcintype => 'int2' },
  63. { opcmethod => 'hash', opcname => 'int2_ops', opcfamily => 'hash/integer_ops',
  64. opcintype => 'int2' },
  65. { oid => '1978', oid_symbol => 'INT4_BTREE_OPS_OID',
  66. opcmethod => 'btree', opcname => 'int4_ops', opcfamily => 'btree/integer_ops',
  67. opcintype => 'int4' },
  68. { opcmethod => 'hash', opcname => 'int4_ops', opcfamily => 'hash/integer_ops',
  69. opcintype => 'int4' },
  70. { oid => '3124', oid_symbol => 'INT8_BTREE_OPS_OID',
  71. opcmethod => 'btree', opcname => 'int8_ops', opcfamily => 'btree/integer_ops',
  72. opcintype => 'int8' },
  73. { opcmethod => 'hash', opcname => 'int8_ops', opcfamily => 'hash/integer_ops',
  74. opcintype => 'int8' },
  75. { opcmethod => 'btree', opcname => 'interval_ops',
  76. opcfamily => 'btree/interval_ops', opcintype => 'interval' },
  77. { opcmethod => 'hash', opcname => 'interval_ops',
  78. opcfamily => 'hash/interval_ops', opcintype => 'interval' },
  79. { opcmethod => 'btree', opcname => 'macaddr_ops',
  80. opcfamily => 'btree/macaddr_ops', opcintype => 'macaddr' },
  81. { opcmethod => 'hash', opcname => 'macaddr_ops',
  82. opcfamily => 'hash/macaddr_ops', opcintype => 'macaddr' },
  83. { opcmethod => 'btree', opcname => 'macaddr8_ops',
  84. opcfamily => 'btree/macaddr8_ops', opcintype => 'macaddr8' },
  85. { opcmethod => 'hash', opcname => 'macaddr8_ops',
  86. opcfamily => 'hash/macaddr8_ops', opcintype => 'macaddr8' },
  87. # Here's an ugly little hack to save space in the system catalog indexes.
  88. # btree doesn't ordinarily allow a storage type different from input type;
  89. # but cstring and name are the same thing except for trailing padding,
  90. # so we choose to omit that within an index entry. Here we declare the
  91. # btree opclass for name as using cstring storage type. This does require
  92. # that we pad the cstring out with the full NAMEDATALEN bytes when performing
  93. # index-only scans. See corresponding hacks in ExecInitIndexOnlyScan() and
  94. # StoreIndexTuple().
  95. { opcmethod => 'btree', opcname => 'name_ops', opcfamily => 'btree/text_ops',
  96. opcintype => 'name', opckeytype => 'cstring' },
  97. { opcmethod => 'hash', opcname => 'name_ops', opcfamily => 'hash/text_ops',
  98. opcintype => 'name' },
  99. { oid => '3125', oid_symbol => 'NUMERIC_BTREE_OPS_OID',
  100. opcmethod => 'btree', opcname => 'numeric_ops',
  101. opcfamily => 'btree/numeric_ops', opcintype => 'numeric' },
  102. { opcmethod => 'hash', opcname => 'numeric_ops',
  103. opcfamily => 'hash/numeric_ops', opcintype => 'numeric' },
  104. { oid => '1981', oid_symbol => 'OID_BTREE_OPS_OID',
  105. opcmethod => 'btree', opcname => 'oid_ops', opcfamily => 'btree/oid_ops',
  106. opcintype => 'oid' },
  107. { opcmethod => 'hash', opcname => 'oid_ops', opcfamily => 'hash/oid_ops',
  108. opcintype => 'oid' },
  109. { opcmethod => 'btree', opcname => 'oidvector_ops',
  110. opcfamily => 'btree/oidvector_ops', opcintype => 'oidvector' },
  111. { opcmethod => 'hash', opcname => 'oidvector_ops',
  112. opcfamily => 'hash/oidvector_ops', opcintype => 'oidvector' },
  113. { opcmethod => 'btree', opcname => 'record_ops',
  114. opcfamily => 'btree/record_ops', opcintype => 'record' },
  115. { opcmethod => 'hash', opcname => 'record_ops', opcfamily => 'hash/record_ops',
  116. opcintype => 'record' },
  117. { opcmethod => 'btree', opcname => 'record_image_ops',
  118. opcfamily => 'btree/record_image_ops', opcintype => 'record',
  119. opcdefault => 'f' },
  120. { oid => '3126', oid_symbol => 'TEXT_BTREE_OPS_OID',
  121. opcmethod => 'btree', opcname => 'text_ops', opcfamily => 'btree/text_ops',
  122. opcintype => 'text' },
  123. { opcmethod => 'hash', opcname => 'text_ops', opcfamily => 'hash/text_ops',
  124. opcintype => 'text' },
  125. { opcmethod => 'btree', opcname => 'time_ops', opcfamily => 'btree/time_ops',
  126. opcintype => 'time' },
  127. { opcmethod => 'hash', opcname => 'time_ops', opcfamily => 'hash/time_ops',
  128. opcintype => 'time' },
  129. { oid => '3127', oid_symbol => 'TIMESTAMPTZ_BTREE_OPS_OID',
  130. opcmethod => 'btree', opcname => 'timestamptz_ops',
  131. opcfamily => 'btree/datetime_ops', opcintype => 'timestamptz' },
  132. { opcmethod => 'hash', opcname => 'timestamptz_ops',
  133. opcfamily => 'hash/timestamptz_ops', opcintype => 'timestamptz' },
  134. { opcmethod => 'btree', opcname => 'timetz_ops',
  135. opcfamily => 'btree/timetz_ops', opcintype => 'timetz' },
  136. { opcmethod => 'hash', opcname => 'timetz_ops', opcfamily => 'hash/timetz_ops',
  137. opcintype => 'timetz' },
  138. { opcmethod => 'btree', opcname => 'varbit_ops',
  139. opcfamily => 'btree/varbit_ops', opcintype => 'varbit' },
  140. { opcmethod => 'btree', opcname => 'varchar_ops', opcfamily => 'btree/text_ops',
  141. opcintype => 'text', opcdefault => 'f' },
  142. { opcmethod => 'hash', opcname => 'varchar_ops', opcfamily => 'hash/text_ops',
  143. opcintype => 'text', opcdefault => 'f' },
  144. { oid => '3128', oid_symbol => 'TIMESTAMP_BTREE_OPS_OID',
  145. opcmethod => 'btree', opcname => 'timestamp_ops',
  146. opcfamily => 'btree/datetime_ops', opcintype => 'timestamp' },
  147. { opcmethod => 'hash', opcname => 'timestamp_ops',
  148. opcfamily => 'hash/timestamp_ops', opcintype => 'timestamp' },
  149. { oid => '4217', oid_symbol => 'TEXT_BTREE_PATTERN_OPS_OID',
  150. opcmethod => 'btree', opcname => 'text_pattern_ops',
  151. opcfamily => 'btree/text_pattern_ops', opcintype => 'text',
  152. opcdefault => 'f' },
  153. { oid => '4218', oid_symbol => 'VARCHAR_BTREE_PATTERN_OPS_OID',
  154. opcmethod => 'btree', opcname => 'varchar_pattern_ops',
  155. opcfamily => 'btree/text_pattern_ops', opcintype => 'text',
  156. opcdefault => 'f' },
  157. { oid => '4219', oid_symbol => 'BPCHAR_BTREE_PATTERN_OPS_OID',
  158. opcmethod => 'btree', opcname => 'bpchar_pattern_ops',
  159. opcfamily => 'btree/bpchar_pattern_ops', opcintype => 'bpchar',
  160. opcdefault => 'f' },
  161. { opcmethod => 'btree', opcname => 'money_ops', opcfamily => 'btree/money_ops',
  162. opcintype => 'money' },
  163. { opcmethod => 'hash', opcname => 'bool_ops', opcfamily => 'hash/bool_ops',
  164. opcintype => 'bool' },
  165. { opcmethod => 'hash', opcname => 'bytea_ops', opcfamily => 'hash/bytea_ops',
  166. opcintype => 'bytea' },
  167. { opcmethod => 'btree', opcname => 'tid_ops', opcfamily => 'btree/tid_ops',
  168. opcintype => 'tid' },
  169. { opcmethod => 'hash', opcname => 'xid_ops', opcfamily => 'hash/xid_ops',
  170. opcintype => 'xid' },
  171. { opcmethod => 'hash', opcname => 'xid8_ops', opcfamily => 'hash/xid8_ops',
  172. opcintype => 'xid8' },
  173. { opcmethod => 'btree', opcname => 'xid8_ops', opcfamily => 'btree/xid8_ops',
  174. opcintype => 'xid8' },
  175. { opcmethod => 'hash', opcname => 'cid_ops', opcfamily => 'hash/cid_ops',
  176. opcintype => 'cid' },
  177. { opcmethod => 'hash', opcname => 'tid_ops', opcfamily => 'hash/tid_ops',
  178. opcintype => 'tid' },
  179. { opcmethod => 'hash', opcname => 'text_pattern_ops',
  180. opcfamily => 'hash/text_pattern_ops', opcintype => 'text',
  181. opcdefault => 'f' },
  182. { opcmethod => 'hash', opcname => 'varchar_pattern_ops',
  183. opcfamily => 'hash/text_pattern_ops', opcintype => 'text',
  184. opcdefault => 'f' },
  185. { opcmethod => 'hash', opcname => 'bpchar_pattern_ops',
  186. opcfamily => 'hash/bpchar_pattern_ops', opcintype => 'bpchar',
  187. opcdefault => 'f' },
  188. { opcmethod => 'hash', opcname => 'aclitem_ops',
  189. opcfamily => 'hash/aclitem_ops', opcintype => 'aclitem' },
  190. { opcmethod => 'gist', opcname => 'box_ops', opcfamily => 'gist/box_ops',
  191. opcintype => 'box' },
  192. { opcmethod => 'gist', opcname => 'point_ops', opcfamily => 'gist/point_ops',
  193. opcintype => 'point', opckeytype => 'box' },
  194. { opcmethod => 'gist', opcname => 'poly_ops', opcfamily => 'gist/poly_ops',
  195. opcintype => 'polygon', opckeytype => 'box' },
  196. { opcmethod => 'gist', opcname => 'circle_ops', opcfamily => 'gist/circle_ops',
  197. opcintype => 'circle', opckeytype => 'box' },
  198. { opcmethod => 'gin', opcname => 'array_ops', opcfamily => 'gin/array_ops',
  199. opcintype => 'anyarray', opckeytype => 'anyelement' },
  200. { opcmethod => 'btree', opcname => 'uuid_ops', opcfamily => 'btree/uuid_ops',
  201. opcintype => 'uuid' },
  202. { opcmethod => 'hash', opcname => 'uuid_ops', opcfamily => 'hash/uuid_ops',
  203. opcintype => 'uuid' },
  204. { opcmethod => 'btree', opcname => 'pg_lsn_ops',
  205. opcfamily => 'btree/pg_lsn_ops', opcintype => 'pg_lsn' },
  206. { opcmethod => 'hash', opcname => 'pg_lsn_ops', opcfamily => 'hash/pg_lsn_ops',
  207. opcintype => 'pg_lsn' },
  208. { opcmethod => 'btree', opcname => 'enum_ops', opcfamily => 'btree/enum_ops',
  209. opcintype => 'anyenum' },
  210. { opcmethod => 'hash', opcname => 'enum_ops', opcfamily => 'hash/enum_ops',
  211. opcintype => 'anyenum' },
  212. { opcmethod => 'btree', opcname => 'tsvector_ops',
  213. opcfamily => 'btree/tsvector_ops', opcintype => 'tsvector' },
  214. { opcmethod => 'gist', opcname => 'tsvector_ops',
  215. opcfamily => 'gist/tsvector_ops', opcintype => 'tsvector',
  216. opckeytype => 'gtsvector' },
  217. { opcmethod => 'gin', opcname => 'tsvector_ops',
  218. opcfamily => 'gin/tsvector_ops', opcintype => 'tsvector',
  219. opckeytype => 'text' },
  220. { opcmethod => 'btree', opcname => 'tsquery_ops',
  221. opcfamily => 'btree/tsquery_ops', opcintype => 'tsquery' },
  222. { opcmethod => 'gist', opcname => 'tsquery_ops',
  223. opcfamily => 'gist/tsquery_ops', opcintype => 'tsquery',
  224. opckeytype => 'int8' },
  225. { opcmethod => 'btree', opcname => 'range_ops', opcfamily => 'btree/range_ops',
  226. opcintype => 'anyrange' },
  227. { opcmethod => 'hash', opcname => 'range_ops', opcfamily => 'hash/range_ops',
  228. opcintype => 'anyrange' },
  229. { opcmethod => 'gist', opcname => 'range_ops', opcfamily => 'gist/range_ops',
  230. opcintype => 'anyrange' },
  231. { opcmethod => 'spgist', opcname => 'range_ops',
  232. opcfamily => 'spgist/range_ops', opcintype => 'anyrange' },
  233. { opcmethod => 'btree', opcname => 'multirange_ops',
  234. opcfamily => 'btree/multirange_ops', opcintype => 'anymultirange' },
  235. { opcmethod => 'hash', opcname => 'multirange_ops',
  236. opcfamily => 'hash/multirange_ops', opcintype => 'anymultirange' },
  237. { opcmethod => 'gist', opcname => 'multirange_ops',
  238. opcfamily => 'gist/multirange_ops', opcintype => 'anymultirange',
  239. opckeytype => 'anyrange' },
  240. { opcmethod => 'spgist', opcname => 'box_ops', opcfamily => 'spgist/box_ops',
  241. opcintype => 'box' },
  242. { opcmethod => 'spgist', opcname => 'quad_point_ops',
  243. opcfamily => 'spgist/quad_point_ops', opcintype => 'point' },
  244. { opcmethod => 'spgist', opcname => 'kd_point_ops',
  245. opcfamily => 'spgist/kd_point_ops', opcintype => 'point', opcdefault => 'f' },
  246. { opcmethod => 'spgist', opcname => 'text_ops', opcfamily => 'spgist/text_ops',
  247. opcintype => 'text' },
  248. { opcmethod => 'spgist', opcname => 'poly_ops', opcfamily => 'spgist/poly_ops',
  249. opcintype => 'polygon', opckeytype => 'box' },
  250. { opcmethod => 'btree', opcname => 'jsonb_ops', opcfamily => 'btree/jsonb_ops',
  251. opcintype => 'jsonb' },
  252. { opcmethod => 'hash', opcname => 'jsonb_ops', opcfamily => 'hash/jsonb_ops',
  253. opcintype => 'jsonb' },
  254. { opcmethod => 'gin', opcname => 'jsonb_ops', opcfamily => 'gin/jsonb_ops',
  255. opcintype => 'jsonb', opckeytype => 'text' },
  256. { opcmethod => 'gin', opcname => 'jsonb_path_ops',
  257. opcfamily => 'gin/jsonb_path_ops', opcintype => 'jsonb', opcdefault => 'f',
  258. opckeytype => 'int4' },
  259. # BRIN operator classes
  260. # no brin opclass for bool
  261. { opcmethod => 'brin', opcname => 'bytea_minmax_ops',
  262. opcfamily => 'brin/bytea_minmax_ops', opcintype => 'bytea',
  263. opckeytype => 'bytea' },
  264. { opcmethod => 'brin', opcname => 'bytea_bloom_ops',
  265. opcfamily => 'brin/bytea_bloom_ops', opcintype => 'bytea', opcdefault => 'f',
  266. opckeytype => 'bytea' },
  267. { opcmethod => 'brin', opcname => 'char_minmax_ops',
  268. opcfamily => 'brin/char_minmax_ops', opcintype => 'char',
  269. opckeytype => 'char' },
  270. { opcmethod => 'brin', opcname => 'char_bloom_ops',
  271. opcfamily => 'brin/char_bloom_ops', opcintype => 'char', opcdefault => 'f',
  272. opckeytype => 'char' },
  273. { opcmethod => 'brin', opcname => 'name_minmax_ops',
  274. opcfamily => 'brin/name_minmax_ops', opcintype => 'name',
  275. opckeytype => 'name' },
  276. { opcmethod => 'brin', opcname => 'name_bloom_ops',
  277. opcfamily => 'brin/name_bloom_ops', opcintype => 'name', opcdefault => 'f',
  278. opckeytype => 'name' },
  279. { opcmethod => 'brin', opcname => 'int8_minmax_ops',
  280. opcfamily => 'brin/integer_minmax_ops', opcintype => 'int8',
  281. opckeytype => 'int8' },
  282. { opcmethod => 'brin', opcname => 'int8_minmax_multi_ops',
  283. opcfamily => 'brin/integer_minmax_multi_ops', opcintype => 'int8',
  284. opcdefault => 'f', opckeytype => 'int8' },
  285. { opcmethod => 'brin', opcname => 'int8_bloom_ops',
  286. opcfamily => 'brin/integer_bloom_ops', opcintype => 'int8', opcdefault => 'f',
  287. opckeytype => 'int8' },
  288. { opcmethod => 'brin', opcname => 'int2_minmax_ops',
  289. opcfamily => 'brin/integer_minmax_ops', opcintype => 'int2',
  290. opckeytype => 'int2' },
  291. { opcmethod => 'brin', opcname => 'int2_minmax_multi_ops',
  292. opcfamily => 'brin/integer_minmax_multi_ops', opcintype => 'int2',
  293. opcdefault => 'f', opckeytype => 'int2' },
  294. { opcmethod => 'brin', opcname => 'int2_bloom_ops',
  295. opcfamily => 'brin/integer_bloom_ops', opcintype => 'int2', opcdefault => 'f',
  296. opckeytype => 'int2' },
  297. { opcmethod => 'brin', opcname => 'int4_minmax_ops',
  298. opcfamily => 'brin/integer_minmax_ops', opcintype => 'int4',
  299. opckeytype => 'int4' },
  300. { opcmethod => 'brin', opcname => 'int4_minmax_multi_ops',
  301. opcfamily => 'brin/integer_minmax_multi_ops', opcintype => 'int4',
  302. opcdefault => 'f', opckeytype => 'int4' },
  303. { opcmethod => 'brin', opcname => 'int4_bloom_ops',
  304. opcfamily => 'brin/integer_bloom_ops', opcintype => 'int4', opcdefault => 'f',
  305. opckeytype => 'int4' },
  306. { opcmethod => 'brin', opcname => 'text_minmax_ops',
  307. opcfamily => 'brin/text_minmax_ops', opcintype => 'text',
  308. opckeytype => 'text' },
  309. { opcmethod => 'brin', opcname => 'text_bloom_ops',
  310. opcfamily => 'brin/text_bloom_ops', opcintype => 'text', opcdefault => 'f',
  311. opckeytype => 'text' },
  312. { opcmethod => 'brin', opcname => 'oid_minmax_ops',
  313. opcfamily => 'brin/oid_minmax_ops', opcintype => 'oid', opckeytype => 'oid' },
  314. { opcmethod => 'brin', opcname => 'oid_minmax_multi_ops',
  315. opcfamily => 'brin/oid_minmax_multi_ops', opcintype => 'oid',
  316. opcdefault => 'f', opckeytype => 'oid' },
  317. { opcmethod => 'brin', opcname => 'oid_bloom_ops',
  318. opcfamily => 'brin/oid_bloom_ops', opcintype => 'oid', opcdefault => 'f',
  319. opckeytype => 'oid' },
  320. { opcmethod => 'brin', opcname => 'tid_minmax_ops',
  321. opcfamily => 'brin/tid_minmax_ops', opcintype => 'tid', opckeytype => 'tid' },
  322. { opcmethod => 'brin', opcname => 'tid_bloom_ops',
  323. opcfamily => 'brin/tid_bloom_ops', opcintype => 'tid', opcdefault => 'f',
  324. opckeytype => 'tid' },
  325. { opcmethod => 'brin', opcname => 'tid_minmax_multi_ops',
  326. opcfamily => 'brin/tid_minmax_multi_ops', opcintype => 'tid',
  327. opcdefault => 'f', opckeytype => 'tid' },
  328. { opcmethod => 'brin', opcname => 'float4_minmax_ops',
  329. opcfamily => 'brin/float_minmax_ops', opcintype => 'float4',
  330. opckeytype => 'float4' },
  331. { opcmethod => 'brin', opcname => 'float4_minmax_multi_ops',
  332. opcfamily => 'brin/float_minmax_multi_ops', opcintype => 'float4',
  333. opcdefault => 'f', opckeytype => 'float4' },
  334. { opcmethod => 'brin', opcname => 'float4_bloom_ops',
  335. opcfamily => 'brin/float_bloom_ops', opcintype => 'float4', opcdefault => 'f',
  336. opckeytype => 'float4' },
  337. { opcmethod => 'brin', opcname => 'float8_minmax_ops',
  338. opcfamily => 'brin/float_minmax_ops', opcintype => 'float8',
  339. opckeytype => 'float8' },
  340. { opcmethod => 'brin', opcname => 'float8_minmax_multi_ops',
  341. opcfamily => 'brin/float_minmax_multi_ops', opcintype => 'float8',
  342. opcdefault => 'f', opckeytype => 'float8' },
  343. { opcmethod => 'brin', opcname => 'float8_bloom_ops',
  344. opcfamily => 'brin/float_bloom_ops', opcintype => 'float8', opcdefault => 'f',
  345. opckeytype => 'float8' },
  346. { opcmethod => 'brin', opcname => 'macaddr_minmax_ops',
  347. opcfamily => 'brin/macaddr_minmax_ops', opcintype => 'macaddr',
  348. opckeytype => 'macaddr' },
  349. { opcmethod => 'brin', opcname => 'macaddr_minmax_multi_ops',
  350. opcfamily => 'brin/macaddr_minmax_multi_ops', opcintype => 'macaddr',
  351. opcdefault => 'f', opckeytype => 'macaddr' },
  352. { opcmethod => 'brin', opcname => 'macaddr_bloom_ops',
  353. opcfamily => 'brin/macaddr_bloom_ops', opcintype => 'macaddr',
  354. opcdefault => 'f', opckeytype => 'macaddr' },
  355. { opcmethod => 'brin', opcname => 'macaddr8_minmax_ops',
  356. opcfamily => 'brin/macaddr8_minmax_ops', opcintype => 'macaddr8',
  357. opckeytype => 'macaddr8' },
  358. { opcmethod => 'brin', opcname => 'macaddr8_minmax_multi_ops',
  359. opcfamily => 'brin/macaddr8_minmax_multi_ops', opcintype => 'macaddr8',
  360. opcdefault => 'f', opckeytype => 'macaddr8' },
  361. { opcmethod => 'brin', opcname => 'macaddr8_bloom_ops',
  362. opcfamily => 'brin/macaddr8_bloom_ops', opcintype => 'macaddr8',
  363. opcdefault => 'f', opckeytype => 'macaddr8' },
  364. { opcmethod => 'brin', opcname => 'inet_minmax_ops',
  365. opcfamily => 'brin/network_minmax_ops', opcintype => 'inet',
  366. opcdefault => 'f', opckeytype => 'inet' },
  367. { opcmethod => 'brin', opcname => 'inet_minmax_multi_ops',
  368. opcfamily => 'brin/network_minmax_multi_ops', opcintype => 'inet',
  369. opcdefault => 'f', opckeytype => 'inet' },
  370. { opcmethod => 'brin', opcname => 'inet_bloom_ops',
  371. opcfamily => 'brin/network_bloom_ops', opcintype => 'inet', opcdefault => 'f',
  372. opckeytype => 'inet' },
  373. { opcmethod => 'brin', opcname => 'inet_inclusion_ops',
  374. opcfamily => 'brin/network_inclusion_ops', opcintype => 'inet',
  375. opckeytype => 'inet' },
  376. { opcmethod => 'brin', opcname => 'bpchar_minmax_ops',
  377. opcfamily => 'brin/bpchar_minmax_ops', opcintype => 'bpchar',
  378. opckeytype => 'bpchar' },
  379. { opcmethod => 'brin', opcname => 'bpchar_bloom_ops',
  380. opcfamily => 'brin/bpchar_bloom_ops', opcintype => 'bpchar',
  381. opcdefault => 'f', opckeytype => 'bpchar' },
  382. { opcmethod => 'brin', opcname => 'time_minmax_ops',
  383. opcfamily => 'brin/time_minmax_ops', opcintype => 'time',
  384. opckeytype => 'time' },
  385. { opcmethod => 'brin', opcname => 'time_minmax_multi_ops',
  386. opcfamily => 'brin/time_minmax_multi_ops', opcintype => 'time',
  387. opcdefault => 'f', opckeytype => 'time' },
  388. { opcmethod => 'brin', opcname => 'time_bloom_ops',
  389. opcfamily => 'brin/time_bloom_ops', opcintype => 'time', opcdefault => 'f',
  390. opckeytype => 'time' },
  391. { opcmethod => 'brin', opcname => 'date_minmax_ops',
  392. opcfamily => 'brin/datetime_minmax_ops', opcintype => 'date',
  393. opckeytype => 'date' },
  394. { opcmethod => 'brin', opcname => 'date_minmax_multi_ops',
  395. opcfamily => 'brin/datetime_minmax_multi_ops', opcintype => 'date',
  396. opcdefault => 'f', opckeytype => 'date' },
  397. { opcmethod => 'brin', opcname => 'date_bloom_ops',
  398. opcfamily => 'brin/datetime_bloom_ops', opcintype => 'date',
  399. opcdefault => 'f', opckeytype => 'date' },
  400. { opcmethod => 'brin', opcname => 'timestamp_minmax_ops',
  401. opcfamily => 'brin/datetime_minmax_ops', opcintype => 'timestamp',
  402. opckeytype => 'timestamp' },
  403. { opcmethod => 'brin', opcname => 'timestamp_minmax_multi_ops',
  404. opcfamily => 'brin/datetime_minmax_multi_ops', opcintype => 'timestamp',
  405. opcdefault => 'f', opckeytype => 'timestamp' },
  406. { opcmethod => 'brin', opcname => 'timestamp_bloom_ops',
  407. opcfamily => 'brin/datetime_bloom_ops', opcintype => 'timestamp',
  408. opcdefault => 'f', opckeytype => 'timestamp' },
  409. { opcmethod => 'brin', opcname => 'timestamptz_minmax_ops',
  410. opcfamily => 'brin/datetime_minmax_ops', opcintype => 'timestamptz',
  411. opckeytype => 'timestamptz' },
  412. { opcmethod => 'brin', opcname => 'timestamptz_minmax_multi_ops',
  413. opcfamily => 'brin/datetime_minmax_multi_ops', opcintype => 'timestamptz',
  414. opcdefault => 'f', opckeytype => 'timestamptz' },
  415. { opcmethod => 'brin', opcname => 'timestamptz_bloom_ops',
  416. opcfamily => 'brin/datetime_bloom_ops', opcintype => 'timestamptz',
  417. opcdefault => 'f', opckeytype => 'timestamptz' },
  418. { opcmethod => 'brin', opcname => 'interval_minmax_ops',
  419. opcfamily => 'brin/interval_minmax_ops', opcintype => 'interval',
  420. opckeytype => 'interval' },
  421. { opcmethod => 'brin', opcname => 'interval_minmax_multi_ops',
  422. opcfamily => 'brin/interval_minmax_multi_ops', opcintype => 'interval',
  423. opcdefault => 'f', opckeytype => 'interval' },
  424. { opcmethod => 'brin', opcname => 'interval_bloom_ops',
  425. opcfamily => 'brin/interval_bloom_ops', opcintype => 'interval',
  426. opcdefault => 'f', opckeytype => 'interval' },
  427. { opcmethod => 'brin', opcname => 'timetz_minmax_ops',
  428. opcfamily => 'brin/timetz_minmax_ops', opcintype => 'timetz',
  429. opckeytype => 'timetz' },
  430. { opcmethod => 'brin', opcname => 'timetz_minmax_multi_ops',
  431. opcfamily => 'brin/timetz_minmax_multi_ops', opcintype => 'timetz',
  432. opcdefault => 'f', opckeytype => 'timetz' },
  433. { opcmethod => 'brin', opcname => 'timetz_bloom_ops',
  434. opcfamily => 'brin/timetz_bloom_ops', opcintype => 'timetz',
  435. opcdefault => 'f', opckeytype => 'timetz' },
  436. { opcmethod => 'brin', opcname => 'bit_minmax_ops',
  437. opcfamily => 'brin/bit_minmax_ops', opcintype => 'bit', opckeytype => 'bit' },
  438. { opcmethod => 'brin', opcname => 'varbit_minmax_ops',
  439. opcfamily => 'brin/varbit_minmax_ops', opcintype => 'varbit',
  440. opckeytype => 'varbit' },
  441. { opcmethod => 'brin', opcname => 'numeric_minmax_ops',
  442. opcfamily => 'brin/numeric_minmax_ops', opcintype => 'numeric',
  443. opckeytype => 'numeric' },
  444. { opcmethod => 'brin', opcname => 'numeric_minmax_multi_ops',
  445. opcfamily => 'brin/numeric_minmax_multi_ops', opcintype => 'numeric',
  446. opcdefault => 'f', opckeytype => 'numeric' },
  447. { opcmethod => 'brin', opcname => 'numeric_bloom_ops',
  448. opcfamily => 'brin/numeric_bloom_ops', opcintype => 'numeric',
  449. opcdefault => 'f', opckeytype => 'numeric' },
  450. # no brin opclass for record, anyarray
  451. { opcmethod => 'brin', opcname => 'uuid_minmax_ops',
  452. opcfamily => 'brin/uuid_minmax_ops', opcintype => 'uuid',
  453. opckeytype => 'uuid' },
  454. { opcmethod => 'brin', opcname => 'uuid_minmax_multi_ops',
  455. opcfamily => 'brin/uuid_minmax_multi_ops', opcintype => 'uuid',
  456. opcdefault => 'f', opckeytype => 'uuid' },
  457. { opcmethod => 'brin', opcname => 'uuid_bloom_ops',
  458. opcfamily => 'brin/uuid_bloom_ops', opcintype => 'uuid', opcdefault => 'f',
  459. opckeytype => 'uuid' },
  460. { opcmethod => 'brin', opcname => 'range_inclusion_ops',
  461. opcfamily => 'brin/range_inclusion_ops', opcintype => 'anyrange',
  462. opckeytype => 'anyrange' },
  463. { opcmethod => 'brin', opcname => 'pg_lsn_minmax_ops',
  464. opcfamily => 'brin/pg_lsn_minmax_ops', opcintype => 'pg_lsn',
  465. opckeytype => 'pg_lsn' },
  466. { opcmethod => 'brin', opcname => 'pg_lsn_minmax_multi_ops',
  467. opcfamily => 'brin/pg_lsn_minmax_multi_ops', opcintype => 'pg_lsn',
  468. opcdefault => 'f', opckeytype => 'pg_lsn' },
  469. { opcmethod => 'brin', opcname => 'pg_lsn_bloom_ops',
  470. opcfamily => 'brin/pg_lsn_bloom_ops', opcintype => 'pg_lsn',
  471. opcdefault => 'f', opckeytype => 'pg_lsn' },
  472. # no brin opclass for enum, tsvector, tsquery, jsonb
  473. { opcmethod => 'brin', opcname => 'box_inclusion_ops',
  474. opcfamily => 'brin/box_inclusion_ops', opcintype => 'box',
  475. opckeytype => 'box' },
  476. # no brin opclass for the geometric types except box
  477. ]