似乎很多其他人在安装pg gem时遇到了问题.没有为他人提出的解决方案对我有用.
我试图安装pg gem和postgres.app.pg gem不会安装.我得到的第一个错误是:
安装pg(0.17.0)时发生错误,Bundler无法继续.gem install pg -v '0.17.0'在捆绑之前确保成功.
关于将我的gem安装指向pg的配置的安装建议失败,并显示以下错误消息(此论坛上的许多其他人遇到过):
Failed to build native extensions... Results logged to /Users/melanie/.rvm/gems/ruby-1.9.3-p448/gems/pg-0.17.0/ext/gem_make.out
Run Code Online (Sandbox Code Playgroud)
我不知道如何查找或访问此日志文件以搜索更多线索.
当我尝试使用sudo apt-get install命令时,我也收到错误消息(找不到命令).在过去的6个小时里,我一直在搜索这个论坛,尝试了每一条建议,让pg与我的rails项目合作.
我找不到关于如何更改路径的建议,或者具体地说,需要进行哪些更改.我which pg_config返回一个文件源.我已经使用命令来使用该配置安装pg.它失败.
有这么多人遇到麻烦.许多答案都表明了自制软件.我不得不删除它,因为它抛出了其他问题.
打开一个文件File.new(big_file)(不关闭它)1016次(Ubuntu)或1017次(CentOS)后,它似乎有一个限制,它会引发:
Too many open files @ rb_sysopen - big_file (Errno::EMFILE)
Run Code Online (Sandbox Code Playgroud)
有没有办法提高这个限制?
在我的系统上,ulimit设置为unlimited.
PostgreSQL类型bytea和bit varying声音类似:
文档没有提到任何一个的最大大小.难道是1GB喜欢character varying?
我有两个单独的用例,都在一个包含数百万行的表中:
存储MD5哈希值
这将是一个bytea长度为16个字节或a bit(128).它将用于:
GROUP BY,我想有一个索引.WHERE md5 =仅查询完全匹配.存储任意二进制数据
长度不超过4kB的二进制数据字符串:
使用按位操作的工作示例bit varying.掩码是X'00FF00',它只返回行X'AAAAAA'.我缩短了示例的字符串,但它将超过它们的全长,高达4kB.是否可以做类似的事情bytea?
CREATE TABLE test1 (mystring bit varying);
INSERT INTO test1 VALUES (X'AAAAAA'), (X'ABCABC');
SELECT * FROM test1 WHERE mystring & X'00FF00' = X'00AA00';
Run Code Online (Sandbox Code Playgroud)
其中的bytea和bit varying是比较合适的?
我看到这个UUID类型正好存储了16个字节,那么存储MD5会有什么好处吗?
这是为了使用嵌入式ruby代码开发postgres函数,但我无法构建它.
根据http://www.robbyonrails.com/articles/2005/08/22/installing-untrusted-pl-ruby-for-postgresql的建议
我试图建立从最新的版本(plruby-0.5.3.tar.gz)所需的plruby.so在提供 ftp://moulon.inra.fr/pub/ruby/
我已经整理了我的本地postgres设置的位置,并将调用调整为:
ruby extconf.rb --with-pgsql-include=/usr/postgresql-8.3.4/include/server --enable-shared --disable-conversion --with-pgsql-version=83
Run Code Online (Sandbox Code Playgroud)
我已经尝试了很多变种,但它似乎无法成功制作'conftest.c'文件
它说:
checking for catalog/pg_proc.h... yes
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Run Code Online (Sandbox Code Playgroud)
以下是我在mkmf.log中的最终结果
have_header: checking for catalog/pg_proc.h... -------------------- yes
"gcc -E -I. -I/usr/lib/ruby/1.8/x86_64-linux -I. -I/usr/postgresql-8.3.4/include/server -g -O2 -fPIC conftest.c -o conftest.i"
checked program was:
/* begin */
1: …Run Code Online (Sandbox Code Playgroud) 我的实际限制是1024:
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 95979
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory …Run Code Online (Sandbox Code Playgroud) 我正在使用Sphinx索引我的数据库.问题是我必须通过字符变化字段过滤结果.所以我必须找到一种方法来转换变化的字符sql_attr_uint.我知道mysql中的CRC32可以做到这一点.在PostgreSQL中是否有CRC32或任何替换?
如何计算32位循环冗余校验(CRC-32)作为PostgreSQL中的函数,与MySQL一样?