RE: Oracle and Rails seems really slow.... In development


#1

Neat!

From my findings, though… This is what I noticed:

The original code:

          table_cols = %Q{
            select column_name, data_type, data_default,

nullable,
decode(data_type, ‘NUMBER’, data_precision,
‘VARCHAR2’, data_length,
null) as length,
decode(data_type, ‘NUMBER’, data_scale, null)
as scale
from #{scope}_catalog cat, #{scope}_synonyms syn,
all_tab_columns col
where cat.table_name = #{table}
and syn.synonym_name (+)= cat.table_name
and col.table_name = nvl(syn.table_name,
cat.table_name)
and col.owner = nvl(syn.table_owner, #{(scope ==
“all” ? “cat.owner” : “user”)}) }

My version

          table_cols = %Q{
            select column_name, data_type, data_default,

nullable,
decode(data_type, ‘NUMBER’, data_precision,
‘VARCHAR2’, data_length,
null) as length,
decode(data_type, ‘NUMBER’, data_scale, null)
as scale
from #{scope}_catalog cat, #{scope}_synonyms syn,
all_tab_columns col
where col.table_name = #{table}
and syn.synonym_name (+)= cat.table_name
and col.table_name = nvl(syn.table_name,
cat.table_name)
and col.owner = nvl(syn.table_owner, #{(scope ==
“all” ? “cat.owner” : “user”)}) }

Runs no problem.

I just changed

where cat.table_name = #{table}

To
where col.table_name = #{table}

Since the ALL_TAB_COLUMNS has the table name, this works great… And
this fix makes it just fly!


#2

Is this a patch?