spgist/text_ops (class)
text_ops 是 spgist 的运算符类。
当前查看 PostgreSQL 18。
中文定义与说明
text_ops 是 spgist 的运算符类。
- 名称
text_ops- 运算符族
text_ops- 索引访问方法
spgist- 默认类
是- 存储键类型
无- 输入类型
text
策略运算符
| 策略编号 | 用途 | 运算符 | 左操作数类型 | 右操作数类型 | 排序运算符族 |
|---|---|---|---|---|---|
1 | 搜索 | ~<~(text,text) | text | text | |
2 | 搜索 | ~<=~(text,text) | text | text | |
3 | 搜索 | =(text,text) | text | text | |
4 | 搜索 | ~>=~(text,text) | text | text | |
5 | 搜索 | ~>~(text,text) | text | text | |
11 | 搜索 | <(text,text) | text | text | |
12 | 搜索 | <=(text,text) | text | text | |
14 | 搜索 | >=(text,text) | text | text | |
15 | 搜索 | >(text,text) | text | text | |
28 | 搜索 | ^@(text,text) | text | text | |
支持函数
| 支持函数编号 | 实现函数 | 左操作数类型 | 右操作数类型 | 结果类型 |
|---|---|---|---|---|
1 | spg_text_config(internal,internal) | text | text | void |
2 | spg_text_choose(internal,internal) | text | text | void |
3 | spg_text_picksplit(internal,internal) | text | text | void |
4 | spg_text_inner_consistent(internal,internal) | text | text | void |
5 | spg_text_leaf_consistent(internal,internal) | text | text | bool |
同版本中文手册节选
一个索引定义可以为索引的每一列指定一个操作符类。
操作符类标识该索引在该列上要使用哪些操作符。例如,类型 int4 上的一个 B-树索引会使用 int4_ops 类;这个操作符类包含对 int4 值进行比较所需的函数。实践中,列数据类型的默认操作符类通常已经足够。之所以存在操作符类,主要是因为对某些数据类型来说,可能存在多种有意义的索引行为。例如,我们可能希望按绝对值排序一种复数数据类型,也可能希望按实部排序。我们可以通过为该数据类型定义两个操作符类,并在创建索引时选择合适的那个来做到这一点。操作符类决定了基础排序顺序(之后还可以通过添加排序选项 COLLATE、ASC/DESC 和/或 NULLS FIRST/NULLS LAST 来修改)。
除了默认操作符类之外,还有一些内置操作符类:
下面的查询会显示所有已定义的操作符类:
说明
text_ops 是 spgist 的运算符类。
- 对象种类
- 操作符类
- 索引访问方法
- SP-GiST
- 输入类型
- text
- 存储键类型
- Same as input type (catalog zero)
- 默认操作符类
- 是
用法
spgist/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 | 搜索 | 操作符类输入类型对 | 大于 | |
| <(text,text) | 11 | 搜索 | 操作符类输入类型对 | 小于 | |
| <=(text,text) | 12 | 搜索 | 操作符类输入类型对 | 小于等于 | |
| >=(text,text) | 14 | 搜索 | 操作符类输入类型对 | 大于等于 | |
| >(text,text) | 15 | 搜索 | 操作符类输入类型对 | 大于 | |
| ^@(text,text) | 28 | 搜索 | 操作符类输入类型对 | 以前缀开头 |
家族支持函数
本家族的操作符类
相关条目
文档与源码
- Matching PostgreSQL source archive
- PostgreSQL 18 English manual: indexes-opclass.html
- PostgreSQL 18 English manual: catalog-pg-opclass.html
- PostgreSQL 18 English manual: catalog-pg-amop.html
- PostgreSQL 18 English manual: catalog-pg-amproc.html
来源构建
- 版本
- 18.6
- 构建
- https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
- 来源指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f
版本比较
PostgreSQL 17 → 18: 无变化。
比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。
相关条目
导出 JSON · 返回运算符族 · 收录范围为 PostgreSQL 10 至 20;最早采样版本不一定是实际引入版本。