2011-05-09 37 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中發現錯誤。