问题标签 [btree-gist]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
107 浏览

postgresql - 出现错误:类型“句点”不存在,即使我添加了 btree_gist 和 temporal_tables 扩展

即使我添加了扩展名,我也会收到错误btree_gist消息temporal_tables

(3 行)

版本详情

0 投票
2 回答
931 浏览

postgresql - 如何在 EXCLUDE 约束中将 uuid 与 postgresql gist 一起使用

使用 gist 使用排除约束时出现错误

注: base_id数据类型为uuid, lifetime数据类型为句点

我正在使用 PostgreSQL 9.4。我只能使用 9.4,因为我没有任何其他选项,因为我无法temporal在 9.5、9.6 和 10 中安装扩展程序会给出错误。

0 投票
0 回答
40 浏览

postgresql - 不能在 Windows 上将 btree_gist 与距离运算符一起使用

为什么我不能强制执行这些查询:

错误:运算符不存在:带时区的时间戳 <-> 带时区的时间戳

我也尝试安装 pg_trgm。

PostgreSQL 12.2

btree_gist 1.5

视窗服务器 2012 R2

我做错了什么?

0 投票
0 回答
63 浏览

postgresql - 通过 PostgreSQL 中的 GiST 索引对 bigint 列进行奇怪的排序行为

我正在使用自定义排序在 PostgreSQL 12.6 (Ubuntu 20.04.2 VBox) 中实现快速文本搜索,并且我正在使用pg_trgm和 GiST ( btree_gist ) 索引来排序输出。这个想法是返回播放次数最多的前 5 名匹配艺术家。索引是这样创建的:

这里的“name”是类型varchar(255),total_play_count 是bigint,不允许有空值。

当我这样查询表时:

我得到正确的结果:

如果我total_play_count <-> 40312用 simple替换,我会得到相同的结果total_play_count desc,但是我会得到我想要避免的额外排序操作。此处的数字40312是该列的当前最大值,表本身总共包含 1612297 行。

但是,由于 total_play_count 是 bigint 类型,我想让这个查询更通用(更快)并使用 bigint 的最大值,所以我不必每次都查询最大值。但是当我用 更新 ORDER BY 子句时total_play_count <-> 9223372036854775807,我得到以下结果:

这里的排序被破坏了,当我在另一个有更多行的表上尝试相同的方法时,情况更糟。没有负值或过大的值,因此应该不可能溢出。结果explain几乎相同:

这里可能是什么问题?这是一个错误btree_gist,还是我错过了什么?我可以满足于查询最大值,但它让我担心最终可能会达到一个阈值并破坏搜索,这将是一种耻辱,因为我对性能非常满意。


更新:

我尝试使用常规整数类型而不是 bigint,然后使用它的上限进行查询total_play_count <-> 2147483647。似乎没有这样的问题。也许bigint一开始使用有点乐观,但如果有人有答案或解决方法,我会保持开放。

0 投票
0 回答
25 浏览

greenplum - 如何在GreenplumDB中安装btree_gin扩展

GreenplumDB 有一个 gin 索引,但它不支持 jsonb 上的比较操作,例如:jsonvalue->>'age' > 20。在 PostgreSQL 中,btree_gin 索引支持该操作。但 GreenplumDB 不包含扩展名。是否可以从源代码编译 Greenplum 以安装该扩展?