← Back to team overview

pyax team mailing list archive

[Bug 317723] Re: pyax fails to return when result set contains a lot of data

 

My interpretation of a reasonable fix for this bug is as follows:

    def __processQueryResult(self, query_result):
        """ processes the result from a query or queryAll call into an
        Batch, calling queryMore as necessary to complete the query
        operation

        @param query_result: return result from a query or queryAll call
        @note: Although queryMore also returns a query_result this is not
            intended to be a primary input to this method. Rather, these are
            handled internally to this method and aggregated into the
            query_result_batch

        @return: a Batch populated with the sobject(s) found by the
            query call that produced the query_result parameter.
        @rtype: pyax.sobject.batch.Batch
        """
        sobject_records, done, query_locator = self._unpackQueryResult(query_result)
        sobject_records = sobject_records if (isinstance(sobject_records,list)) else [sobject_records]
        while done is False:
            query_result = self.__queryMore(query_locator)
            done = query_result['done']
            records = query_result['records']
            query_locator = query_result['queryLocator']
            sobject_records.extend(records)

        query_result_batch = self.__resultToObject(sobject_records)
        if (done is True) and (len(query_result_batch) == 0):
            query_result_batch = {'result':dict([(k,query_result[k]._dir) for k in query_result.keys()])}
        return query_result_batch

I validated this fix by issuing a SOQL that returns 15000+ records...

-- 
pyax fails to return when result set contains a lot of data
https://bugs.launchpad.net/bugs/317723
You received this bug notification because you are a member of pyax
Developers, which is the registrant for pyax.



References