Tuesday, October 2, 2012

[Rails] Rails 3.2/4 force prepared statements to be used

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.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/ACgdfArFpZsJ.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate