Sure… don’t eager load. Get your first result set… then use collect
grab the ids.
Would that work?
It will! I was thinking about workarounds the wrong way. It’s still
inefficient but at least I can cut it down to about 2 queries (using the
sql IN parameter as you described). I was picturing myself going from 1
joined query to 100+ in order to check for my conditions matching, but I
never thought of simply doing a second “bulk find”.
It has been modified to use a new naming convention for :include
Instead of using t[table_index]_r[column_index] I am now using a more
human readable convention of the form
Also, One of our requirements was the ability to extract an
ActiveRecord object hierarchy from an arbitrary (albeit following the
naming convention) result set. This is now possible through the
extract_objects(rows) method. We had several find methods which had to
be converted to PL/SQL functions for performance reasons. We can now
use connection.select_all to grab a result set, and run it through
extract objects to get a friendly active record collection (works with
nested includes as well)