Proper Rushmore optimization is more important, especially if the tables are large. And with Rushmore, the optimized field does not have to be the first one in the SELECT. The UDF() is not called on records that Rushmore eliminates.
Withhout Rushmore, the bottleneck in your example is the fact VFP has to read every record...more of a bottleneck than the UDF() call.
Perhaps VFP could have been designed to do what you are describing...but if you have the correct indexes, it is not relevant.
>That is what I mean. I do not agree that the SQL Select command is smarter than the IF command. The following command will not call function1 unless field1 = "Test" - with or without an index:
>
>
IF field1 = "Test" and function1()
>
>
Steve Gibson