cubicweb/server/ssplanner.py
changeset 12242 68ca7fe0ca29
parent 12227 dc333e9104c9
child 12248 6350e0a482d5
--- 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: