我所拥有的应用程序是使用intarray扩展的PostgreSQL。
不幸的是,根据文档和命令行,它似乎不可用:
> 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)另外:
> 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函数)。
谢谢。
发布于 2013-02-27 00:16:00
必须回答我自己的问题,才能提供更多的细节。
intarray用于从包含字符串(如123/312/56/9863 )的列中提取路径信息。它最初是作为字符串而不是数组存储的(很差)。
我们需要intarray的原因是因为它有idx函数。
所发生的事情是:
idx查找给定的号码所有这些都是临时措施。但是由于heroku不能支持idx,所以使用它的唯一方法是添加一个自定义函数。相反,我们将查询和数据结构转换为使用ltree及其index函数。
除了不需要对idx的依赖(但是引入了另一个对ltree的依赖)之外,我们还以x200的因素提高了查询的性能。
发布于 2013-02-01 04:42:18
我从Postgres社区得到的普遍共识是,intarray被int[]淘汰了,而且它只是为了向后兼容非常老的应用程序而保留下来。这就是为什么我们没有增加对它的支持。
到目前为止,每个想要它的人在int[]上都很开心,只是还没有找到。是否有一些实际需要intarray列代替的用法?我们可以把它打开。
发布于 2015-05-27 22:36:09
intarray已经在Heroku 自2014年3月以来上白化了,所以您应该能够直接启用扩展。如果在此之前提供了数据库,那么首先需要升级数据库。
https://stackoverflow.com/questions/14638021
复制相似问题