diff -r 06deb43c23c3 -r 68ca7fe0ca29 cubicweb/server/ssplanner.py --- a/cubicweb/server/ssplanner.py Thu Nov 30 11:00:01 2017 +0100 +++ b/cubicweb/server/ssplanner.py Thu Nov 30 11:55:35 2017 +0100 @@ -204,7 +204,10 @@ step.children += self._sel_variable_step(plan, rqlst, etype, var) steps.append(step) for relation in rqlst.main_relations: - step = DeleteRelationsStep(plan, relation.r_type) + rtype = relation.r_type + if self.schema[rtype].rule: + raise QueryError("'%s' is a computed relation" % rtype) + step = DeleteRelationsStep(plan, rtype) step.children += self._sel_relation_steps(plan, rqlst, relation) steps.append(step) return steps @@ -493,6 +496,9 @@ for i, row in enumerate(result): newrow = [] for (lhsinfo, rhsinfo, rschema) in self.updatedefs: + if rschema.rule: + raise QueryError("'%s' is a computed relation" + % rschema.type) lhsval = _handle_relterm(lhsinfo, row, newrow) rhsval = _handle_relterm(rhsinfo, row, newrow) if rschema.final or rschema.inlined: