2011-05-09 38 views
1

我运行: 的PostgreSQL 9.0.3(最新Debian稳定)挥发性EquivalenceClass没有sortref

这个查询:

SELECT * FROM sis.thread_categories stc, sis.threads st WHERE st.id_thread_categories=stc.id

=>抛出:

ERROR: volatile EquivalenceClass has no sortref State SQL: XX000

同样的问题当我尝试使用JOIN时发生。有人知道我做错了什么吗?

回答

1

我想你可能有一个损坏的数据库,这不应该发生。从PostgreSQL源代码backend/optimizer/path/pathkeys.c

List * 
convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel, 
                List *subquery_pathkeys) 
{ 
    /*...*/ 
      if (sub_eclass->ec_sortref == 0)  /* can't happen */ 
       elog(ERROR, "volatile EquivalenceClass has no sortref"); 

该错误消息在源其他两个地方显示出来,但触发条件,ec_sortref == 0,是一样的,一样的“不可能发生”的评论出现在所有三个地方。

因此,无论您的数据库是否损坏或您在PostgreSQL中发现错误。