我正在跑步: PostgreSQL 9.0.3(Last Debian stable)
此查询:
SELECT * FROM sis.thread_categories stc,sis.threads st WHERE st.id_thread_categories = stc.id
=>抛出:
错误:volatile EquivalenceClass有 没有sortref状态SQL:XX000
当我使用JOIN尝试它时发生了同样的问题。有谁知道我做错了什么?
答案 0 :(得分: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中发现了错误。