I switched to 2.0.10 when I got a new PC. The new PC has only 8 GM memory while the former PC had 16. The problem isn't a memory leak. In fact I'm using a heck of a lot of memory in the query - very likely all the data in the query could be 16GB.
It's easy to get into lazy/wasteful techniques when you have "unlimited" resources. It always amazed my how SQLite could handle an unlimited amount of data without batting an eye! Now that my RAM is more limited I'm discovering that there is a limit.
It seems that all of the data held in a query is kept in RAM; or more accurately - all records already accessed in the Query are held in RAM. I get the impression that SQLite pulls into RAM 20 records at a time as it processes a queue, so RAM gradually gets filled, unless UniDirectional := true. Perhaps the Locate function actually brings into RAM 20 record blocks until the desired record is located, thus filling up RAM.