示例#1
0
 def longquery(self, limit=None):
     """
     Perform a long query and return a lazy Django result set
     """
     query = self._do_longquery(limit)
     if limit:
         query = query.fetchmany(limit)
     return SeSQLResultSet(list(query), self.fields)
示例#2
0
    def shortquery(self, limit=50):
        """
        Perform a long query and return a lazy Django result set
        """
        table = self.get_table_name()

        if table == config.MASTER_TABLE_NAME:
            # Multitable or unprecise query ? Falling back to longquery
            log.warning("Query on master table will not be optimized on %s" %
                        self.query)
            return self.longquery(limit)

        if "sesql_relevance" in self.order or "-sesql_relevance" in self.order:
            # Order on relevance ? Falling back to longquery
            log.info("Query sorting on relevance will not be optimized on %s" %
                     self.query)
            return self.longquery(limit)

        log.debug("Trying short query for %s" % self.query)

        cursor = self._do_smart_query(limit)
        return SeSQLResultSet(list(cursor), self.fields)