709 obj = utils.rqlvar_maker(defined=self.rqlst.defined_vars, |
709 obj = utils.rqlvar_maker(defined=self.rqlst.defined_vars, |
710 aliases=self.rqlst.aliases).next() |
710 aliases=self.rqlst.aliases).next() |
711 rql = 'Any %s LIMIT 1 WHERE NOT %s %s %s, %s' % ( |
711 rql = 'Any %s LIMIT 1 WHERE NOT %s %s %s, %s' % ( |
712 self.filtered_variable.name, subj, self.rtype, obj, |
712 self.filtered_variable.name, subj, self.rtype, obj, |
713 self.rqlst.where.as_string()) |
713 self.rqlst.where.as_string()) |
714 return bool(self.rqlexec(rql, self.cw_rset and self.cw_rset.args)) |
714 try: |
|
715 return bool(self.rqlexec(rql, self.cw_rset and self.cw_rset.args)) |
|
716 except: |
|
717 # catch exception on executing rql, work-around #1356884 until a |
|
718 # proper fix |
|
719 self.exception('cant handle rql generated by %s', self) |
|
720 return False |
715 |
721 |
716 def _add_not_rel_restr(self, rel): |
722 def _add_not_rel_restr(self, rel): |
717 nrrel = nodes.Not(_make_relation(self.rqlst, self.filtered_variable, |
723 nrrel = nodes.Not(_make_relation(self.rqlst, self.filtered_variable, |
718 self.rtype, self.role)[1]) |
724 self.rtype, self.role)[1]) |
719 rel.parent.replace(rel, nodes.Or(nrrel, rel)) |
725 rel.parent.replace(rel, nodes.Or(nrrel, rel)) |