[eluser]Mirage[/eluser]
On the include_join_fields() method:
Wouldn't it be possible to keep the name of the join field (without the 'join_' prefix) if there is no ambiguity with a field from the relation? Seems to me that the relation table is queried once anyway to get it's column names. So the query builder could thus actually be smart about adding the 'join_' prefix.
Alternatively, perhaps let the prefix be passed as a parameter and allow that to be '' ?