I get the reasoning behind asking that SQL statements passed to buildFromSQL look like a SELECT * FROM statement, but this is irritatingly limiting. Why not throw an exception after the statement is run if the required fields are not returned rather than enforcing a rigid SQL scheme?
For instance, what if I needed to use a control flow statement to decide between selecting a column or using a sub-query to get that value elsewhere if the column is null (a simple IF() in MySQL)? As far as I can see, that would mean I'd have to give up all the benefits of fRecordSet/fActiveRecord because it'd mean straying from SELECT * FROM (I tried it, Flourish throws an exception complaining about SELECT * FROM).
Once again, maybe I'm just not seeing the bigger picture :) Seems like a small increase in trust for a huge increase in potential, though.