server/sources/pyrorql.py
branchstable
changeset 3689 deb13e88e037
parent 3605 1466323ddb9c
child 4212 ab6573088b4a
equal deleted inserted replaced
3688:421fb447ecb2 3689:deb13e88e037
   301         descr = rset.description
   301         descr = rset.description
   302         if rset:
   302         if rset:
   303             needtranslation = []
   303             needtranslation = []
   304             rows = rset.rows
   304             rows = rset.rows
   305             for i, etype in enumerate(descr[0]):
   305             for i, etype in enumerate(descr[0]):
   306                 if (etype is None or not self.schema.eschema(etype).is_final()
   306                 if (etype is None or not self.schema.eschema(etype).final
   307                     or uidtype(union, i, etype, args)):
   307                     or uidtype(union, i, etype, args)):
   308                     needtranslation.append(i)
   308                     needtranslation.append(i)
   309             if needtranslation:
   309             if needtranslation:
   310                 cnx = session.pool.connection(self.uri)
   310                 cnx = session.pool.connection(self.uri)
   311                 for rowindex in xrange(rset.rowcount - 1, -1, -1):
   311                 for rowindex in xrange(rset.rowcount - 1, -1, -1):
   485                 return
   485                 return
   486             # XXX what about optional relation or outer NOT EXISTS()
   486             # XXX what about optional relation or outer NOT EXISTS()
   487             raise
   487             raise
   488         if node.optional in ('left', 'both'):
   488         if node.optional in ('left', 'both'):
   489             lhs += '?'
   489             lhs += '?'
   490         if node.r_type == 'eid' or not self.source.schema.rschema(node.r_type).is_final():
   490         if node.r_type == 'eid' or not self.source.schema.rschema(node.r_type).final:
   491             self.need_translation = True
   491             self.need_translation = True
   492             self.current_operator = node.operator()
   492             self.current_operator = node.operator()
   493             if isinstance(node.children[0], Constant):
   493             if isinstance(node.children[0], Constant):
   494                 self.current_etypes = (node.children[0].uidtype,)
   494                 self.current_etypes = (node.children[0].uidtype,)
   495             else:
   495             else: