get_all_by_attribute now returns an unevaluated generator and does not return an Exception if the result set is empty