Forum: Ruby on Rails Resend: find problems => patch

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
hgs (Guest)
on 2005-11-12 12:49
(Received via mailing list)
I'm fairly sure I sent a message like this last night but it has not
appeared on the list.  I didn't CC myself because I usually see
messages that I post.  Anyway, pardon any resulting duplication.

I have just had this, and not that MySQL doesn't actually display
where the errror is, only the code after it:

You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near
'?"00149246       "  LIMIT 1' at line 1
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.11.1/lib/active_record/connection_adapters/mysql_adapter.rb:119:in
`query'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.11.1/lib/active_record/connection_adapters/mysql_adapter.rb:119:in
`execute'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.11.1/lib/active_record/connection_adapters/mysql_adapter.rb:230:in
`select'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.11.1/lib/active_record/connection_adapters/mysql_adapter.rb:97:in
`select_all'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.11.1/lib/active_record/base.rb:376:in
`find_by_sql'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.11.1/lib/active_record/base.rb:343:in
`find'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.11.1/lib/active_record/base.rb:341:in
`find'
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.11.1/lib/active_record/deprecated_finders.rb:22:in
`find_first'


So I'd like to propose a patch of the following form:

--- ./mysql_adapter.rb.orig     2005-11-09 19:15:20.575395000 -0800
+++ ./mysql_adapter.rb  2005-11-09 19:26:23.411710000 -0800
@@ -132,7 +132,7 @@
         elsif exception.message.split(":").first =~ /Packets out of
order/
           raise ActiveRecord::StatementInvalid, "'Packets out of order'
error was received from the database. Please update your mysql bindings
(gem update mysql) and read
http://dev.mysql.com/doc/mysql/en/password-hashing.html for more
information."
         else
-          raise
+          raise exception.class.new(exception.message + ": SQL was: " +
sql)
         end
       end


so we can see what the MySQL is when this fails.  Is this a good idea,
the
right way to do this, etc?

        Thank you,
        Hugh
This topic is locked and can not be replied to.