{"kind": "opclass", "major": "18", "item": {"slug": "family-gist-range_ops", "name": "gist/range_ops (family)", "name_zh": "", "category": "GiST families", "summary": "GiST operator family containing 1 classes, 18 operator strategies and 7 support functions in this source build.", "aliases": ["range_ops", "gist/range_ops"], "content_hash": "589b06cfcfa77966e8a21b92f1c0ac1e8fe816d40f31add54d27bfc5bf7f3291", "versions": {"10": {"facts": [{"label": "Object kind", "value": "Operator family"}, {"label": "Index AM", "value": "GiST"}], "family": {"name": "range_ops", "method": "gist"}, "tables": [{"key": "operators", "rows": [{"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anyrange/?v=10", "text": "<<(anyrange,anyrange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anyrange/?v=10", "text": "&<(anyrange,anyrange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anyrange/?v=10", "text": "&&(anyrange,anyrange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anyrange/?v=10", "text": "&>(anyrange,anyrange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anyrange/?v=10", "text": ">>(anyrange,anyrange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anyrange/?v=10", "text": "-|-(anyrange,anyrange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyrange/?v=10", "text": "@>(anyrange,anyrange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anyrange/?v=10", "text": "<@(anyrange,anyrange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyelement/?v=10", "text": "@>(anyrange,anyelement)"}, "strategy": "16", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3d-anyrange-anyrange/?v=10", "text": "=(anyrange,anyrange)"}, "strategy": "18", "description": "equal", "sort_family": ""}], "title": "Family operator strategies", "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": "support-functions", "rows": [{"number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}, "result_type": "bool"}, {"number": "2", "function": "range_gist_union(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}, "result_type": "anyrange"}, {"number": "3", "function": "range_gist_compress(internal)", "left_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}, "result_type": "internal"}, {"number": "4", "function": "range_gist_decompress(internal)", "left_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}, "result_type": "internal"}, {"number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}, "result_type": "internal"}, {"number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}, "result_type": "internal"}, {"number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}, "result_type": "internal"}, {"number": "9", "function": "range_gist_fetch(internal)", "left_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}, "result_type": "internal"}], "title": "Family support functions", "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": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-gist-range_ops/?v=10", "text": "range_ops"}, "default": "yes", "key_type": "Same as input type", "input_type": {"url": "/wiki/type/anyrange/?v=10", "text": "anyrange"}}], "title": "Classes in this family", "columns": [{"key": "class", "label": "Class"}, {"key": "input_type", "label": "Input type"}, {"key": "key_type", "label": "Key type"}, {"key": "default", "label": "Default"}]}], "aliases": ["range_ops", "gist/range_ops"], "classes": [{"name": "range_ops", "slug": "class-gist-range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange", "source_oid": "", "family_slug": "family-gist-range_ops"}], "related": [{"url": "/wiki/indexam/gist/?v=10", "label": "GiST Index AM"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "10.23", "major": "10", "channel": "historical", "revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9", "source_sha256": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9", "manual_fingerprint": "113b870e3ff4b52320f34750da5e740800f3f6e4ed6f2fc00a0891944d1be7c2", "catalog_fingerprint": "dd2d5fd5e17d29184db5f6625f9f0f9b9d40ae7aa34b6ccf28ddbc8684bd4992"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, {"url": "/docs/10/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 10 English manual: indexes-opclass.html", "sha256": "5e070d906c5b9c756625cc59969d7259b304fb3ff73ec4363e2dcbf923ad4c61"}, {"url": "/docs/10/catalog-pg-opfamily.html", "path": "catalog-pg-opfamily.html", "label": "PostgreSQL 10 English manual: catalog-pg-opfamily.html", "sha256": "11462d866bbcf3bda5f38dfea3fea5b4f004397ce1d002a226013ca1b0705c1a"}, {"url": "/docs/10/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 10 English manual: catalog-pg-amop.html", "sha256": "d5ce5a3be599e5506edbe3ff615674beb013720953f4979a44b6ecfd4cc24090"}, {"url": "/docs/10/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 10 English manual: catalog-pg-amproc.html", "sha256": "5e5f2932bae4725864988e810841b0edf82d629b3ea2690ffe8b44935eb89131"}], "sections": [{"title": "Operator classes and families", "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:"]}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyelement", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "description": "equal", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3d-anyrange-anyrange", "sort_family_slug": ""}], "signature": "gist/range_ops", "source_oid": "3919", "description": ["GiST operator family containing 1 classes, 10 operator strategies and 8 support functions in this source build."], "comparison_data": {"kind": "family", "classes": [{"name": "range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange"}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}], "attributes": {"name": "range_ops", "method": "gist"}, "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "3", "function": "range_gist_compress(internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "4", "function": "range_gist_decompress(internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "9", "function": "range_gist_fetch(internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}]}, "comparison_hash": "bb6ec04ba1f248cc7a4463e52569ee10de3bb3705b1e0fd2cecdbf05ae45a1d3", "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "3", "function": "range_gist_compress(internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "4", "function": "range_gist_decompress(internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "9", "function": "range_gist_fetch(internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}]}, "11": {"facts": [{"label": "Object kind", "value": "Operator family"}, {"label": "Index AM", "value": "GiST"}], "family": {"name": "range_ops", "method": "gist"}, "tables": [{"key": "operators", "rows": [{"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anyrange/?v=11", "text": "<<(anyrange,anyrange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anyrange/?v=11", "text": "&<(anyrange,anyrange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anyrange/?v=11", "text": "&&(anyrange,anyrange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anyrange/?v=11", "text": "&>(anyrange,anyrange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anyrange/?v=11", "text": ">>(anyrange,anyrange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anyrange/?v=11", "text": "-|-(anyrange,anyrange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyrange/?v=11", "text": "@>(anyrange,anyrange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anyrange/?v=11", "text": "<@(anyrange,anyrange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyelement/?v=11", "text": "@>(anyrange,anyelement)"}, "strategy": "16", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3d-anyrange-anyrange/?v=11", "text": "=(anyrange,anyrange)"}, "strategy": "18", "description": "equal", "sort_family": ""}], "title": "Family operator strategies", "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": "support-functions", "rows": [{"number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=11", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=11", "text": "anyrange"}, "result_type": "bool"}, {"number": "2", "function": "range_gist_union(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=11", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=11", "text": "anyrange"}, "result_type": "anyrange"}, {"number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=11", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=11", "text": "anyrange"}, "result_type": "internal"}, {"number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=11", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=11", "text": "anyrange"}, "result_type": "internal"}, {"number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=11", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=11", "text": "anyrange"}, "result_type": "internal"}], "title": "Family support functions", "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": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-gist-range_ops/?v=11", "text": "range_ops"}, "default": "yes", "key_type": "Same as input type", "input_type": {"url": "/wiki/type/anyrange/?v=11", "text": "anyrange"}}], "title": "Classes in this family", "columns": [{"key": "class", "label": "Class"}, {"key": "input_type", "label": "Input type"}, {"key": "key_type", "label": "Key type"}, {"key": "default", "label": "Default"}]}], "aliases": ["range_ops", "gist/range_ops"], "classes": [{"name": "range_ops", "slug": "class-gist-range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange", "source_oid": "", "family_slug": "family-gist-range_ops"}], "related": [{"url": "/wiki/indexam/gist/?v=11", "label": "GiST Index AM"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "11.22", "major": "11", "channel": "historical", "revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0", "source_sha256": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0", "manual_fingerprint": "99c9e45d34555f000789cb4e019492e838041c1f2f31d840f3051ff9d7ed9118", "catalog_fingerprint": "4f08eb8c7ac7d09abfbb29a172148a44b8fb72026616bb55a5f8f84db7a38785"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, {"url": "/docs/11/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 11 English manual: indexes-opclass.html", "sha256": "234c67ab5a33096697e1851c197c79ba0e872686c7909c2696716a102253c7bd"}, {"url": "/docs/11/catalog-pg-opfamily.html", "path": "catalog-pg-opfamily.html", "label": "PostgreSQL 11 English manual: catalog-pg-opfamily.html", "sha256": "bc70c6a938dcf14c212ff9139ff1436f8292305ae551f7af4432c2b034d84070"}, {"url": "/docs/11/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 11 English manual: catalog-pg-amop.html", "sha256": "c17d050a6f2d093de2c343242bcc4d446b936de1d2902727d3fa3b0697b44fd3"}, {"url": "/docs/11/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 11 English manual: catalog-pg-amproc.html", "sha256": "819e66cb86af033d3328a3602c65c861e9f2d2c519d1f42f37fdd7766e1fc31f"}], "sections": [{"title": "Operator classes and families", "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:"]}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyelement", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "description": "equal", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3d-anyrange-anyrange", "sort_family_slug": ""}], "signature": "gist/range_ops", "source_oid": "3919", "description": ["GiST operator family containing 1 classes, 10 operator strategies and 5 support functions in this source build."], "comparison_data": {"kind": "family", "classes": [{"name": "range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange"}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}], "attributes": {"name": "range_ops", "method": "gist"}, "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}]}, "comparison_hash": "784f5beaa82d1aecefe9b1eef10c39ff66642dc8e3e287d84138bc6bc9a34ec4", "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}]}, "12": {"facts": [{"label": "Object kind", "value": "Operator family"}, {"label": "Index AM", "value": "GiST"}], "family": {"name": "range_ops", "method": "gist"}, "tables": [{"key": "operators", "rows": [{"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anyrange/?v=12", "text": "<<(anyrange,anyrange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anyrange/?v=12", "text": "&<(anyrange,anyrange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anyrange/?v=12", "text": "&&(anyrange,anyrange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anyrange/?v=12", "text": "&>(anyrange,anyrange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anyrange/?v=12", "text": ">>(anyrange,anyrange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anyrange/?v=12", "text": "-|-(anyrange,anyrange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyrange/?v=12", "text": "@>(anyrange,anyrange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anyrange/?v=12", "text": "<@(anyrange,anyrange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyelement/?v=12", "text": "@>(anyrange,anyelement)"}, "strategy": "16", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3d-anyrange-anyrange/?v=12", "text": "=(anyrange,anyrange)"}, "strategy": "18", "description": "equal", "sort_family": ""}], "title": "Family operator strategies", "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": "support-functions", "rows": [{"number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=12", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=12", "text": "anyrange"}, "result_type": "bool"}, {"number": "2", "function": "range_gist_union(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=12", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=12", "text": "anyrange"}, "result_type": "anyrange"}, {"number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=12", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=12", "text": "anyrange"}, "result_type": "internal"}, {"number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=12", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=12", "text": "anyrange"}, "result_type": "internal"}, {"number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=12", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=12", "text": "anyrange"}, "result_type": "internal"}], "title": "Family support functions", "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": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-gist-range_ops/?v=12", "text": "range_ops"}, "default": "yes", "key_type": "Same as input type", "input_type": {"url": "/wiki/type/anyrange/?v=12", "text": "anyrange"}}], "title": "Classes in this family", "columns": [{"key": "class", "label": "Class"}, {"key": "input_type", "label": "Input type"}, {"key": "key_type", "label": "Key type"}, {"key": "default", "label": "Default"}]}], "aliases": ["range_ops", "gist/range_ops"], "classes": [{"name": "range_ops", "slug": "class-gist-range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange", "source_oid": "", "family_slug": "family-gist-range_ops"}], "related": [{"url": "/wiki/indexam/gist/?v=12", "label": "GiST Index AM"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "12.22", "major": "12", "channel": "historical", "revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b", "source_sha256": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b", "manual_fingerprint": "535df36baec2140f211303631c0a3f64e02d2673b9d34cb050d247997c94bd1e", "catalog_fingerprint": "1f423fd3c5fb61c039f8814116ce19dedbb2804bc864599818e88cbc4f5f284a"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, {"url": "/docs/12/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 12 English manual: indexes-opclass.html", "sha256": "bdd742eaf65ab7addb35aa56509afe244d63775521460a046bf76f50bc0389db"}, {"url": "/docs/12/catalog-pg-opfamily.html", "path": "catalog-pg-opfamily.html", "label": "PostgreSQL 12 English manual: catalog-pg-opfamily.html", "sha256": "75a570e54ddf195baf23b86b05e0409dabae1f98dd223f9ca028e70deb4f3435"}, {"url": "/docs/12/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 12 English manual: catalog-pg-amop.html", "sha256": "84b91a9d763b1fb2968cc8be226a0369d31a6acb2468eb56cfd0b8d2030d1b45"}, {"url": "/docs/12/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 12 English manual: catalog-pg-amproc.html", "sha256": "8fecd047164ac5772bb48770067c55ab89a810d2ee1686ed316738bc0c18e330"}], "sections": [{"title": "Operator classes and families", "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:"]}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyelement", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "description": "equal", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3d-anyrange-anyrange", "sort_family_slug": ""}], "signature": "gist/range_ops", "source_oid": "3919", "description": ["GiST operator family containing 1 classes, 10 operator strategies and 5 support functions in this source build."], "comparison_data": {"kind": "family", "classes": [{"name": "range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange"}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}], "attributes": {"name": "range_ops", "method": "gist"}, "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}]}, "comparison_hash": "784f5beaa82d1aecefe9b1eef10c39ff66642dc8e3e287d84138bc6bc9a34ec4", "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}]}, "13": {"facts": [{"label": "Object kind", "value": "Operator family"}, {"label": "Index AM", "value": "GiST"}], "family": {"name": "range_ops", "method": "gist"}, "tables": [{"key": "operators", "rows": [{"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anyrange/?v=13", "text": "<<(anyrange,anyrange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anyrange/?v=13", "text": "&<(anyrange,anyrange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anyrange/?v=13", "text": "&&(anyrange,anyrange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anyrange/?v=13", "text": "&>(anyrange,anyrange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anyrange/?v=13", "text": ">>(anyrange,anyrange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anyrange/?v=13", "text": "-|-(anyrange,anyrange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyrange/?v=13", "text": "@>(anyrange,anyrange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anyrange/?v=13", "text": "<@(anyrange,anyrange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyelement/?v=13", "text": "@>(anyrange,anyelement)"}, "strategy": "16", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3d-anyrange-anyrange/?v=13", "text": "=(anyrange,anyrange)"}, "strategy": "18", "description": "equal", "sort_family": ""}], "title": "Family operator strategies", "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": "support-functions", "rows": [{"number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=13", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=13", "text": "anyrange"}, "result_type": "bool"}, {"number": "2", "function": "range_gist_union(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=13", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=13", "text": "anyrange"}, "result_type": "anyrange"}, {"number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=13", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=13", "text": "anyrange"}, "result_type": "internal"}, {"number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=13", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=13", "text": "anyrange"}, "result_type": "internal"}, {"number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=13", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=13", "text": "anyrange"}, "result_type": "internal"}], "title": "Family support functions", "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": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-gist-range_ops/?v=13", "text": "range_ops"}, "default": "yes", "key_type": "Same as input type", "input_type": {"url": "/wiki/type/anyrange/?v=13", "text": "anyrange"}}], "title": "Classes in this family", "columns": [{"key": "class", "label": "Class"}, {"key": "input_type", "label": "Input type"}, {"key": "key_type", "label": "Key type"}, {"key": "default", "label": "Default"}]}], "aliases": ["range_ops", "gist/range_ops"], "classes": [{"name": "range_ops", "slug": "class-gist-range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange", "source_oid": "", "family_slug": "family-gist-range_ops"}], "related": [{"url": "/wiki/indexam/gist/?v=13", "label": "GiST Index AM"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "13.23", "major": "13", "channel": "historical", "revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6", "source_sha256": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6", "manual_fingerprint": "2bbea71f4723fc9e4e58cfdb28368763f999de2800d45ade748f7c7546dfb9d3", "catalog_fingerprint": "df58d29b226fbb90326087233d7970032abdec1352373270449eeee324f84a35"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, {"url": "/docs/13/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 13 English manual: indexes-opclass.html", "sha256": "37723d8b80464e32b69ead59eff6160555679eb963ab37c5c3a8a6cbae1b152b"}, {"url": "/docs/13/catalog-pg-opfamily.html", "path": "catalog-pg-opfamily.html", "label": "PostgreSQL 13 English manual: catalog-pg-opfamily.html", "sha256": "238c97d1b6b9532d52b4cd0cc25f2b48be0dc4f2909858a45553863e801a969d"}, {"url": "/docs/13/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 13 English manual: catalog-pg-amop.html", "sha256": "7a8e67f8dc59c305612c6d029fc8760c092f27203d5338c6db6c6d9b8aabc561"}, {"url": "/docs/13/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 13 English manual: catalog-pg-amproc.html", "sha256": "7304d151ac7c668be22d688c152e43989557f61455a75dc74f4660363e7ab9ef"}], "sections": [{"title": "Operator classes and families", "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:"]}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyelement", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "description": "equal", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3d-anyrange-anyrange", "sort_family_slug": ""}], "signature": "gist/range_ops", "source_oid": "3919", "description": ["GiST operator family containing 1 classes, 10 operator strategies and 5 support functions in this source build."], "comparison_data": {"kind": "family", "classes": [{"name": "range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange"}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}], "attributes": {"name": "range_ops", "method": "gist"}, "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}]}, "comparison_hash": "784f5beaa82d1aecefe9b1eef10c39ff66642dc8e3e287d84138bc6bc9a34ec4", "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}]}, "14": {"facts": [{"label": "Object kind", "value": "Operator family"}, {"label": "Index AM", "value": "GiST"}], "family": {"name": "range_ops", "method": "gist"}, "tables": [{"key": "operators", "rows": [{"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anyrange/?v=14", "text": "<<(anyrange,anyrange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anymultirange/?v=14", "text": "<<(anyrange,anymultirange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anyrange/?v=14", "text": "&<(anyrange,anyrange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anymultirange/?v=14", "text": "&<(anyrange,anymultirange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anyrange/?v=14", "text": "&&(anyrange,anyrange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anymultirange/?v=14", "text": "&&(anyrange,anymultirange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anyrange/?v=14", "text": "&>(anyrange,anyrange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anymultirange/?v=14", "text": "&>(anyrange,anymultirange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anyrange/?v=14", "text": ">>(anyrange,anyrange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anymultirange/?v=14", "text": ">>(anyrange,anymultirange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anyrange/?v=14", "text": "-|-(anyrange,anyrange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anymultirange/?v=14", "text": "-|-(anyrange,anymultirange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyrange/?v=14", "text": "@>(anyrange,anyrange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anymultirange/?v=14", "text": "@>(anyrange,anymultirange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anyrange/?v=14", "text": "<@(anyrange,anyrange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anymultirange/?v=14", "text": "<@(anyrange,anymultirange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyelement/?v=14", "text": "@>(anyrange,anyelement)"}, "strategy": "16", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3d-anyrange-anyrange/?v=14", "text": "=(anyrange,anyrange)"}, "strategy": "18", "description": "equal", "sort_family": ""}], "title": "Family operator strategies", "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": "support-functions", "rows": [{"number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=14", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=14", "text": "anyrange"}, "result_type": "bool"}, {"number": "2", "function": "range_gist_union(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=14", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=14", "text": "anyrange"}, "result_type": "anyrange"}, {"number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=14", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=14", "text": "anyrange"}, "result_type": "internal"}, {"number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=14", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=14", "text": "anyrange"}, "result_type": "internal"}, {"number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=14", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=14", "text": "anyrange"}, "result_type": "internal"}], "title": "Family support functions", "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": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-gist-range_ops/?v=14", "text": "range_ops"}, "default": "yes", "key_type": "Same as input type", "input_type": {"url": "/wiki/type/anyrange/?v=14", "text": "anyrange"}}], "title": "Classes in this family", "columns": [{"key": "class", "label": "Class"}, {"key": "input_type", "label": "Input type"}, {"key": "key_type", "label": "Key type"}, {"key": "default", "label": "Default"}]}], "aliases": ["range_ops", "gist/range_ops"], "classes": [{"name": "range_ops", "slug": "class-gist-range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange", "source_oid": "", "family_slug": "family-gist-range_ops"}], "related": [{"url": "/wiki/indexam/gist/?v=14", "label": "GiST Index AM"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "14.24", "major": "14", "channel": "stable", "revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897", "source_sha256": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897", "manual_fingerprint": "1d055c6dc55d4defe2b6e9d0f842a47005487b21025b67e51d06721d3c122f71", "catalog_fingerprint": "9e0116f26e5ce870719efb77ef7b73e30c7928f8af27cbe87fdea32efe3811ef"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, {"url": "/docs/14/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 14 English manual: indexes-opclass.html", "sha256": "b7e355fb7c1e6fe473dc70d4c7e73cd3aa9a11dddd2e32ece5e8effbdb910c0b"}, {"url": "/docs/14/catalog-pg-opfamily.html", "path": "catalog-pg-opfamily.html", "label": "PostgreSQL 14 English manual: catalog-pg-opfamily.html", "sha256": "8a0b55015a6e8f90326f0526570b3bbca00a06a3c1ca142b8324528b60112c4f"}, {"url": "/docs/14/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 14 English manual: catalog-pg-amop.html", "sha256": "402b87d7fb1a313b096ba5349a676ae38d507e2eb98739d6ed7f0681e0b9a9a4"}, {"url": "/docs/14/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 14 English manual: catalog-pg-amproc.html", "sha256": "5b918a7eba7592dc13a32a8fcbb7ca0a198d8f4d2b8a85b3c7befbc7705d44a1"}], "sections": [{"title": "Operator classes and families", "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:"]}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anymultirange)", "strategy": "1", "left_type": "anyrange", "right_type": "anymultirange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anymultirange)", "strategy": "2", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anymultirange)", "strategy": "3", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anymultirange)", "strategy": "4", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anymultirange)", "strategy": "5", "left_type": "anyrange", "right_type": "anymultirange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anymultirange)", "strategy": "6", "left_type": "anyrange", "right_type": "anymultirange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anymultirange)", "strategy": "7", "left_type": "anyrange", "right_type": "anymultirange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anymultirange)", "strategy": "8", "left_type": "anyrange", "right_type": "anymultirange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyelement", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "description": "equal", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3d-anyrange-anyrange", "sort_family_slug": ""}], "signature": "gist/range_ops", "source_oid": "3919", "description": ["GiST operator family containing 1 classes, 18 operator strategies and 5 support functions in this source build."], "comparison_data": {"kind": "family", "classes": [{"name": "range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange"}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anymultirange)", "strategy": "1", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anymultirange)", "strategy": "2", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anymultirange)", "strategy": "3", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anymultirange)", "strategy": "4", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anymultirange)", "strategy": "5", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anymultirange)", "strategy": "6", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anymultirange)", "strategy": "7", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anymultirange)", "strategy": "8", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}], "attributes": {"name": "range_ops", "method": "gist"}, "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}]}, "comparison_hash": "ccf2f74a71401e1505fcd4fe20dc1334c986b003ecfbd3161fcee993774b2148", "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}]}, "15": {"facts": [{"label": "Object kind", "value": "Operator family"}, {"label": "Index AM", "value": "GiST"}], "family": {"name": "range_ops", "method": "gist"}, "tables": [{"key": "operators", "rows": [{"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anyrange/?v=15", "text": "<<(anyrange,anyrange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anymultirange/?v=15", "text": "<<(anyrange,anymultirange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anyrange/?v=15", "text": "&<(anyrange,anyrange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anymultirange/?v=15", "text": "&<(anyrange,anymultirange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anyrange/?v=15", "text": "&&(anyrange,anyrange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anymultirange/?v=15", "text": "&&(anyrange,anymultirange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anyrange/?v=15", "text": "&>(anyrange,anyrange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anymultirange/?v=15", "text": "&>(anyrange,anymultirange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anyrange/?v=15", "text": ">>(anyrange,anyrange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anymultirange/?v=15", "text": ">>(anyrange,anymultirange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anyrange/?v=15", "text": "-|-(anyrange,anyrange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anymultirange/?v=15", "text": "-|-(anyrange,anymultirange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyrange/?v=15", "text": "@>(anyrange,anyrange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anymultirange/?v=15", "text": "@>(anyrange,anymultirange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anyrange/?v=15", "text": "<@(anyrange,anyrange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anymultirange/?v=15", "text": "<@(anyrange,anymultirange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyelement/?v=15", "text": "@>(anyrange,anyelement)"}, "strategy": "16", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3d-anyrange-anyrange/?v=15", "text": "=(anyrange,anyrange)"}, "strategy": "18", "description": "equal", "sort_family": ""}], "title": "Family operator strategies", "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": "support-functions", "rows": [{"number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=15", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=15", "text": "anyrange"}, "result_type": "bool"}, {"number": "2", "function": "range_gist_union(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=15", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=15", "text": "anyrange"}, "result_type": "anyrange"}, {"number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=15", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=15", "text": "anyrange"}, "result_type": "internal"}, {"number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=15", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=15", "text": "anyrange"}, "result_type": "internal"}, {"number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=15", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=15", "text": "anyrange"}, "result_type": "internal"}], "title": "Family support functions", "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": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-gist-range_ops/?v=15", "text": "range_ops"}, "default": "yes", "key_type": "Same as input type", "input_type": {"url": "/wiki/type/anyrange/?v=15", "text": "anyrange"}}], "title": "Classes in this family", "columns": [{"key": "class", "label": "Class"}, {"key": "input_type", "label": "Input type"}, {"key": "key_type", "label": "Key type"}, {"key": "default", "label": "Default"}]}], "aliases": ["range_ops", "gist/range_ops"], "classes": [{"name": "range_ops", "slug": "class-gist-range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange", "source_oid": "", "family_slug": "family-gist-range_ops"}], "related": [{"url": "/wiki/indexam/gist/?v=15", "label": "GiST Index AM"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "15.19", "major": "15", "channel": "stable", "revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89", "source_sha256": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89", "manual_fingerprint": "f39c61e9facb5b9404c7d6d1cf494d83af0cc46146554a7fc40724eb882d24a9", "catalog_fingerprint": "1c332a5ccec7bfdd8ca19b55a0279b5bd6cb1dd5dcc6c5587a98a491a9b566a5"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, {"url": "/docs/15/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 15 English manual: indexes-opclass.html", "sha256": "57685c0a60cb570754be680551a6947556a03b6ff16a4a511483bdcac143c6da"}, {"url": "/docs/15/catalog-pg-opfamily.html", "path": "catalog-pg-opfamily.html", "label": "PostgreSQL 15 English manual: catalog-pg-opfamily.html", "sha256": "f64fe11b448841cb4016489062de017e275de583a429b06c1824f545835ef300"}, {"url": "/docs/15/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 15 English manual: catalog-pg-amop.html", "sha256": "53ced8770f19710869151ab02a9a6f0d97380981ca4bfe83752092bfb74a9e0c"}, {"url": "/docs/15/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 15 English manual: catalog-pg-amproc.html", "sha256": "cdcce97c140ef4b73e0abc870c6a7f0d8ebda9f31d4c02b3f5444f50828d7f37"}], "sections": [{"title": "Operator classes and families", "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:"]}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anymultirange)", "strategy": "1", "left_type": "anyrange", "right_type": "anymultirange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anymultirange)", "strategy": "2", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anymultirange)", "strategy": "3", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anymultirange)", "strategy": "4", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anymultirange)", "strategy": "5", "left_type": "anyrange", "right_type": "anymultirange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anymultirange)", "strategy": "6", "left_type": "anyrange", "right_type": "anymultirange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anymultirange)", "strategy": "7", "left_type": "anyrange", "right_type": "anymultirange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anymultirange)", "strategy": "8", "left_type": "anyrange", "right_type": "anymultirange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyelement", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "description": "equal", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3d-anyrange-anyrange", "sort_family_slug": ""}], "signature": "gist/range_ops", "source_oid": "3919", "description": ["GiST operator family containing 1 classes, 18 operator strategies and 5 support functions in this source build."], "comparison_data": {"kind": "family", "classes": [{"name": "range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange"}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anymultirange)", "strategy": "1", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anymultirange)", "strategy": "2", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anymultirange)", "strategy": "3", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anymultirange)", "strategy": "4", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anymultirange)", "strategy": "5", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anymultirange)", "strategy": "6", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anymultirange)", "strategy": "7", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anymultirange)", "strategy": "8", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}], "attributes": {"name": "range_ops", "method": "gist"}, "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}]}, "comparison_hash": "ccf2f74a71401e1505fcd4fe20dc1334c986b003ecfbd3161fcee993774b2148", "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}]}, "16": {"facts": [{"label": "Object kind", "value": "Operator family"}, {"label": "Index AM", "value": "GiST"}], "family": {"name": "range_ops", "method": "gist"}, "tables": [{"key": "operators", "rows": [{"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anyrange/?v=16", "text": "<<(anyrange,anyrange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anymultirange/?v=16", "text": "<<(anyrange,anymultirange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anyrange/?v=16", "text": "&<(anyrange,anyrange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anymultirange/?v=16", "text": "&<(anyrange,anymultirange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anyrange/?v=16", "text": "&&(anyrange,anyrange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anymultirange/?v=16", "text": "&&(anyrange,anymultirange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anyrange/?v=16", "text": "&>(anyrange,anyrange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anymultirange/?v=16", "text": "&>(anyrange,anymultirange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anyrange/?v=16", "text": ">>(anyrange,anyrange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anymultirange/?v=16", "text": ">>(anyrange,anymultirange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anyrange/?v=16", "text": "-|-(anyrange,anyrange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anymultirange/?v=16", "text": "-|-(anyrange,anymultirange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyrange/?v=16", "text": "@>(anyrange,anyrange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anymultirange/?v=16", "text": "@>(anyrange,anymultirange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anyrange/?v=16", "text": "<@(anyrange,anyrange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anymultirange/?v=16", "text": "<@(anyrange,anymultirange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyelement/?v=16", "text": "@>(anyrange,anyelement)"}, "strategy": "16", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3d-anyrange-anyrange/?v=16", "text": "=(anyrange,anyrange)"}, "strategy": "18", "description": "equal", "sort_family": ""}], "title": "Family operator strategies", "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": "support-functions", "rows": [{"number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=16", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=16", "text": "anyrange"}, "result_type": "bool"}, {"number": "2", "function": "range_gist_union(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=16", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=16", "text": "anyrange"}, "result_type": "anyrange"}, {"number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=16", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=16", "text": "anyrange"}, "result_type": "internal"}, {"number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=16", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=16", "text": "anyrange"}, "result_type": "internal"}, {"number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=16", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=16", "text": "anyrange"}, "result_type": "internal"}], "title": "Family support functions", "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": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-gist-range_ops/?v=16", "text": "range_ops"}, "default": "yes", "key_type": "Same as input type", "input_type": {"url": "/wiki/type/anyrange/?v=16", "text": "anyrange"}}], "title": "Classes in this family", "columns": [{"key": "class", "label": "Class"}, {"key": "input_type", "label": "Input type"}, {"key": "key_type", "label": "Key type"}, {"key": "default", "label": "Default"}]}], "aliases": ["range_ops", "gist/range_ops"], "classes": [{"name": "range_ops", "slug": "class-gist-range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange", "source_oid": "", "family_slug": "family-gist-range_ops"}], "related": [{"url": "/wiki/indexam/gist/?v=16", "label": "GiST Index AM"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "16.15", "major": "16", "channel": "stable", "revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed", "source_sha256": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed", "manual_fingerprint": "846fb006e9d590387203c1c65f671240bc5c30604c4e3084cf572817aacc19d0", "catalog_fingerprint": "70797d889dd8aeed77ae81092f99ab380e1109b54b0b7ca6fbf400e0a2111a70"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, {"url": "/docs/16/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 16 English manual: indexes-opclass.html", "sha256": "a524c924c56d14615e7ea68aaaddd7c62abf7d153a0e291c191e0f4e962ffbae"}, {"url": "/docs/16/catalog-pg-opfamily.html", "path": "catalog-pg-opfamily.html", "label": "PostgreSQL 16 English manual: catalog-pg-opfamily.html", "sha256": "71b9139e78f463b6d1146ecc748e9142aedb70d82e003d27b43e95d9b6108b9d"}, {"url": "/docs/16/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 16 English manual: catalog-pg-amop.html", "sha256": "f580ac4a34d5f9d567834684e0c41b7df32a952e20a2fc11a9ce0964c2df7e9a"}, {"url": "/docs/16/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 16 English manual: catalog-pg-amproc.html", "sha256": "ce78e17af3e627c9f4a1b517d77b8eb2e071ba2e963f8b196bf9535ca98c388a"}], "sections": [{"title": "Operator classes and families", "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:"]}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anymultirange)", "strategy": "1", "left_type": "anyrange", "right_type": "anymultirange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anymultirange)", "strategy": "2", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anymultirange)", "strategy": "3", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anymultirange)", "strategy": "4", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anymultirange)", "strategy": "5", "left_type": "anyrange", "right_type": "anymultirange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anymultirange)", "strategy": "6", "left_type": "anyrange", "right_type": "anymultirange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anymultirange)", "strategy": "7", "left_type": "anyrange", "right_type": "anymultirange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anymultirange)", "strategy": "8", "left_type": "anyrange", "right_type": "anymultirange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyelement", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "description": "equal", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3d-anyrange-anyrange", "sort_family_slug": ""}], "signature": "gist/range_ops", "source_oid": "3919", "description": ["GiST operator family containing 1 classes, 18 operator strategies and 5 support functions in this source build."], "comparison_data": {"kind": "family", "classes": [{"name": "range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange"}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anymultirange)", "strategy": "1", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anymultirange)", "strategy": "2", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anymultirange)", "strategy": "3", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anymultirange)", "strategy": "4", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anymultirange)", "strategy": "5", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anymultirange)", "strategy": "6", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anymultirange)", "strategy": "7", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anymultirange)", "strategy": "8", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}], "attributes": {"name": "range_ops", "method": "gist"}, "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}]}, "comparison_hash": "ccf2f74a71401e1505fcd4fe20dc1334c986b003ecfbd3161fcee993774b2148", "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}]}, "17": {"facts": [{"label": "Object kind", "value": "Operator family"}, {"label": "Index AM", "value": "GiST"}], "family": {"name": "range_ops", "method": "gist"}, "tables": [{"key": "operators", "rows": [{"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anyrange/?v=17", "text": "<<(anyrange,anyrange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anymultirange/?v=17", "text": "<<(anyrange,anymultirange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anyrange/?v=17", "text": "&<(anyrange,anyrange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anymultirange/?v=17", "text": "&<(anyrange,anymultirange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anyrange/?v=17", "text": "&&(anyrange,anyrange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anymultirange/?v=17", "text": "&&(anyrange,anymultirange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anyrange/?v=17", "text": "&>(anyrange,anyrange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anymultirange/?v=17", "text": "&>(anyrange,anymultirange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anyrange/?v=17", "text": ">>(anyrange,anyrange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anymultirange/?v=17", "text": ">>(anyrange,anymultirange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anyrange/?v=17", "text": "-|-(anyrange,anyrange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anymultirange/?v=17", "text": "-|-(anyrange,anymultirange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyrange/?v=17", "text": "@>(anyrange,anyrange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anymultirange/?v=17", "text": "@>(anyrange,anymultirange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anyrange/?v=17", "text": "<@(anyrange,anyrange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anymultirange/?v=17", "text": "<@(anyrange,anymultirange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyelement/?v=17", "text": "@>(anyrange,anyelement)"}, "strategy": "16", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3d-anyrange-anyrange/?v=17", "text": "=(anyrange,anyrange)"}, "strategy": "18", "description": "equal", "sort_family": ""}], "title": "Family operator strategies", "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": "support-functions", "rows": [{"number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=17", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=17", "text": "anyrange"}, "result_type": "bool"}, {"number": "2", "function": "range_gist_union(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=17", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=17", "text": "anyrange"}, "result_type": "anyrange"}, {"number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=17", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=17", "text": "anyrange"}, "result_type": "internal"}, {"number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=17", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=17", "text": "anyrange"}, "result_type": "internal"}, {"number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=17", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=17", "text": "anyrange"}, "result_type": "internal"}], "title": "Family support functions", "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": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-gist-range_ops/?v=17", "text": "range_ops"}, "default": "yes", "key_type": "Same as input type", "input_type": {"url": "/wiki/type/anyrange/?v=17", "text": "anyrange"}}], "title": "Classes in this family", "columns": [{"key": "class", "label": "Class"}, {"key": "input_type", "label": "Input type"}, {"key": "key_type", "label": "Key type"}, {"key": "default", "label": "Default"}]}], "aliases": ["range_ops", "gist/range_ops"], "classes": [{"name": "range_ops", "slug": "class-gist-range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange", "source_oid": "", "family_slug": "family-gist-range_ops"}], "related": [{"url": "/wiki/indexam/gist/?v=17", "label": "GiST Index AM"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "17.11", "major": "17", "channel": "stable", "revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979", "source_sha256": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979", "manual_fingerprint": "b55870f8e80e1114a92ac7bfc97f4a6fa0dee8e75935895252bb6e5b866cf187", "catalog_fingerprint": "e888e3474202df1c60a8e7b6bf9f2d83b3866a52d119521659b7a82787d3829d"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, {"url": "/docs/17/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 17 English manual: indexes-opclass.html", "sha256": "dcdeb2d461b79e5c679d29f2a6d3ad038c788ba5a6d094e63d17353352db3ef2"}, {"url": "/docs/17/catalog-pg-opfamily.html", "path": "catalog-pg-opfamily.html", "label": "PostgreSQL 17 English manual: catalog-pg-opfamily.html", "sha256": "f7825b4e69f5073f44322085111577a0747a214b367c599e87491f75bc2a05ef"}, {"url": "/docs/17/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 17 English manual: catalog-pg-amop.html", "sha256": "19b2fb110b348860f7fbcb6e0e0544e341f5645113c23f50920a54434d432359"}, {"url": "/docs/17/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 17 English manual: catalog-pg-amproc.html", "sha256": "c1e9a6c78cb61e434eba6e22547c50a677d0c414049fd515263bec770b16ff55"}], "sections": [{"title": "Operator classes and families", "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:"]}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anymultirange)", "strategy": "1", "left_type": "anyrange", "right_type": "anymultirange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anymultirange)", "strategy": "2", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anymultirange)", "strategy": "3", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anymultirange)", "strategy": "4", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anymultirange)", "strategy": "5", "left_type": "anyrange", "right_type": "anymultirange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anymultirange)", "strategy": "6", "left_type": "anyrange", "right_type": "anymultirange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anymultirange)", "strategy": "7", "left_type": "anyrange", "right_type": "anymultirange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anymultirange)", "strategy": "8", "left_type": "anyrange", "right_type": "anymultirange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyelement", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "description": "equal", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3d-anyrange-anyrange", "sort_family_slug": ""}], "signature": "gist/range_ops", "source_oid": "3919", "description": ["GiST operator family containing 1 classes, 18 operator strategies and 5 support functions in this source build."], "comparison_data": {"kind": "family", "classes": [{"name": "range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange"}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anymultirange)", "strategy": "1", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anymultirange)", "strategy": "2", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anymultirange)", "strategy": "3", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anymultirange)", "strategy": "4", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anymultirange)", "strategy": "5", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anymultirange)", "strategy": "6", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anymultirange)", "strategy": "7", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anymultirange)", "strategy": "8", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}], "attributes": {"name": "range_ops", "method": "gist"}, "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}]}, "comparison_hash": "ccf2f74a71401e1505fcd4fe20dc1334c986b003ecfbd3161fcee993774b2148", "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}]}, "18": {"facts": [{"label": "Object kind", "value": "Operator family"}, {"label": "Index AM", "value": "GiST"}], "family": {"name": "range_ops", "method": "gist"}, "tables": [{"key": "operators", "rows": [{"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anyrange/?v=18", "text": "<<(anyrange,anyrange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anymultirange/?v=18", "text": "<<(anyrange,anymultirange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anyrange/?v=18", "text": "&<(anyrange,anyrange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anymultirange/?v=18", "text": "&<(anyrange,anymultirange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anyrange/?v=18", "text": "&&(anyrange,anyrange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anymultirange/?v=18", "text": "&&(anyrange,anymultirange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anyrange/?v=18", "text": "&>(anyrange,anyrange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anymultirange/?v=18", "text": "&>(anyrange,anymultirange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anyrange/?v=18", "text": ">>(anyrange,anyrange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anymultirange/?v=18", "text": ">>(anyrange,anymultirange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anyrange/?v=18", "text": "-|-(anyrange,anyrange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anymultirange/?v=18", "text": "-|-(anyrange,anymultirange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyrange/?v=18", "text": "@>(anyrange,anyrange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anymultirange/?v=18", "text": "@>(anyrange,anymultirange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anyrange/?v=18", "text": "<@(anyrange,anyrange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anymultirange/?v=18", "text": "<@(anyrange,anymultirange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyelement/?v=18", "text": "@>(anyrange,anyelement)"}, "strategy": "16", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3d-anyrange-anyrange/?v=18", "text": "=(anyrange,anyrange)"}, "strategy": "18", "description": "equal", "sort_family": ""}], "title": "Family operator strategies", "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": "support-functions", "rows": [{"number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "result_type": "bool"}, {"number": "2", "function": "range_gist_union(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "result_type": "anyrange"}, {"number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "result_type": "internal"}, {"number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "result_type": "internal"}, {"number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "result_type": "internal"}, {"number": "11", "function": "range_sortsupport(internal)", "left_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "result_type": "void"}, {"number": "12", "function": "gist_translate_cmptype_common(int4)", "left_type": {"url": "/wiki/type/any/?v=18", "text": "any"}, "right_type": {"url": "/wiki/type/any/?v=18", "text": "any"}, "result_type": "int2"}], "title": "Family support functions", "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": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-gist-range_ops/?v=18", "text": "range_ops"}, "default": "yes", "key_type": "Same as input type", "input_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}}], "title": "Classes in this family", "columns": [{"key": "class", "label": "Class"}, {"key": "input_type", "label": "Input type"}, {"key": "key_type", "label": "Key type"}, {"key": "default", "label": "Default"}]}], "aliases": ["range_ops", "gist/range_ops"], "classes": [{"name": "range_ops", "slug": "class-gist-range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange", "source_oid": "", "family_slug": "family-gist-range_ops"}], "related": [{"url": "/wiki/indexam/gist/?v=18", "label": "GiST Index AM"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "manual_fingerprint": "fefce9e478eb2afe5e17e869492bbedc67dce23d317f0a5257240113d6496ebc", "catalog_fingerprint": "deec62e0f0c649d9d0d058ddd0b16bf41afffd569c3fd73949ff0971ce5cabd6"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, {"url": "/docs/18/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 18 English manual: indexes-opclass.html", "sha256": "07de06abf3a2aff2a891a2789def434d9b76705e54d45ca5338dc13451ae2962"}, {"url": "/docs/18/catalog-pg-opfamily.html", "path": "catalog-pg-opfamily.html", "label": "PostgreSQL 18 English manual: catalog-pg-opfamily.html", "sha256": "d4a2b7c2bcb5350b0c1f0111b61e4566f46fd97f48802d3ced2421a7aea60b80"}, {"url": "/docs/18/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 18 English manual: catalog-pg-amop.html", "sha256": "e65b90ee78eaf4b4da97ce5b08b972cee2e2660b882ec107be22eca47201f7d1"}, {"url": "/docs/18/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 18 English manual: catalog-pg-amproc.html", "sha256": "0a09afbde0ba8da9899bf770b86d8301bee116057b16ebe7db0e4a7fca2e91c6"}], "sections": [{"title": "Operator classes and families", "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:"]}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anymultirange)", "strategy": "1", "left_type": "anyrange", "right_type": "anymultirange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anymultirange)", "strategy": "2", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anymultirange)", "strategy": "3", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anymultirange)", "strategy": "4", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anymultirange)", "strategy": "5", "left_type": "anyrange", "right_type": "anymultirange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anymultirange)", "strategy": "6", "left_type": "anyrange", "right_type": "anymultirange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anymultirange)", "strategy": "7", "left_type": "anyrange", "right_type": "anymultirange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anymultirange)", "strategy": "8", "left_type": "anyrange", "right_type": "anymultirange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyelement", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "description": "equal", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3d-anyrange-anyrange", "sort_family_slug": ""}], "signature": "gist/range_ops", "source_oid": "3919", "description": ["GiST operator family containing 1 classes, 18 operator strategies and 7 support functions in this source build."], "comparison_data": {"kind": "family", "classes": [{"name": "range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange"}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anymultirange)", "strategy": "1", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anymultirange)", "strategy": "2", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anymultirange)", "strategy": "3", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anymultirange)", "strategy": "4", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anymultirange)", "strategy": "5", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anymultirange)", "strategy": "6", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anymultirange)", "strategy": "7", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anymultirange)", "strategy": "8", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}], "attributes": {"name": "range_ops", "method": "gist"}, "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "11", "function": "range_sortsupport(internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "void"}, {"family": "range_ops", "method": "gist", "number": "12", "function": "gist_translate_cmptype_common(int4)", "left_type": "any", "right_type": "any", "result_type": "int2"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}]}, "comparison_hash": "bdc5184c66313d3d30f31f7782feefe70801bdbb5b2fee23580344ec3f68401a", "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "11", "function": "range_sortsupport(internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "void"}, {"family": "range_ops", "method": "gist", "number": "12", "function": "gist_translate_cmptype_common(int4)", "left_type": "any", "right_type": "any", "family_slug": "family-gist-range_ops", "result_type": "int2"}]}, "19": {"facts": [{"label": "Object kind", "value": "Operator family"}, {"label": "Index AM", "value": "GiST"}], "family": {"name": "range_ops", "method": "gist"}, "tables": [{"key": "operators", "rows": [{"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anyrange/?v=19", "text": "<<(anyrange,anyrange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anymultirange/?v=19", "text": "<<(anyrange,anymultirange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anyrange/?v=19", "text": "&<(anyrange,anyrange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anymultirange/?v=19", "text": "&<(anyrange,anymultirange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anyrange/?v=19", "text": "&&(anyrange,anyrange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anymultirange/?v=19", "text": "&&(anyrange,anymultirange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anyrange/?v=19", "text": "&>(anyrange,anyrange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anymultirange/?v=19", "text": "&>(anyrange,anymultirange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anyrange/?v=19", "text": ">>(anyrange,anyrange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anymultirange/?v=19", "text": ">>(anyrange,anymultirange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anyrange/?v=19", "text": "-|-(anyrange,anyrange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anymultirange/?v=19", "text": "-|-(anyrange,anymultirange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyrange/?v=19", "text": "@>(anyrange,anyrange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anymultirange/?v=19", "text": "@>(anyrange,anymultirange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anyrange/?v=19", "text": "<@(anyrange,anyrange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anymultirange/?v=19", "text": "<@(anyrange,anymultirange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyelement/?v=19", "text": "@>(anyrange,anyelement)"}, "strategy": "16", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3d-anyrange-anyrange/?v=19", "text": "=(anyrange,anyrange)"}, "strategy": "18", "description": "equal", "sort_family": ""}], "title": "Family operator strategies", "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": "support-functions", "rows": [{"number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=19", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=19", "text": "anyrange"}, "result_type": "bool"}, {"number": "2", "function": "range_gist_union(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=19", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=19", "text": "anyrange"}, "result_type": "anyrange"}, {"number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=19", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=19", "text": "anyrange"}, "result_type": "internal"}, {"number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=19", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=19", "text": "anyrange"}, "result_type": "internal"}, {"number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=19", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=19", "text": "anyrange"}, "result_type": "internal"}, {"number": "11", "function": "range_sortsupport(internal)", "left_type": {"url": "/wiki/type/anyrange/?v=19", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=19", "text": "anyrange"}, "result_type": "void"}, {"number": "12", "function": "gist_translate_cmptype_common(int4)", "left_type": {"url": "/wiki/type/any/?v=19", "text": "any"}, "right_type": {"url": "/wiki/type/any/?v=19", "text": "any"}, "result_type": "int2"}], "title": "Family support functions", "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": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-gist-range_ops/?v=19", "text": "range_ops"}, "default": "yes", "key_type": "Same as input type", "input_type": {"url": "/wiki/type/anyrange/?v=19", "text": "anyrange"}}], "title": "Classes in this family", "columns": [{"key": "class", "label": "Class"}, {"key": "input_type", "label": "Input type"}, {"key": "key_type", "label": "Key type"}, {"key": "default", "label": "Default"}]}], "aliases": ["range_ops", "gist/range_ops"], "classes": [{"name": "range_ops", "slug": "class-gist-range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange", "source_oid": "", "family_slug": "family-gist-range_ops"}], "related": [{"url": "/wiki/indexam/gist/?v=19", "label": "GiST Index AM"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "label": "19beta4", "major": "19", "channel": "preview", "revision": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86", "source_sha256": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86", "manual_fingerprint": "d1c30d7808d3ae2edc8773a0dd66f7beb5861e8939001e171c1908f7a09bb497", "catalog_fingerprint": "9af4323d0c8ed03d0e795331930bd14ce9bf6193c6b766c463b9f6ec0829409a"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86"}, {"url": "/docs/19/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 19 English manual: indexes-opclass.html", "sha256": "eba382a4227a2865a52fb015c7aec0dbde33d3c24373e3f9ba11e1daeae8b89c"}, {"url": "/docs/19/catalog-pg-opfamily.html", "path": "catalog-pg-opfamily.html", "label": "PostgreSQL 19 English manual: catalog-pg-opfamily.html", "sha256": "a6c127afadd1d22dc5879d15563bf5c569ec30d70e06735b62b9b3611331e9c9"}, {"url": "/docs/19/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 19 English manual: catalog-pg-amop.html", "sha256": "711850fdde973fbaf16da94143a2de3b972bed7a3b8663bf80e4aeabaf2f43fe"}, {"url": "/docs/19/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 19 English manual: catalog-pg-amproc.html", "sha256": "156082a05f95005ad8fabba56d5880f15f3b194d5f378ffee29a77066c77de12"}], "sections": [{"title": "Operator classes and families", "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:"]}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anymultirange)", "strategy": "1", "left_type": "anyrange", "right_type": "anymultirange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anymultirange)", "strategy": "2", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anymultirange)", "strategy": "3", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anymultirange)", "strategy": "4", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anymultirange)", "strategy": "5", "left_type": "anyrange", "right_type": "anymultirange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anymultirange)", "strategy": "6", "left_type": "anyrange", "right_type": "anymultirange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anymultirange)", "strategy": "7", "left_type": "anyrange", "right_type": "anymultirange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anymultirange)", "strategy": "8", "left_type": "anyrange", "right_type": "anymultirange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyelement", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "description": "equal", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3d-anyrange-anyrange", "sort_family_slug": ""}], "signature": "gist/range_ops", "source_oid": "3919", "description": ["GiST operator family containing 1 classes, 18 operator strategies and 7 support functions in this source build."], "comparison_data": {"kind": "family", "classes": [{"name": "range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange"}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anymultirange)", "strategy": "1", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anymultirange)", "strategy": "2", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anymultirange)", "strategy": "3", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anymultirange)", "strategy": "4", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anymultirange)", "strategy": "5", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anymultirange)", "strategy": "6", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anymultirange)", "strategy": "7", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anymultirange)", "strategy": "8", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}], "attributes": {"name": "range_ops", "method": "gist"}, "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "11", "function": "range_sortsupport(internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "void"}, {"family": "range_ops", "method": "gist", "number": "12", "function": "gist_translate_cmptype_common(int4)", "left_type": "any", "right_type": "any", "result_type": "int2"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}]}, "comparison_hash": "bdc5184c66313d3d30f31f7782feefe70801bdbb5b2fee23580344ec3f68401a", "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "11", "function": "range_sortsupport(internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "void"}, {"family": "range_ops", "method": "gist", "number": "12", "function": "gist_translate_cmptype_common(int4)", "left_type": "any", "right_type": "any", "family_slug": "family-gist-range_ops", "result_type": "int2"}]}, "20": {"facts": [{"label": "Object kind", "value": "Operator family"}, {"label": "Index AM", "value": "GiST"}], "family": {"name": "range_ops", "method": "gist"}, "tables": [{"key": "operators", "rows": [{"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anyrange/?v=20", "text": "<<(anyrange,anyrange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anymultirange/?v=20", "text": "<<(anyrange,anymultirange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anyrange/?v=20", "text": "&<(anyrange,anyrange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anymultirange/?v=20", "text": "&<(anyrange,anymultirange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anyrange/?v=20", "text": "&&(anyrange,anyrange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anymultirange/?v=20", "text": "&&(anyrange,anymultirange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anyrange/?v=20", "text": "&>(anyrange,anyrange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anymultirange/?v=20", "text": "&>(anyrange,anymultirange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anyrange/?v=20", "text": ">>(anyrange,anyrange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anymultirange/?v=20", "text": ">>(anyrange,anymultirange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anyrange/?v=20", "text": "-|-(anyrange,anyrange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anymultirange/?v=20", "text": "-|-(anyrange,anymultirange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyrange/?v=20", "text": "@>(anyrange,anyrange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anymultirange/?v=20", "text": "@>(anyrange,anymultirange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anyrange/?v=20", "text": "<@(anyrange,anyrange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anymultirange/?v=20", "text": "<@(anyrange,anymultirange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyelement/?v=20", "text": "@>(anyrange,anyelement)"}, "strategy": "16", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3d-anyrange-anyrange/?v=20", "text": "=(anyrange,anyrange)"}, "strategy": "18", "description": "equal", "sort_family": ""}], "title": "Family operator strategies", "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": "support-functions", "rows": [{"number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=20", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=20", "text": "anyrange"}, "result_type": "bool"}, {"number": "2", "function": "range_gist_union(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=20", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=20", "text": "anyrange"}, "result_type": "anyrange"}, {"number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=20", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=20", "text": "anyrange"}, "result_type": "internal"}, {"number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=20", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=20", "text": "anyrange"}, "result_type": "internal"}, {"number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=20", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=20", "text": "anyrange"}, "result_type": "internal"}, {"number": "11", "function": "range_sortsupport(internal)", "left_type": {"url": "/wiki/type/anyrange/?v=20", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=20", "text": "anyrange"}, "result_type": "void"}, {"number": "12", "function": "gist_translate_cmptype_common(int4)", "left_type": {"url": "/wiki/type/any/?v=20", "text": "any"}, "right_type": {"url": "/wiki/type/any/?v=20", "text": "any"}, "result_type": "int2"}], "title": "Family support functions", "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": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-gist-range_ops/?v=20", "text": "range_ops"}, "default": "yes", "key_type": "Same as input type", "input_type": {"url": "/wiki/type/anyrange/?v=20", "text": "anyrange"}}], "title": "Classes in this family", "columns": [{"key": "class", "label": "Class"}, {"key": "input_type", "label": "Input type"}, {"key": "key_type", "label": "Key type"}, {"key": "default", "label": "Default"}]}], "aliases": ["range_ops", "gist/range_ops"], "classes": [{"name": "range_ops", "slug": "class-gist-range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange", "source_oid": "", "family_slug": "family-gist-range_ops"}], "related": [{"url": "/wiki/indexam/gist/?v=20", "label": "GiST Index AM"}], "release": {"ref": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "20devel", "major": "20", "channel": "devel", "revision": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41", "source_sha256": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41", "manual_fingerprint": "48fb9e20e9e1454fe93d367e75b949833c82c1c52c2b69314dfffe1c464f3f39", "catalog_fingerprint": "cc1a474e972c8c342cf17f37e2884c56cc4b114cb59407b0180e99cdcfffa5c5", "source_snapshot_utc": "26-Sep-2026 20:22"}, "sources": [{"url": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41"}, {"url": "/docs/devel/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 20 English manual: indexes-opclass.html", "sha256": "11f438e25406337ef7c41690a7d47744980230c83ade5106803b49a7a09afb80"}, {"url": "/docs/devel/catalog-pg-opfamily.html", "path": "catalog-pg-opfamily.html", "label": "PostgreSQL 20 English manual: catalog-pg-opfamily.html", "sha256": "db450aacf33a42eeb9a61782615676cad4e5c5fe8a16d3106d494ca456d14a30"}, {"url": "/docs/devel/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 20 English manual: catalog-pg-amop.html", "sha256": "00fee8a631088b687e2d880e4091791ca30f9c69fca888c51ece463d1b9e1e61"}, {"url": "/docs/devel/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 20 English manual: catalog-pg-amproc.html", "sha256": "5390831efcf71a10077be802ab320fbf5d6fc780fdadf679cd162f3a46a3c6d3"}], "sections": [{"title": "Operator classes and families", "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:"]}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anymultirange)", "strategy": "1", "left_type": "anyrange", "right_type": "anymultirange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anymultirange)", "strategy": "2", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anymultirange)", "strategy": "3", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anymultirange)", "strategy": "4", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anymultirange)", "strategy": "5", "left_type": "anyrange", "right_type": "anymultirange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anymultirange)", "strategy": "6", "left_type": "anyrange", "right_type": "anymultirange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anymultirange)", "strategy": "7", "left_type": "anyrange", "right_type": "anymultirange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anymultirange)", "strategy": "8", "left_type": "anyrange", "right_type": "anymultirange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyelement", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "description": "equal", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3d-anyrange-anyrange", "sort_family_slug": ""}], "signature": "gist/range_ops", "source_oid": "3919", "description": ["GiST operator family containing 1 classes, 18 operator strategies and 7 support functions in this source build."], "comparison_data": {"kind": "family", "classes": [{"name": "range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange"}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anymultirange)", "strategy": "1", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anymultirange)", "strategy": "2", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anymultirange)", "strategy": "3", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anymultirange)", "strategy": "4", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anymultirange)", "strategy": "5", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anymultirange)", "strategy": "6", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anymultirange)", "strategy": "7", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anymultirange)", "strategy": "8", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}], "attributes": {"name": "range_ops", "method": "gist"}, "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "11", "function": "range_sortsupport(internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "void"}, {"family": "range_ops", "method": "gist", "number": "12", "function": "gist_translate_cmptype_common(int4)", "left_type": "any", "right_type": "any", "result_type": "int2"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}]}, "comparison_hash": "bdc5184c66313d3d30f31f7782feefe70801bdbb5b2fee23580344ec3f68401a", "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "11", "function": "range_sortsupport(internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "void"}, {"family": "range_ops", "method": "gist", "number": "12", "function": "gist_translate_cmptype_common(int4)", "left_type": "any", "right_type": "any", "family_slug": "family-gist-range_ops", "result_type": "int2"}]}}}, "snapshot": {"facts": [{"label": "Object kind", "value": "Operator family"}, {"label": "Index AM", "value": "GiST"}], "family": {"name": "range_ops", "method": "gist"}, "tables": [{"key": "operators", "rows": [{"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anyrange/?v=18", "text": "<<(anyrange,anyrange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c3c-anyrange-anymultirange/?v=18", "text": "<<(anyrange,anymultirange)"}, "strategy": "1", "description": "is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anyrange/?v=18", "text": "&<(anyrange,anyrange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263c-anyrange-anymultirange/?v=18", "text": "&<(anyrange,anymultirange)"}, "strategy": "2", "description": "overlaps or is left of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anyrange/?v=18", "text": "&&(anyrange,anyrange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2626-anyrange-anymultirange/?v=18", "text": "&&(anyrange,anymultirange)"}, "strategy": "3", "description": "overlaps", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anyrange/?v=18", "text": "&>(anyrange,anyrange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-263e-anyrange-anymultirange/?v=18", "text": "&>(anyrange,anymultirange)"}, "strategy": "4", "description": "overlaps or is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anyrange/?v=18", "text": ">>(anyrange,anyrange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3e3e-anyrange-anymultirange/?v=18", "text": ">>(anyrange,anymultirange)"}, "strategy": "5", "description": "is right of", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anyrange/?v=18", "text": "-|-(anyrange,anyrange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-2d7c2d-anyrange-anymultirange/?v=18", "text": "-|-(anyrange,anymultirange)"}, "strategy": "6", "description": "is adjacent to", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyrange/?v=18", "text": "@>(anyrange,anyrange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anymultirange/?v=18", "text": "@>(anyrange,anymultirange)"}, "strategy": "7", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anyrange/?v=18", "text": "<@(anyrange,anyrange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3c40-anyrange-anymultirange/?v=18", "text": "<@(anyrange,anymultirange)"}, "strategy": "8", "description": "is contained by", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-403e-anyrange-anyelement/?v=18", "text": "@>(anyrange,anyelement)"}, "strategy": "16", "description": "contains", "sort_family": ""}, {"scope": "Family member", "purpose": "search", "operator": {"url": "/wiki/operator/op-3d-anyrange-anyrange/?v=18", "text": "=(anyrange,anyrange)"}, "strategy": "18", "description": "equal", "sort_family": ""}], "title": "Family operator strategies", "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": "support-functions", "rows": [{"number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "result_type": "bool"}, {"number": "2", "function": "range_gist_union(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "result_type": "anyrange"}, {"number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "result_type": "internal"}, {"number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "result_type": "internal"}, {"number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "result_type": "internal"}, {"number": "11", "function": "range_sortsupport(internal)", "left_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "right_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}, "result_type": "void"}, {"number": "12", "function": "gist_translate_cmptype_common(int4)", "left_type": {"url": "/wiki/type/any/?v=18", "text": "any"}, "right_type": {"url": "/wiki/type/any/?v=18", "text": "any"}, "result_type": "int2"}], "title": "Family support functions", "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": "classes", "rows": [{"class": {"url": "/wiki/opclass/class-gist-range_ops/?v=18", "text": "range_ops"}, "default": "yes", "key_type": "Same as input type", "input_type": {"url": "/wiki/type/anyrange/?v=18", "text": "anyrange"}}], "title": "Classes in this family", "columns": [{"key": "class", "label": "Class"}, {"key": "input_type", "label": "Input type"}, {"key": "key_type", "label": "Key type"}, {"key": "default", "label": "Default"}]}], "aliases": ["range_ops", "gist/range_ops"], "classes": [{"name": "range_ops", "slug": "class-gist-range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange", "source_oid": "", "family_slug": "family-gist-range_ops"}], "related": [{"url": "/wiki/indexam/gist/?v=18", "label": "GiST Index AM"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "source_sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f", "manual_fingerprint": "fefce9e478eb2afe5e17e869492bbedc67dce23d317f0a5257240113d6496ebc", "catalog_fingerprint": "deec62e0f0c649d9d0d058ddd0b16bf41afffd569c3fd73949ff0971ce5cabd6"}, "sources": [{"url": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "Matching PostgreSQL source archive", "sha256": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, {"url": "/docs/18/indexes-opclass.html", "path": "indexes-opclass.html", "label": "PostgreSQL 18 English manual: indexes-opclass.html", "sha256": "07de06abf3a2aff2a891a2789def434d9b76705e54d45ca5338dc13451ae2962"}, {"url": "/docs/18/catalog-pg-opfamily.html", "path": "catalog-pg-opfamily.html", "label": "PostgreSQL 18 English manual: catalog-pg-opfamily.html", "sha256": "d4a2b7c2bcb5350b0c1f0111b61e4566f46fd97f48802d3ced2421a7aea60b80"}, {"url": "/docs/18/catalog-pg-amop.html", "path": "catalog-pg-amop.html", "label": "PostgreSQL 18 English manual: catalog-pg-amop.html", "sha256": "e65b90ee78eaf4b4da97ce5b08b972cee2e2660b882ec107be22eca47201f7d1"}, {"url": "/docs/18/catalog-pg-amproc.html", "path": "catalog-pg-amproc.html", "label": "PostgreSQL 18 English manual: catalog-pg-amproc.html", "sha256": "0a09afbde0ba8da9899bf770b86d8301bee116057b16ebe7db0e4a7fca2e91c6"}], "sections": [{"title": "Operator classes and families", "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:"]}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anymultirange)", "strategy": "1", "left_type": "anyrange", "right_type": "anymultirange", "description": "is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c3c-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anymultirange)", "strategy": "2", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps or is left of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263c-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anymultirange)", "strategy": "3", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2626-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anymultirange)", "strategy": "4", "left_type": "anyrange", "right_type": "anymultirange", "description": "overlaps or is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-263e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anymultirange)", "strategy": "5", "left_type": "anyrange", "right_type": "anymultirange", "description": "is right of", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3e3e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anymultirange)", "strategy": "6", "left_type": "anyrange", "right_type": "anymultirange", "description": "is adjacent to", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-2d7c2d-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anymultirange)", "strategy": "7", "left_type": "anyrange", "right_type": "anymultirange", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anyrange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anymultirange)", "strategy": "8", "left_type": "anyrange", "right_type": "anymultirange", "description": "is contained by", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3c40-anyrange-anymultirange", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "description": "contains", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-403e-anyrange-anyelement", "sort_family_slug": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "description": "equal", "family_slug": "family-gist-range_ops", "result_type": "bool", "sort_family": "", "operator_slug": "op-3d-anyrange-anyrange", "sort_family_slug": ""}], "signature": "gist/range_ops", "source_oid": "3919", "description": ["GiST operator family containing 1 classes, 18 operator strategies and 7 support functions in this source build."], "comparison_data": {"kind": "family", "classes": [{"name": "range_ops", "family": "range_ops", "method": "gist", "default": "t", "key_type": "none", "input_type": "anyrange"}], "operators": [{"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyelement)", "strategy": "16", "left_type": "anyrange", "right_type": "anyelement", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anymultirange)", "strategy": "1", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anymultirange)", "strategy": "2", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anymultirange)", "strategy": "3", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anymultirange)", "strategy": "4", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anymultirange)", "strategy": "5", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anymultirange)", "strategy": "6", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anymultirange)", "strategy": "7", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anymultirange)", "strategy": "8", "left_type": "anyrange", "right_type": "anymultirange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<<(anyrange,anyrange)", "strategy": "1", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "=(anyrange,anyrange)", "strategy": "18", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&<(anyrange,anyrange)", "strategy": "2", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&&(anyrange,anyrange)", "strategy": "3", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "&>(anyrange,anyrange)", "strategy": "4", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": ">>(anyrange,anyrange)", "strategy": "5", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "-|-(anyrange,anyrange)", "strategy": "6", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "@>(anyrange,anyrange)", "strategy": "7", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}, {"family": "range_ops", "method": "gist", "purpose": "search", "operator": "<@(anyrange,anyrange)", "strategy": "8", "left_type": "anyrange", "right_type": "anyrange", "sort_family": ""}], "attributes": {"name": "range_ops", "method": "gist"}, "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "11", "function": "range_sortsupport(internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "void"}, {"family": "range_ops", "method": "gist", "number": "12", "function": "gist_translate_cmptype_common(int4)", "left_type": "any", "right_type": "any", "result_type": "int2"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "result_type": "internal"}]}, "comparison_hash": "bdc5184c66313d3d30f31f7782feefe70801bdbb5b2fee23580344ec3f68401a", "support_functions": [{"family": "range_ops", "method": "gist", "number": "1", "function": "range_gist_consistent(internal,anyrange,int2,oid,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "bool"}, {"family": "range_ops", "method": "gist", "number": "2", "function": "range_gist_union(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "anyrange"}, {"family": "range_ops", "method": "gist", "number": "5", "function": "range_gist_penalty(internal,internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "6", "function": "range_gist_picksplit(internal,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "7", "function": "range_gist_same(anyrange,anyrange,internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "internal"}, {"family": "range_ops", "method": "gist", "number": "11", "function": "range_sortsupport(internal)", "left_type": "anyrange", "right_type": "anyrange", "family_slug": "family-gist-range_ops", "result_type": "void"}, {"family": "range_ops", "method": "gist", "number": "12", "function": "gist_translate_cmptype_common(int4)", "left_type": "any", "right_type": "any", "family_slug": "family-gist-range_ops", "result_type": "int2"}]}, "comparison": {"left": "10", "right": "11", "status": "changed", "diff": "--- PostgreSQL 10\n+++ PostgreSQL 11\n@@ -137,24 +137,6 @@\n     },\n     {\n       \"family\": \"range_ops\",\n-      \"function\": \"range_gist_compress(internal)\",\n-      \"left_type\": \"anyrange\",\n-      \"method\": \"gist\",\n-      \"number\": \"3\",\n-      \"result_type\": \"internal\",\n-      \"right_type\": \"anyrange\"\n-    },\n-    {\n-      \"family\": \"range_ops\",\n-      \"function\": \"range_gist_decompress(internal)\",\n-      \"left_type\": \"anyrange\",\n-      \"method\": \"gist\",\n-      \"number\": \"4\",\n-      \"result_type\": \"internal\",\n-      \"right_type\": \"anyrange\"\n-    },\n-    {\n-      \"family\": \"range_ops\",\n       \"function\": \"range_gist_penalty(internal,internal,internal)\",\n       \"left_type\": \"anyrange\",\n       \"method\": \"gist\",\n@@ -179,15 +161,6 @@\n       \"number\": \"7\",\n       \"result_type\": \"internal\",\n       \"right_type\": \"anyrange\"\n-    },\n-    {\n-      \"family\": \"range_ops\",\n-      \"function\": \"range_gist_fetch(internal)\",\n-      \"left_type\": \"anyrange\",\n-      \"method\": \"gist\",\n-      \"number\": \"9\",\n-      \"result_type\": \"internal\",\n-      \"right_type\": \"anyrange\"\n     }\n   ]\n }"}}