{"Entry":{"collection":"opclass","key":"family-brin-integer_bloom_ops","name":"brin/integer_bloom_ops (family)","aliases":["integer_bloom_ops","brin/integer_bloom_ops"],"metadata":{"aliases":["integer_bloom_ops","brin/integer_bloom_ops"],"category":"BRIN families","content_hash":"0ceb5eacaf6a949022a226cab5f54a9d06785b37f62b38fc01b0319de8898d1e","derived_content_hash":"bedaf7c722511ef03cec759aedcf29166fcd566f6f52f0cfed7d7e4ab83bdd06","imported_at":"2026-09-30T00:40:39.165376+08:00","name":"brin/integer_bloom_ops (family)","name_zh":"","slug":"family-brin-integer_bloom_ops","summary":"BRIN operator family containing 3 classes, 3 operator strategies and 18 support functions in this source build."}},"Definition":{"Collection":"opclass","Key":"family-brin-integer_bloom_ops","SourceDatabase":"center","Version":"18","SourceTable":"operator_class","SourceKey":"family-brin-integer_bloom_ops","SourceRevision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","Facts":{"aliases":["integer_bloom_ops","brin/integer_bloom_ops"],"classes":[{"default":"f","family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","input_type":"int8","key_type":"int8","method":"brin","name":"int8_bloom_ops","slug":"class-brin-int8_bloom_ops","source_oid":""},{"default":"f","family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","input_type":"int2","key_type":"int2","method":"brin","name":"int2_bloom_ops","slug":"class-brin-int2_bloom_ops","source_oid":""},{"default":"f","family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","input_type":"int4","key_type":"int4","method":"brin","name":"int4_bloom_ops","slug":"class-brin-int4_bloom_ops","source_oid":""}],"comparison_data":{"attributes":{"method":"brin","name":"integer_bloom_ops"},"classes":[{"default":"f","family":"integer_bloom_ops","input_type":"int2","key_type":"int2","method":"brin","name":"int2_bloom_ops"},{"default":"f","family":"integer_bloom_ops","input_type":"int4","key_type":"int4","method":"brin","name":"int4_bloom_ops"},{"default":"f","family":"integer_bloom_ops","input_type":"int8","key_type":"int8","method":"brin","name":"int8_bloom_ops"}],"kind":"family","operators":[{"family":"integer_bloom_ops","left_type":"int2","method":"brin","operator":"=(int2,int2)","purpose":"search","right_type":"int2","sort_family":"","strategy":"1"},{"family":"integer_bloom_ops","left_type":"int4","method":"brin","operator":"=(int4,int4)","purpose":"search","right_type":"int4","sort_family":"","strategy":"1"},{"family":"integer_bloom_ops","left_type":"int8","method":"brin","operator":"=(int8,int8)","purpose":"search","right_type":"int8","sort_family":"","strategy":"1"}],"support_functions":[{"family":"integer_bloom_ops","function":"brin_bloom_opcinfo(internal)","left_type":"int2","method":"brin","number":"1","result_type":"internal","right_type":"int2"},{"family":"integer_bloom_ops","function":"brin_bloom_opcinfo(internal)","left_type":"int4","method":"brin","number":"1","result_type":"internal","right_type":"int4"},{"family":"integer_bloom_ops","function":"brin_bloom_opcinfo(internal)","left_type":"int8","method":"brin","number":"1","result_type":"internal","right_type":"int8"},{"family":"integer_bloom_ops","function":"hashint2(int2)","left_type":"int2","method":"brin","number":"11","result_type":"int4","right_type":"int2"},{"family":"integer_bloom_ops","function":"hashint4(int4)","left_type":"int4","method":"brin","number":"11","result_type":"int4","right_type":"int4"},{"family":"integer_bloom_ops","function":"hashint8(int8)","left_type":"int8","method":"brin","number":"11","result_type":"int4","right_type":"int8"},{"family":"integer_bloom_ops","function":"brin_bloom_add_value(internal,internal,internal,internal)","left_type":"int2","method":"brin","number":"2","result_type":"bool","right_type":"int2"},{"family":"integer_bloom_ops","function":"brin_bloom_add_value(internal,internal,internal,internal)","left_type":"int4","method":"brin","number":"2","result_type":"bool","right_type":"int4"},{"family":"integer_bloom_ops","function":"brin_bloom_add_value(internal,internal,internal,internal)","left_type":"int8","method":"brin","number":"2","result_type":"bool","right_type":"int8"},{"family":"integer_bloom_ops","function":"brin_bloom_consistent(internal,internal,internal,int4)","left_type":"int2","method":"brin","number":"3","result_type":"bool","right_type":"int2"},{"family":"integer_bloom_ops","function":"brin_bloom_consistent(internal,internal,internal,int4)","left_type":"int4","method":"brin","number":"3","result_type":"bool","right_type":"int4"},{"family":"integer_bloom_ops","function":"brin_bloom_consistent(internal,internal,internal,int4)","left_type":"int8","method":"brin","number":"3","result_type":"bool","right_type":"int8"},{"family":"integer_bloom_ops","function":"brin_bloom_union(internal,internal,internal)","left_type":"int2","method":"brin","number":"4","result_type":"bool","right_type":"int2"},{"family":"integer_bloom_ops","function":"brin_bloom_union(internal,internal,internal)","left_type":"int4","method":"brin","number":"4","result_type":"bool","right_type":"int4"},{"family":"integer_bloom_ops","function":"brin_bloom_union(internal,internal,internal)","left_type":"int8","method":"brin","number":"4","result_type":"bool","right_type":"int8"},{"family":"integer_bloom_ops","function":"brin_bloom_options(internal)","left_type":"int2","method":"brin","number":"5","result_type":"void","right_type":"int2"},{"family":"integer_bloom_ops","function":"brin_bloom_options(internal)","left_type":"int4","method":"brin","number":"5","result_type":"void","right_type":"int4"},{"family":"integer_bloom_ops","function":"brin_bloom_options(internal)","left_type":"int8","method":"brin","number":"5","result_type":"void","right_type":"int8"}]},"comparison_hash":"9ca5ce3f2c99e6ca9bb8b4b247325b2ef2d6a2d660ae0e2810cdfd1b234ff3d6","description":["BRIN operator family containing 3 classes, 3 operator strategies and 18 support functions in this source build."],"description_zh":"integer_bloom_ops 是 brin 的运算符族。","description_zh_html":"\u003cp\u003einteger_bloom_ops 是 brin 的运算符族。\u003c/p\u003e\u003cdl\u003e\u003cdt\u003e名称\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003einteger_bloom_ops\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e索引访问方法\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003ebrin\u003c/code\u003e\u003c/dd\u003e\u003c/dl\u003e\u003ch3\u003e策略运算符\u003c/h3\u003e\u003ctable\u003e\u003cthead\u003e\u003ctr\u003e\u003cth\u003e策略编号\u003c/th\u003e\u003cth\u003e用途\u003c/th\u003e\u003cth\u003e运算符\u003c/th\u003e\u003cth\u003e左操作数类型\u003c/th\u003e\u003cth\u003e右操作数类型\u003c/th\u003e\u003cth\u003e排序运算符族\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e1\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e搜索\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e=(int8,int8)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint8\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint8\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e1\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e搜索\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e=(int2,int2)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e1\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e搜索\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e=(int4,int4)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\u003ch3\u003e支持函数\u003c/h3\u003e\u003ctable\u003e\u003cthead\u003e\u003ctr\u003e\u003cth\u003e支持函数编号\u003c/th\u003e\u003cth\u003e实现函数\u003c/th\u003e\u003cth\u003e左操作数类型\u003c/th\u003e\u003cth\u003e右操作数类型\u003c/th\u003e\u003cth\u003e结果类型\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e1\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebrin_bloom_opcinfo(internal)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint8\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint8\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003einternal\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebrin_bloom_add_value(internal,internal,internal,internal)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint8\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint8\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebool\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e3\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebrin_bloom_consistent(internal,internal,internal,int4)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint8\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint8\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebool\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebrin_bloom_union(internal,internal,internal)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint8\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint8\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebool\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e5\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebrin_bloom_options(internal)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint8\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint8\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003evoid\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e11\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ehashint8(int8)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint8\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint8\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e1\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebrin_bloom_opcinfo(internal)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003einternal\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebrin_bloom_add_value(internal,internal,internal,internal)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebool\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e3\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebrin_bloom_consistent(internal,internal,internal,int4)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebool\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebrin_bloom_union(internal,internal,internal)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebool\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e5\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebrin_bloom_options(internal)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003evoid\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e11\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ehashint2(int2)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e1\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebrin_bloom_opcinfo(internal)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003einternal\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e2\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebrin_bloom_add_value(internal,internal,internal,internal)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebool\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e3\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebrin_bloom_consistent(internal,internal,internal,int4)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebool\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebrin_bloom_union(internal,internal,internal)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebool\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e5\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ebrin_bloom_options(internal)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003evoid\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003e11\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ehashint4(int4)\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eint4\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\u003ch3\u003e同版本中文手册节选\u003c/h3\u003e\u003cp\u003e\n   一个索引定义可以为索引的每一列指定一个\u003cem class=\"firstterm\"\u003e操作符类\u003c/em\u003e。\n\u003c/p\u003e\u003cp\u003e\n   操作符类标识该索引在该列上要使用哪些操作符。例如，类型 \u003ccode class=\"type\"\u003eint4\u003c/code\u003e 上的一个 B-树索引会使用 \u003ccode class=\"literal\"\u003eint4_ops\u003c/code\u003e 类；这个操作符类包含对 \u003ccode class=\"type\"\u003eint4\u003c/code\u003e 值进行比较所需的函数。实践中，列数据类型的默认操作符类通常已经足够。之所以存在操作符类，主要是因为对某些数据类型来说，可能存在多种有意义的索引行为。例如，我们可能希望按绝对值排序一种复数数据类型，也可能希望按实部排序。我们可以通过为该数据类型定义两个操作符类，并在创建索引时选择合适的那个来做到这一点。操作符类决定了基础排序顺序（之后还可以通过添加排序选项 \u003ccode class=\"literal\"\u003eCOLLATE\u003c/code\u003e、\u003ccode class=\"literal\"\u003eASC\u003c/code\u003e/\u003ccode class=\"literal\"\u003eDESC\u003c/code\u003e 和/或 \u003ccode class=\"literal\"\u003eNULLS FIRST\u003c/code\u003e/\u003ccode class=\"literal\"\u003eNULLS LAST\u003c/code\u003e 来修改）。\n  \u003c/p\u003e\u003cp\u003e\n   除了默认操作符类之外，还有一些内置操作符类：\n\n   \u003c/p\u003e\u003cp\u003e\n    下面的查询会显示所有已定义的操作符类：\n\n\u003c/p\u003e\u003cp\u003e\u003ca href=\"/zh/docs/18/indexes-opclass.html\"\u003e查看完整中文手册与上下文\u003c/a\u003e。\u003c/p\u003e","facts":[{"label":"Object kind","value":"Operator family"},{"label":"Index AM","value":"BRIN"}],"facts_zh":[{"label":"对象种类","value":"操作符家族"},{"label":"索引访问方法","value":"BRIN"}],"family":{"method":"brin","name":"integer_bloom_ops"},"operators":[{"description":"equal","family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","left_type":"int8","method":"brin","operator":"=(int8,int8)","operator_slug":"op-3d-int8-int8","purpose":"search","result_type":"bool","right_type":"int8","sort_family":"","sort_family_slug":"","strategy":"1"},{"description":"equal","family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","left_type":"int2","method":"brin","operator":"=(int2,int2)","operator_slug":"op-3d-int2-int2","purpose":"search","result_type":"bool","right_type":"int2","sort_family":"","sort_family_slug":"","strategy":"1"},{"description":"equal","family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","left_type":"int4","method":"brin","operator":"=(int4,int4)","operator_slug":"op-3d-int4-int4","purpose":"search","result_type":"bool","right_type":"int4","sort_family":"","sort_family_slug":"","strategy":"1"}],"related":[{"label":"BRIN Index AM","url":"/wiki/indexam/brin/?v=18"}],"release":{"catalog_fingerprint":"deec62e0f0c649d9d0d058ddd0b16bf41afffd569c3fd73949ff0971ce5cabd6","channel":"stable","label":"18.6","major":"18","manual_fingerprint":"fefce9e478eb2afe5e17e869492bbedc67dce23d317f0a5257240113d6496ebc","ref":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","revision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"},"sections":[{"paragraphs":["An index definition can specify an operator class for each column of an index.","The operator class identifies the operators to be used by the index for that column. For example, a B-tree index on the type int4 would use the int4_ops class; this operator class includes comparison functions for values of type int4 . In practice the default operator class for the column's data type is usually sufficient. The main reason for having operator classes is that for some data types, there could be more than one meaningful index behavior. For example, we might want to sort a complex-number data type either by absolute value or by real part. We could do this by defining two operator classes for the data type and then selecting the proper class when making an index. The operator class determines the basic sort ordering (which can then be modified by adding sort options COLLATE , ASC / DESC and/or NULLS FIRST / NULLS LAST ).","There are also some built-in operator classes besides the default ones:"],"title":"Operator classes and families"}],"sections_zh":[{"paragraphs":["一个索引定义可以为索引的每一列指定一个 操作符类 。","操作符类标识该索引在该列上要使用哪些操作符。例如，类型 int4 上的一个 B-树索引会使用 int4_ops 类；这个操作符类包含对 int4 值进行比较所需的函数。实践中，列数据类型的默认操作符类通常已经足够。之所以存在操作符类，主要是因为对某些数据类型来说，可能存在多种有意义的索引行为。例如，我们可能希望按绝对值排序一种复数数据类型，也可能希望按实部排序。我们可以通过为该数据类型定义两个操作符类，并在创建索引时选择合适的那个来做到这一点。操作符类决定了基础排序顺序（之后还可以通过添加排序选项 COLLATE 、 ASC / DESC 和/或 NULLS FIRST / NULLS LAST 来修改）。","除了默认操作符类之外，还有一些内置操作符类："],"title":"操作符类与家族"}],"signature":"brin/integer_bloom_ops","source_oid":"4572","sources":[{"label":"Matching PostgreSQL source archive","sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2"},{"label":"PostgreSQL 18 English manual: indexes-opclass.html","path":"indexes-opclass.html","sha256":"07de06abf3a2aff2a891a2789def434d9b76705e54d45ca5338dc13451ae2962","url":"/docs/18/indexes-opclass.html"},{"label":"PostgreSQL 18 English manual: catalog-pg-opfamily.html","path":"catalog-pg-opfamily.html","sha256":"d4a2b7c2bcb5350b0c1f0111b61e4566f46fd97f48802d3ced2421a7aea60b80","url":"/docs/18/catalog-pg-opfamily.html"},{"label":"PostgreSQL 18 English manual: catalog-pg-amop.html","path":"catalog-pg-amop.html","sha256":"e65b90ee78eaf4b4da97ce5b08b972cee2e2660b882ec107be22eca47201f7d1","url":"/docs/18/catalog-pg-amop.html"},{"label":"PostgreSQL 18 English manual: catalog-pg-amproc.html","path":"catalog-pg-amproc.html","sha256":"0a09afbde0ba8da9899bf770b86d8301bee116057b16ebe7db0e4a7fca2e91c6","url":"/docs/18/catalog-pg-amproc.html"}],"support_functions":[{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"brin_bloom_opcinfo(internal)","left_type":"int8","method":"brin","number":"1","result_type":"internal","right_type":"int8"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"brin_bloom_add_value(internal,internal,internal,internal)","left_type":"int8","method":"brin","number":"2","result_type":"bool","right_type":"int8"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"brin_bloom_consistent(internal,internal,internal,int4)","left_type":"int8","method":"brin","number":"3","result_type":"bool","right_type":"int8"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"brin_bloom_union(internal,internal,internal)","left_type":"int8","method":"brin","number":"4","result_type":"bool","right_type":"int8"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"brin_bloom_options(internal)","left_type":"int8","method":"brin","number":"5","result_type":"void","right_type":"int8"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"hashint8(int8)","left_type":"int8","method":"brin","number":"11","result_type":"int4","right_type":"int8"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"brin_bloom_opcinfo(internal)","left_type":"int2","method":"brin","number":"1","result_type":"internal","right_type":"int2"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"brin_bloom_add_value(internal,internal,internal,internal)","left_type":"int2","method":"brin","number":"2","result_type":"bool","right_type":"int2"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"brin_bloom_consistent(internal,internal,internal,int4)","left_type":"int2","method":"brin","number":"3","result_type":"bool","right_type":"int2"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"brin_bloom_union(internal,internal,internal)","left_type":"int2","method":"brin","number":"4","result_type":"bool","right_type":"int2"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"brin_bloom_options(internal)","left_type":"int2","method":"brin","number":"5","result_type":"void","right_type":"int2"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"hashint2(int2)","left_type":"int2","method":"brin","number":"11","result_type":"int4","right_type":"int2"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"brin_bloom_opcinfo(internal)","left_type":"int4","method":"brin","number":"1","result_type":"internal","right_type":"int4"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"brin_bloom_add_value(internal,internal,internal,internal)","left_type":"int4","method":"brin","number":"2","result_type":"bool","right_type":"int4"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"brin_bloom_consistent(internal,internal,internal,int4)","left_type":"int4","method":"brin","number":"3","result_type":"bool","right_type":"int4"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"brin_bloom_union(internal,internal,internal)","left_type":"int4","method":"brin","number":"4","result_type":"bool","right_type":"int4"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"brin_bloom_options(internal)","left_type":"int4","method":"brin","number":"5","result_type":"void","right_type":"int4"},{"family":"integer_bloom_ops","family_slug":"family-brin-integer_bloom_ops","function":"hashint4(int4)","left_type":"int4","method":"brin","number":"11","result_type":"int4","right_type":"int4"}],"tables":[{"columns":[{"key":"operator","label":"Operator overload"},{"key":"strategy","label":"Strategy"},{"key":"purpose","label":"Purpose"},{"key":"sort_family","label":"Ordering family"},{"key":"scope","label":"Membership scope"},{"key":"description","label":"Source description"}],"key":"operators","rows":[{"description":"equal","operator":{"text":"=(int8,int8)","url":"/wiki/operator/op-3d-int8-int8/?v=18"},"purpose":"search","scope":"Family member","sort_family":"","strategy":"1"},{"description":"equal","operator":{"text":"=(int2,int2)","url":"/wiki/operator/op-3d-int2-int2/?v=18"},"purpose":"search","scope":"Family member","sort_family":"","strategy":"1"},{"description":"equal","operator":{"text":"=(int4,int4)","url":"/wiki/operator/op-3d-int4-int4/?v=18"},"purpose":"search","scope":"Family member","sort_family":"","strategy":"1"}],"title":"Family operator strategies"},{"columns":[{"key":"number","label":"Support number"},{"key":"left_type","label":"Left type"},{"key":"right_type","label":"Right type"},{"key":"function","label":"Function signature"},{"key":"result_type","label":"Result type"}],"key":"support-functions","rows":[{"function":"brin_bloom_opcinfo(internal)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"1","result_type":"internal","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"brin_bloom_add_value(internal,internal,internal,internal)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"2","result_type":"bool","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"brin_bloom_consistent(internal,internal,internal,int4)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"3","result_type":"bool","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"brin_bloom_union(internal,internal,internal)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"4","result_type":"bool","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"brin_bloom_options(internal)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"5","result_type":"void","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"hashint8(int8)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"11","result_type":"int4","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"brin_bloom_opcinfo(internal)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"1","result_type":"internal","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"brin_bloom_add_value(internal,internal,internal,internal)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"2","result_type":"bool","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"brin_bloom_consistent(internal,internal,internal,int4)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"3","result_type":"bool","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"brin_bloom_union(internal,internal,internal)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"4","result_type":"bool","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"brin_bloom_options(internal)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"5","result_type":"void","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"hashint2(int2)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"11","result_type":"int4","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"brin_bloom_opcinfo(internal)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"1","result_type":"internal","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}},{"function":"brin_bloom_add_value(internal,internal,internal,internal)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"2","result_type":"bool","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}},{"function":"brin_bloom_consistent(internal,internal,internal,int4)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"3","result_type":"bool","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}},{"function":"brin_bloom_union(internal,internal,internal)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"4","result_type":"bool","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}},{"function":"brin_bloom_options(internal)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"5","result_type":"void","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}},{"function":"hashint4(int4)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"11","result_type":"int4","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}}],"title":"Family support functions"},{"columns":[{"key":"class","label":"Class"},{"key":"input_type","label":"Input type"},{"key":"key_type","label":"Key type"},{"key":"default","label":"Default"}],"key":"classes","rows":[{"class":{"text":"int8_bloom_ops","url":"/wiki/opclass/class-brin-int8_bloom_ops/?v=18"},"default":"no","input_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"key_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"class":{"text":"int2_bloom_ops","url":"/wiki/opclass/class-brin-int2_bloom_ops/?v=18"},"default":"no","input_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"key_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"class":{"text":"int4_bloom_ops","url":"/wiki/opclass/class-brin-int4_bloom_ops/?v=18"},"default":"no","input_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"key_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}}],"title":"Classes in this family"}],"tables_zh":[{"columns":[{"key":"operator","label":"操作符重载"},{"key":"strategy","label":"策略"},{"key":"purpose","label":"用途"},{"key":"sort_family","label":"排序家族"},{"key":"scope","label":"成员范围"},{"key":"description","label":"源码说明"}],"key":"operators","rows":[{"description":"等于","operator":{"text":"=(int8,int8)","url":"/wiki/operator/op-3d-int8-int8/?v=18"},"purpose":"搜索","scope":"家族成员","sort_family":"","strategy":"1"},{"description":"等于","operator":{"text":"=(int2,int2)","url":"/wiki/operator/op-3d-int2-int2/?v=18"},"purpose":"搜索","scope":"家族成员","sort_family":"","strategy":"1"},{"description":"等于","operator":{"text":"=(int4,int4)","url":"/wiki/operator/op-3d-int4-int4/?v=18"},"purpose":"搜索","scope":"家族成员","sort_family":"","strategy":"1"}],"title":"家族中的操作符策略"},{"columns":[{"key":"number","label":"支持函数编号"},{"key":"left_type","label":"左侧类型"},{"key":"right_type","label":"右侧类型"},{"key":"function","label":"函数签名"},{"key":"result_type","label":"返回类型"}],"key":"support-functions","rows":[{"function":"brin_bloom_opcinfo(internal)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"1","result_type":"internal","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"brin_bloom_add_value(internal,internal,internal,internal)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"2","result_type":"bool","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"brin_bloom_consistent(internal,internal,internal,int4)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"3","result_type":"bool","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"brin_bloom_union(internal,internal,internal)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"4","result_type":"bool","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"brin_bloom_options(internal)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"5","result_type":"void","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"hashint8(int8)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"11","result_type":"int4","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"brin_bloom_opcinfo(internal)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"1","result_type":"internal","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"brin_bloom_add_value(internal,internal,internal,internal)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"2","result_type":"bool","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"brin_bloom_consistent(internal,internal,internal,int4)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"3","result_type":"bool","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"brin_bloom_union(internal,internal,internal)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"4","result_type":"bool","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"brin_bloom_options(internal)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"5","result_type":"void","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"hashint2(int2)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"11","result_type":"int4","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"brin_bloom_opcinfo(internal)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"1","result_type":"internal","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}},{"function":"brin_bloom_add_value(internal,internal,internal,internal)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"2","result_type":"bool","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}},{"function":"brin_bloom_consistent(internal,internal,internal,int4)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"3","result_type":"bool","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}},{"function":"brin_bloom_union(internal,internal,internal)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"4","result_type":"bool","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}},{"function":"brin_bloom_options(internal)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"5","result_type":"void","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}},{"function":"hashint4(int4)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"11","result_type":"int4","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}}],"title":"家族支持函数"},{"columns":[{"key":"class","label":"操作符类"},{"key":"input_type","label":"输入类型"},{"key":"key_type","label":"键类型"},{"key":"default","label":"默认值"}],"key":"classes","rows":[{"class":{"text":"int8_bloom_ops","url":"/wiki/opclass/class-brin-int8_bloom_ops/?v=18"},"default":"否","input_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"key_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"class":{"text":"int2_bloom_ops","url":"/wiki/opclass/class-brin-int2_bloom_ops/?v=18"},"default":"否","input_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"key_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"class":{"text":"int4_bloom_ops","url":"/wiki/opclass/class-brin-int4_bloom_ops/?v=18"},"default":"否","input_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"key_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}}],"title":"本家族的操作符类"}],"zh_from":{"authored_translation":"source-derived-structured-summary","body_sha256":"3299f483fcf1f92b44aed5664ceedc3b896893ec670e6573c625fa27c5d2cce9","kind":"same-version-chinese-manual-with-source-derived-structured-summary","manual":{"anchor":"","build_id":107,"extraction":"concept-introduction","fragment_sha256":"dad5545190ebde655fce48dfc13cd02d2863166fac7cf0c2b28b059c9e419ae4","locale":"zh-Hans","page_key":"indexes-opclass.html","source_hash":"cce6c9b1d4fbb418823aa7be2585facae45f45a5f75c43bd26170c1383c2a4b5","source_revision":"unknown:rendered-translation-baseline","translated_from_revision":null,"translation_revision":"git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:08e987a66af27b98444a8057c256314eafa13611a3fb9e888214fc436824244b","url":"/zh/docs/18/indexes-opclass.html","version":"18"},"runtime_rerun":false,"source_facts_revision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}},"ManualEvidence":{"release":{"catalog_fingerprint":"deec62e0f0c649d9d0d058ddd0b16bf41afffd569c3fd73949ff0971ce5cabd6","channel":"stable","label":"18.6","major":"18","manual_fingerprint":"fefce9e478eb2afe5e17e869492bbedc67dce23d317f0a5257240113d6496ebc","ref":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2","revision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"},"sources":[{"label":"Matching PostgreSQL source archive","sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2"},{"label":"PostgreSQL 18 English manual: indexes-opclass.html","path":"indexes-opclass.html","sha256":"07de06abf3a2aff2a891a2789def434d9b76705e54d45ca5338dc13451ae2962","url":"/docs/18/indexes-opclass.html"},{"label":"PostgreSQL 18 English manual: catalog-pg-opfamily.html","path":"catalog-pg-opfamily.html","sha256":"d4a2b7c2bcb5350b0c1f0111b61e4566f46fd97f48802d3ced2421a7aea60b80","url":"/docs/18/catalog-pg-opfamily.html"},{"label":"PostgreSQL 18 English manual: catalog-pg-amop.html","path":"catalog-pg-amop.html","sha256":"e65b90ee78eaf4b4da97ce5b08b972cee2e2660b882ec107be22eca47201f7d1","url":"/docs/18/catalog-pg-amop.html"},{"label":"PostgreSQL 18 English manual: catalog-pg-amproc.html","path":"catalog-pg-amproc.html","sha256":"0a09afbde0ba8da9899bf770b86d8301bee116057b16ebe7db0e4a7fca2e91c6","url":"/docs/18/catalog-pg-amproc.html"}]},"MeasuredEvidence":{}},"Text":{"Collection":"opclass","Key":"family-brin-integer_bloom_ops","SourceDatabase":"center","Version":"18","Locale":"en","Title":"brin/integer_bloom_ops (family)","Summary":"BRIN operator family containing 3 classes, 3 operator strategies and 18 support functions in this source build.","BodyHTML":"\u003cp\u003eBRIN operator family containing 3 classes, 3 operator strategies and 18 support functions in this source build.\u003c/p\u003e","SourceRevision":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","ContentHash":"e9971c1fc5989d6f593542c9a1d0e2274ba755bd9673ea247c7b6f9da2e2c119","Payload":{"description":["BRIN operator family containing 3 classes, 3 operator strategies and 18 support functions in this source build."],"related":[{"label":"BRIN Index AM","url":"/wiki/indexam/brin/?v=18"}],"sections":[{"paragraphs":["An index definition can specify an operator class for each column of an index.","The operator class identifies the operators to be used by the index for that column. For example, a B-tree index on the type int4 would use the int4_ops class; this operator class includes comparison functions for values of type int4 . In practice the default operator class for the column's data type is usually sufficient. The main reason for having operator classes is that for some data types, there could be more than one meaningful index behavior. For example, we might want to sort a complex-number data type either by absolute value or by real part. We could do this by defining two operator classes for the data type and then selecting the proper class when making an index. The operator class determines the basic sort ordering (which can then be modified by adding sort options COLLATE , ASC / DESC and/or NULLS FIRST / NULLS LAST ).","There are also some built-in operator classes besides the default ones:"],"title":"Operator classes and families"}],"tables":[{"columns":[{"key":"operator","label":"Operator overload"},{"key":"strategy","label":"Strategy"},{"key":"purpose","label":"Purpose"},{"key":"sort_family","label":"Ordering family"},{"key":"scope","label":"Membership scope"},{"key":"description","label":"Source description"}],"key":"operators","rows":[{"description":"equal","operator":{"text":"=(int8,int8)","url":"/wiki/operator/op-3d-int8-int8/?v=18"},"purpose":"search","scope":"Family member","sort_family":"","strategy":"1"},{"description":"equal","operator":{"text":"=(int2,int2)","url":"/wiki/operator/op-3d-int2-int2/?v=18"},"purpose":"search","scope":"Family member","sort_family":"","strategy":"1"},{"description":"equal","operator":{"text":"=(int4,int4)","url":"/wiki/operator/op-3d-int4-int4/?v=18"},"purpose":"search","scope":"Family member","sort_family":"","strategy":"1"}],"title":"Family operator strategies"},{"columns":[{"key":"number","label":"Support number"},{"key":"left_type","label":"Left type"},{"key":"right_type","label":"Right type"},{"key":"function","label":"Function signature"},{"key":"result_type","label":"Result type"}],"key":"support-functions","rows":[{"function":"brin_bloom_opcinfo(internal)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"1","result_type":"internal","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"brin_bloom_add_value(internal,internal,internal,internal)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"2","result_type":"bool","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"brin_bloom_consistent(internal,internal,internal,int4)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"3","result_type":"bool","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"brin_bloom_union(internal,internal,internal)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"4","result_type":"bool","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"brin_bloom_options(internal)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"5","result_type":"void","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"hashint8(int8)","left_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"number":"11","result_type":"int4","right_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"function":"brin_bloom_opcinfo(internal)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"1","result_type":"internal","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"brin_bloom_add_value(internal,internal,internal,internal)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"2","result_type":"bool","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"brin_bloom_consistent(internal,internal,internal,int4)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"3","result_type":"bool","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"brin_bloom_union(internal,internal,internal)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"4","result_type":"bool","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"brin_bloom_options(internal)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"5","result_type":"void","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"hashint2(int2)","left_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"number":"11","result_type":"int4","right_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"function":"brin_bloom_opcinfo(internal)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"1","result_type":"internal","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}},{"function":"brin_bloom_add_value(internal,internal,internal,internal)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"2","result_type":"bool","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}},{"function":"brin_bloom_consistent(internal,internal,internal,int4)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"3","result_type":"bool","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}},{"function":"brin_bloom_union(internal,internal,internal)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"4","result_type":"bool","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}},{"function":"brin_bloom_options(internal)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"5","result_type":"void","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}},{"function":"hashint4(int4)","left_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"number":"11","result_type":"int4","right_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}}],"title":"Family support functions"},{"columns":[{"key":"class","label":"Class"},{"key":"input_type","label":"Input type"},{"key":"key_type","label":"Key type"},{"key":"default","label":"Default"}],"key":"classes","rows":[{"class":{"text":"int8_bloom_ops","url":"/wiki/opclass/class-brin-int8_bloom_ops/?v=18"},"default":"no","input_type":{"text":"int8","url":"/wiki/type/int8/?v=18"},"key_type":{"text":"int8","url":"/wiki/type/int8/?v=18"}},{"class":{"text":"int2_bloom_ops","url":"/wiki/opclass/class-brin-int2_bloom_ops/?v=18"},"default":"no","input_type":{"text":"int2","url":"/wiki/type/int2/?v=18"},"key_type":{"text":"int2","url":"/wiki/type/int2/?v=18"}},{"class":{"text":"int4_bloom_ops","url":"/wiki/opclass/class-brin-int4_bloom_ops/?v=18"},"default":"no","input_type":{"text":"int4","url":"/wiki/type/int4/?v=18"},"key_type":{"text":"int4","url":"/wiki/type/int4/?v=18"}}],"title":"Classes in this family"}]}},"RequestedLocale":"en","Fallback":false,"Versions":["14","15","16","17","18","19","20"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
