问题标签 [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.
postgresql - 出现错误:类型“句点”不存在,即使我添加了 btree_gist 和 temporal_tables 扩展
即使我添加了扩展名,我也会收到错误btree_gist
消息temporal_tables
。
(3 行)
版本详情
postgresql - 如何在 EXCLUDE 约束中将 uuid 与 postgresql gist 一起使用
使用 gist 使用排除约束时出现错误
注:
base_id
数据类型为uuid,
lifetime
数据类型为句点
我正在使用 PostgreSQL 9.4。我只能使用 9.4,因为我没有任何其他选项,因为我无法temporal
在 9.5、9.6 和 10 中安装扩展程序会给出错误。
postgresql - 不能在 Windows 上将 btree_gist 与距离运算符一起使用
为什么我不能强制执行这些查询:
错误:运算符不存在:带时区的时间戳 <-> 带时区的时间戳
我也尝试安装 pg_trgm。
PostgreSQL 12.2
btree_gist 1.5
视窗服务器 2012 R2
我做错了什么?
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
一开始使用有点乐观,但如果有人有答案或解决方法,我会保持开放。
greenplum - 如何在GreenplumDB中安装btree_gin扩展
GreenplumDB 有一个 gin 索引,但它不支持 jsonb 上的比较操作,例如:jsonvalue->>'age' > 20。在 PostgreSQL 中,btree_gin 索引支持该操作。但 GreenplumDB 不包含扩展名。是否可以从源代码编译 Greenplum 以安装该扩展?