How efficient with SQL is Flourish? For example, if we do a simple fActiveRecord call to pull out a row from a database, does Flourish automatically fetch all the row's data? Or does it wait for a request to one of its columns, and proceed to fetch just that?
As another example, if I were to count all the rows in a database, would it be okay to simply build a full fRecordSet object and using count() on it? Does building an fRecordSet object try to get all the data (which would be catastrophic for extremely large tables) or does it wait for us to do an operation?
Poking around in the source seems a bit unclear, though I did find a function called tally() in fRecordSet that suggests that more queries are done on the fly as data is requested. I can see both options having drawbacks, though: lazy querying leads to more queries in the long run, while the alternative can easily load way too much data than necessary.
Some explanations would be really useful!