def self.new_from_mysql(error)
case error.message
when /parse error/
replacement = ThinkingSphinx::ParseError.new(error.message)
when /syntax error/
replacement = ThinkingSphinx::SyntaxError.new(error.message)
when /query error/
replacement = ThinkingSphinx::QueryError.new(error.message)
when /Can't connect to MySQL server/
replacement = ThinkingSphinx::ConnectionError.new(error.message)
else
replacement = new(error.message)
end
replacement.set_backtrace error.backtrace
replacement.statement = error.statement if error.respond_to?(:statement)
replacement
end