Rails 3.2/4 force prepared statements to be used

29 views
Skip to first unread message

sl_bug

unread,
Oct 2, 2012, 8:36:18 AM10/2/12
to rubyonra...@googlegroups.com
I've already asked about this on StackOverflow with no luck on answer - http://stackoverflow.com/questions/12617237/rails-3-2-force-prepared-statements/12617681

Simplified Case:

Hotel.find(1) - use prepared statement
# SELECT "hotels".* FROM "hotels" WHERE "hotels"."id" = $1 LIMIT 1 [["id", 1]]

Hotel.where(id: 1) - without prepared statement
# SELECT "hotels".* FROM "hotels" WHERE "hotels"."id" = 1

Hotel.where(Hotel.arel_table[:id].eq(1)) - without prepared statement
# SELECT "hotels".* FROM "hotels" WHERE "hotels"."id" = 1

Hotel.where('id = :id', id: 1) - without prepared statement
# SELECT "hotels".* FROM "hotels" WHERE (id = 1)

How to force rails to use prepared statements? May be not in all cases, but at least with arel_table.

Reply all
Reply to author
Forward
0 new messages