首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向Heroku上的PostgreSQL添加intarray扩展

如何向Heroku上的PostgreSQL添加intarray扩展
EN

Stack Overflow用户
提问于 2013-02-01 01:01:08
回答 3查看 4.5K关注 0票数 2

我所拥有的应用程序是使用intarray扩展的PostgreSQL。

不幸的是,根据文档和命令行,它似乎不可用:

代码语言:javascript
复制
> echo 'show extwlist.extensions' | heroku pg:psql
                                                                                extwlist.extensions                                                                                 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 btree_gist,chkpass,cube,dblink,dict_int,dict_xsyn,earthdistance,fuzzystrmatch,hstore,isn,ltree,pg_trgm,pgcrypto,pgrowlocks,pgstattuple,plpgsql,unaccent,uuid-ossp,citext,tablefunc
(1 row)

另外:

代码语言:javascript
复制
> heroku pg:psql
psql (9.1.5, server 9.1.6)
SSL connection
Type "help" for help.

=> CREATE EXTENSION intarray;
WARNING:  extension "intarray" is not whitelisted
CREATE EXTENSION

因此,这是否意味着i不能使用Heroku,或者有一种方法可以添加intarray扩展(例如使用idx函数)。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-27 00:16:00

必须回答我自己的问题,才能提供更多的细节。

intarray用于从包含字符串(如123/312/56/9863 )的列中提取路径信息。它最初是作为字符串而不是数组存储的(很差)。

我们需要intarray的原因是因为它有idx函数。

所发生的事情是:

  • 将字符串转换为数组
  • 使用idx查找给定的号码
  • 按顺序返回下一个数字。

所有这些都是临时措施。但是由于heroku不能支持idx,所以使用它的唯一方法是添加一个自定义函数。相反,我们将查询和数据结构转换为使用ltree及其index函数。

除了不需要对idx的依赖(但是引入了另一个对ltree的依赖)之外,我们还以x200的因素提高了查询的性能。

票数 2
EN

Stack Overflow用户

发布于 2013-02-01 04:42:18

我从Postgres社区得到的普遍共识是,intarrayint[]淘汰了,而且它只是为了向后兼容非常老的应用程序而保留下来。这就是为什么我们没有增加对它的支持。

到目前为止,每个想要它的人在int[]上都很开心,只是还没有找到。是否有一些实际需要intarray列代替的用法?我们可以把它打开。

票数 5
EN

Stack Overflow用户

发布于 2015-05-27 22:36:09

intarray已经在Heroku 自2014年3月以来上白化了,所以您应该能够直接启用扩展。如果在此之前提供了数据库,那么首先需要升级数据库

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14638021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档