On Oct 28, 2005, at 7:20 PM, SRS wrote:

Edward Wilson wrote:

The idea of issuing two selects is, well, a hack, and knowing how many records one has in a
result-set is a powerful feature


Are you needing a progress bar for the search (ie the query?) Or some action based on the result set? If the later, get the result set as your favorite container.. ask the container the size. If its the first then a "feature" won't help. It still has to 'run' the query in order to get the count. It would be like me asking you to tell me how many red Skittles are in a package before you open it. As for being a 'hack' .. all your 'feature' would be is a pretty programming interface around that hack. As I said before, how can the database know the number of items that will be returned without first searching for them.


I think the problem is not so much (at least IMHO) that two queries have to be performed (that itself is a reasonable expectation), but that the COUNT(*) query is likely to be slow because of the full table scan. One option is to use an aftermarket solution... for example, in my Perl applications once I have queried the db for the columns based on my criteria, I simply count the number of elements in my record set thereby avoiding a double query to the database. Although, in reality, I personally don't mind the COUNT(*) option... none of my databases are that large to merit worrying about this.

Reply via email to