Cannot step through asynchronous iterator manually

Michael Torrie torriem at gmail.com
Sat Jan 30 16:57:59 EST 2016


On 01/30/2016 02:19 PM, Chris Angelico wrote:
> where the ... is the full original query. In other words, the whole
> query has to be run twice - once to assert that there's exactly one
> result, and then a second time to get that result. The existing
> algorithm ("try to fetch a row - if it fails error; then try to fetch
> another - if it succeeds, error") doesn't need to fetch more than two
> results, no matter how big the query result is.

Actually it occurs to me this doesn't have to be true.  The same
information he needs to know can be done with one query and only 1 result.

SELECT count(some_id_field),field1,field2,field3 FROM wherever WHERE
conditions

If the first column (or whatever you decide to alias it as) contains a
count, and the rest of the information is still there.  If count is 1,
then the row is what you want and you can do whatever you wish with it.
 If not, throw your exception.





More information about the Python-list mailing list