seg
表示线段或浮点间隔的数据类型
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
seg | 1.4 | TYPE | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 3940 | seg | 否 | 是 | 否 | 是 | 是 | 否 | - |
| 相关扩展 | cube intarray intagg prefix semver unit pgpdf pglite_fusion |
|---|
版本
| PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|
| 1.4 | 1.4 | 1.4 | 1.4 | 1.4 |
安装
提示:这是 PostgreSQL 内核自带的 contrib 扩展
CREATE EXTENSION seg;
用法
seg 扩展提供了一种数据类型,用于表示线段或浮点区间,适合表示带有不确定性的测量值。
CREATE EXTENSION seg;
输入格式
SELECT '5.0'::seg; -- 零长度区间(点)
SELECT '5.0 .. 7.0'::seg; -- 从 5.0 到 7.0 的区间
SELECT '5(+-)0.3'::seg; -- 区间 4.7 .. 5.3
SELECT '50 ..'::seg; -- 开区间 >= 50
SELECT '.. 0'::seg; -- 开区间 <= 0
精度指示符(<、>、~)可以前置,但仅作为注释使用,运算符会忽略它们。
运算符
空间运算符(支持 GiST 索引):
| 运算符 | 描述 |
|---|---|
<< | 完全在左侧 |
>> | 完全在右侧 |
&< | 未超出右侧 |
&> | 未超出左侧 |
= | 相等 |
&& | 重叠 |
@> | 包含 |
<@ | 被包含 |
比较运算符(<、<=、>、>=)可用于排序。
索引支持
CREATE INDEX idx ON measurements USING gist (reading);
精度
值以 32 位浮点数对存储,保留最多 7 位有效数字。尾部零会被保留。