↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 运算符族 / B-tree 操作符类

btree/text_ops (class)

text 类型的 B-tree 操作符类,属于 text_ops 家族。

当前查看 PostgreSQL 18.6。

说明

text 类型的 B-tree 操作符类,属于 text_ops 家族。

对象种类
操作符类
索引访问方法
B-tree
输入类型
文本
存储键类型
与输入类型相同(目录值为零)
默认操作符类
是

用法

btree/text_ops

操作符类与家族

一个索引定义可以为索引的每一列指定一个 操作符类 。

操作符类标识该索引在该列上要使用哪些操作符。例如,类型 int4 上的一个 B-树索引会使用 int4_ops 类;这个操作符类包含对 int4 值进行比较所需的函数。实践中,列数据类型的默认操作符类通常已经足够。之所以存在操作符类,主要是因为对某些数据类型来说,可能存在多种有意义的索引行为。例如,我们可能希望按绝对值排序一种复数数据类型,也可能希望按实部排序。我们可以通过为该数据类型定义两个操作符类,并在创建索引时选择合适的那个来做到这一点。操作符类决定了基础排序顺序(之后还可以通过添加排序选项 COLLATE 、 ASC / DESC 和/或 NULLS FIRST / NULLS LAST 来修改)。

除了默认操作符类之外,还有一些内置操作符类:

家族中的操作符策略

操作符重载策略用途排序家族成员范围源码说明
<(text,text)1搜索操作符类输入类型对小于
<=(text,text)2搜索操作符类输入类型对小于等于
=(text,text)3搜索操作符类输入类型对等于
>=(text,text)4搜索操作符类输入类型对大于等于
>(text,text)5搜索操作符类输入类型对大于
<(name,name)1搜索家族成员小于
<=(name,name)2搜索家族成员小于等于
=(name,name)3搜索家族成员等于
>=(name,name)4搜索家族成员大于等于
>(name,name)5搜索家族成员大于
<(name,text)1搜索家族成员小于
<=(name,text)2搜索家族成员小于等于
=(name,text)3搜索家族成员等于
>=(name,text)4搜索家族成员大于等于
>(name,text)5搜索家族成员大于
<(text,name)1搜索家族成员小于
<=(text,name)2搜索家族成员小于等于
=(text,name)3搜索家族成员等于
>=(text,name)4搜索家族成员大于等于
>(text,name)5搜索家族成员大于

家族支持函数

支持函数编号左侧类型右侧类型函数签名返回类型
1文本文本bttextcmp(text,text)int4
2文本文本bttextsortsupport(internal)void
4文本文本btvarstrequalimage(oid)bool
1namenamebtnamecmp(name,name)int4
2namenamebtnamesortsupport(internal)void
4namenamebtvarstrequalimage(oid)bool
1name文本btnametextcmp(name,text)int4
1文本namebttextnamecmp(text,name)int4

本家族的操作符类

操作符类输入类型键类型默认值
name_opsnamecstring是
text_ops文本与输入类型相同是
varchar_ops文本与输入类型相同否

相关条目

文档与源码

来源构建
版本
18.6
构建
https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
来源指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f

版本比较

PostgreSQL 11 → 12: 属性变化。

以下差异保留原始字段名与英文源描述。

--- PostgreSQL 11
+++ PostgreSQL 12
@@ -11,6 +11,14 @@
     {
       "default": "t",
       "family": "text_ops",
+      "input_type": "name",
+      "key_type": "cstring",
+      "method": "btree",
+      "name": "name_ops"
+    },
+    {
+      "default": "t",
+      "family": "text_ops",
       "input_type": "text",
       "key_type": "none",
       "method": "btree",
@@ -29,6 +37,156 @@
   "operators": [
     {
       "family": "text_ops",
+      "left_type": "name",
+      "method": "btree",
+      "operator": "<(name,name)",
+      "purpose": "search",
+      "right_type": "name",
+      "sort_family": "",
+      "strategy": "1"
+    },
+    {
+      "family": "text_ops",
+      "left_type": "name",
+      "method": "btree",
+      "operator": "<=(name,name)",
+      "purpose": "search",
+      "right_type": "name",
+      "sort_family": "",
+      "strategy": "2"
+    },
+    {
+      "family": "text_ops",
+      "left_type": "name",
+      "method": "btree",
+      "operator": "=(name,name)",
+      "purpose": "search",
+      "right_type": "name",
+      "sort_family": "",
+      "strategy": "3"
+    },
+    {
+      "family": "text_ops",
+      "left_type": "name",
+      "method": "btree",
+      "operator": ">=(name,name)",
+      "purpose": "search",
+      "right_type": "name",
+      "sort_family": "",
+      "strategy": "4"
+    },
+    {
+      "family": "text_ops",
+      "left_type": "name",
+      "method": "btree",
+      "operator": ">(name,name)",
+      "purpose": "search",
+      "right_type": "name",
+      "sort_family": "",
+      "strategy": "5"
+    },
+    {
+      "family": "text_ops",
+      "left_type": "name",
+      "method": "btree",
+      "operator": "<(name,text)",
+      "purpose": "search",
+      "right_type": "text",
+      "sort_family": "",
+      "strategy": "1"
+    },
+    {
+      "family": "text_ops",
+      "left_type": "name",
+      "method": "btree",
+      "operator": "<=(name,text)",
+      "purpose": "search",
+      "right_type": "text",
+      "sort_family": "",
+      "strategy": "2"
+    },
+    {
+      "family": "text_ops",
+      "left_type": "name",
+      "method": "btree",
+      "operator": "=(name,text)",
+      "purpose": "search",
+      "right_type": "text",
+      "sort_family": "",
+      "strategy": "3"
+    },
+    {
+      "family": "text_ops",
+      "left_type": "name",
+      "method": "btree",
+      "operator": ">=(name,text)",
+      "purpose": "search",
+      "right_type": "text",
+      "sort_family": "",
+      "strategy": "4"
+    },
+    {
+      "family": "text_ops",
+      "left_type": "name",
+      "method": "btree",
+      "operator": ">(name,text)",
+      "purpose": "search",
+      "right_type": "text",
+      "sort_family": "",
+      "strategy": "5"
+    },
+    {
+      "family": "text_ops",
+      "left_type": "text",
+      "method": "btree",
+      "operator": "<(text,name)",
+      "purpose": "search",
+      "right_type": "name",
+      "sort_family": "",
+      "strategy": "1"
+    },
+    {
+      "family": "text_ops",
+      "left_type": "text",
+      "method": "btree",
+      "operator": "<=(text,name)",
+      "purpose": "search",
+      "right_type": "name",
+      "sort_family": "",
+      "strategy": "2"
+    },
+    {
+      "family": "text_ops",
+      "left_type": "text",
+      "method": "btree",
+      "operator": "=(text,name)",
+      "purpose": "search",
+      "right_type": "name",
+      "sort_family": "",
+      "strategy": "3"
+    },
+    {
+      "family": "text_ops",
+      "left_type": "text",
+      "method": "btree",
+      "operator": ">=(text,name)",
+      "purpose": "search",
+      "right_type": "name",
+      "sort_family": "",
+      "strategy": "4"
+    },
+    {
+      "family": "text_ops",
+      "left_type": "text",
+      "method": "btree",
+      "operator": ">(text,name)",
+      "purpose": "search",
+      "right_type": "name",
+      "sort_family": "",
+      "strategy": "5"
+    },
+    {
+      "family": "text_ops",
       "left_type": "text",
       "method": "btree",
       "operator": "<(text,text)",
@@ -81,12 +239,48 @@
   "support_functions": [
     {
       "family": "text_ops",
+      "function": "btnamecmp(name,name)",
+      "left_type": "name",
+      "method": "btree",
+      "number": "1",
+      "result_type": "int4",
+      "right_type": "name"
+    },
+    {
+      "family": "text_ops",
+      "function": "btnametextcmp(name,text)",
+      "left_type": "name",
+      "method": "btree",
+      "number": "1",
+      "result_type": "int4",
+      "right_type": "text"
+    },
+    {
+      "family": "text_ops",
+      "function": "bttextnamecmp(text,name)",
+      "left_type": "text",
+      "method": "btree",
+      "number": "1",
+      "result_type": "int4",
+      "right_type": "name"
+    },
+    {
+      "family": "text_ops",
       "function": "bttextcmp(text,text)",
       "left_type": "text",
       "method": "btree",
       "number": "1",
       "result_type": "int4",
       "right_type": "text"
+    },
+    {
+      "family": "text_ops",
+      "function": "btnamesortsupport(internal)",
+      "left_type": "name",
+      "method": "btree",
+      "number": "2",
+      "result_type": "void",
+      "right_type": "name"
     },
     {
       "family": "text_ops",

比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。

相关条目

导出 JSON · 返回运算符族 · 收录范围为 PostgreSQL 10 至 20;最早采样版本不一定是实际引入版本。