def inner_polymorphic_join(target, options = {})
options[:on] ||= table_name
options[:on_table_name] ||= connection.quote_table_name(options[:on])
options[:target_table] ||= connection.quote_table_name(target.to_s.pluralize)
options[:as] ||= "owner"
postgres = ::ActiveRecord::Base.connection.adapter_name == "PostgreSQL"
"INNER JOIN #{options[:target_table]} ON #{options[:target_table]}.id = #{options[:on_table_name]}.#{options[:as]}_id AND " +
"#{options[:on_table_name]}.#{options[:as]}_type = #{postgres ? "E" : ""}'#{target.to_s.camelize}'"
end