postgresql – initdb:初始化pg_authid …致命:索引表达式数量错误

postgresql – initdb:初始化pg_authid …致命:索引表达式数量错误,第1张

概述我是PostgreSql的新手.我正在尝试在我的系统中安装PostgreSql.我的 *** 作系统是Ubuntu,下面发布的是我的错误 将使用区域设置en_US.UTF-8初始化数据库群集. 因此,默认数据库编码已设置为UTF8. creating directory p01/pgsql/data ... okcreating subdirectories ... okselecting defau 我是Postgresql的新手.我正在尝试在我的系统中安装Postgresql.我的 *** 作系统是Ubuntu,下面发布的是我的错误

将使用区域设置en_US.UTF-8初始化数据库群集.
因此,默认数据库编码已设置为UTF8.

creating directory p01/pgsql/data ... okcreating subdirectorIEs ... okselecting default max_connections ... 100selecting default shared_buffers/max_fsm_pages ... 24MB/153600creating configuration files ... okcreating template1 database in p01/pgsql/data/base/1 ... okinitializing pg_authID ... FATAL:  wrong number of index ExpressionsSTATEMENT:  CREATE TRIGGER pg_sync_pg_database   AFTER INSERT OR UPDATE OR DELETE ON   pg_database   FOR EACH STATEMENT EXECUTE PROCEDURE flatfile_update_trigger();child process exited with exit code 1initdb: removing data directory "p01/pgsql/data"

帮帮我!!
谢谢!

用gcc 4.9.3编译postgresql 8.1.4后遇到了同样的问题.

问题似乎是postgres用来表示可变长度数组的方式:

typedef struct{    int32       size;           /* these fIElds must match ArrayType! */    int         ndim;    int         flags;    OID         elemtype;    int         dim1;    int         lbound1;    int2        values[1];      /* VARIABLE LENGTH ARRAY */} int2vector;                   /* VARIABLE LENGTH STRUCT */

在某些情况下,对于访问“值”的循环,GCC假定它们最多只进行一次迭代.循环如下(从postgres的源代码中提取):

ii->ii_NumIndexAttrs = numKeys;for (i = 0; i < numKeys; i++)    ii->ii_KeyAttrNumbers[i] = indexStruct->indkey.values[i];

可能最终被缩减为:

ii->ii_NumIndexAttrs = numKeys;if (numKeys)    ii->ii_KeyAttrNumbers[0] = indexStruct->indkey.values[0];

通过查看为其生成的汇编程序推断:

.L161:    testl   %r12d,%r12d    movl    %r12d,4(%rbx)    jle .L162    movzwl  40(%r13),%eax    movw    %ax,8(%rbx).L162:

重新编译postgres后,通过使用-fno-aggressive-loop-optimizations禁用了该优化,问题就消失了.

总结

以上是内存溢出为你收集整理的postgresql – initdb:初始化pg_authid …致命:索引表达式数量错误全部内容,希望文章能够帮你解决postgresql – initdb:初始化pg_authid …致命:索引表达式数量错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1170148.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存