Skip to content

Commit

Permalink
update files for 0.2.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
brianmario committed Aug 16, 2010
1 parent ed4841e commit 91671e0
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 8 deletions.
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Changelog

## 0.2.0 (August 16th, 2010)
* switch back to letting libmysql manage all allocation/thread-state/freeing for the connection
* cache various numeric type conversions in hot-spots of the code for a little speed boost
* ActiveRecord adapter moved into Rails 3 core
** Don't worry 2.3.x users! We'll either release the adapter as a separate gem, or try to get it into 2.3.9
* Fix for the "closed MySQL connection" error (GH #34)
* Fix for the "can't modify frozen object" error in 1.9.2 (GH #37)
* Introduce cascading query and result options (more info in README)
* Sequel adapter pulled into core (will be in the next release - 3.15.0 at the time of writing)
* add a safety check when attempting to send a query before a result has been fetched

## 0.1.9 (July 17th, 2010)
* Support async ActiveRecord access with fibers and EventMachine (mperham)
* string encoding support for 1.9, respecting Encoding.default_internal
Expand Down
24 changes: 21 additions & 3 deletions README.rdoc
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,22 @@ If you'd like to see either of these (or others), open an issue and start buggin

== Timezones

You can set the :timezone option to :local or :utc to tell Mysql2 which timezone you'd like to have Time objects in
Mysql2 now supports two timezone options:

:database_timezone - this is the timezone Mysql2 will assume fields are already stored as, and will use this when creating the initial Time objects in ruby
:application_timezone - this is the timezone Mysql2 will convert to before finally handing back to the caller

In other words, if :database_timezone is set to :utc - Mysql2 will create the Time objects using Time.utc(...) from the raw value libmysql hands over initially.
Then, if :application_timezone is set to say - :local - Mysql2 will then convert the just-created UTC Time object to local time.

Both options only allow two values - :local or :utc - with the exception that :application_timezone can be [and defaults to] nil

== Casting "boolean" columns

You can now tell Mysql2 to cast tinyint(1) fields to boolean values in Ruby with the :cast_booleans option.

client = Mysql2::Client.new
result = client.query("SELECT * FROM table_with_boolean_field", :cast_booleans => true)

== Async

Expand All @@ -123,14 +138,17 @@ If you need multiple query concurrency take a look at using a connection pool.

== ActiveRecord

To use the ActiveRecord driver, all you should need to do is have this gem installed and set the adapter in your database.yml to "mysql2".
That was easy right? :)
The ActiveRecord adapter has been removed from the mysql2 gem and is now part of Rails 3 core. We'll be releasing a separate gem or trying to get it into 2.3.9 for 2.3.x users.

== Asynchronous ActiveRecord

You can also use Mysql2 with asynchronous Rails (first introduced at http://www.mikeperham.com/2010/04/03/introducing-phat-an-asynchronous-rails-app/) by
setting the adapter in your database.yml to "em_mysql2". You must be running Ruby 1.9, thin and the rack-fiber_pool middleware for it to work.

== Sequel

The Sequel adapter was pulled out into Sequel core (will be part of the next release) and can be used by specifying the "mysql2://" prefix to your connection specification.

== EventMachine

The mysql2 EventMachine deferrable api allows you to make async queries using EventMachine,
Expand Down
2 changes: 1 addition & 1 deletion lib/mysql2.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@
#
# A modern, simple and very fast Mysql library for Ruby - binding to libmysql
module Mysql2
VERSION = "0.1.9"
VERSION = "0.2.0"
end
15 changes: 11 additions & 4 deletions mysql2.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@

Gem::Specification.new do |s|
s.name = %q{mysql2}
s.version = "0.1.9"
s.version = "0.2.0"

s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
s.authors = ["Brian Lopez"]
s.date = %q{2010-08-01}
s.date = %q{2010-08-16}
s.email = %q{[email protected]}
s.extensions = ["ext/mysql2/extconf.rb"]
s.extra_rdoc_files = [
Expand All @@ -23,12 +23,15 @@ Gem::Specification.new do |s|
"Rakefile",
"VERSION",
"benchmark/active_record.rb",
"benchmark/allocations.rb",
"benchmark/escape.rb",
"benchmark/query_with_mysql_casting.rb",
"benchmark/query_without_mysql_casting.rb",
"benchmark/sequel.rb",
"benchmark/setup_db.rb",
"benchmark/thread_alone.rb",
"examples/eventmachine.rb",
"examples/threaded.rb",
"ext/mysql2/client.c",
"ext/mysql2/client.h",
"ext/mysql2/extconf.rb",
Expand All @@ -51,7 +54,10 @@ Gem::Specification.new do |s|
"spec/mysql2/result_spec.rb",
"spec/rcov.opts",
"spec/spec.opts",
"spec/spec_helper.rb"
"spec/spec_helper.rb",
"tasks/benchmarks.rake",
"tasks/compile.rake",
"tasks/vendor_mysql.rake"
]
s.homepage = %q{http://github.com/brianmario/mysql2}
s.rdoc_options = ["--charset=UTF-8"]
Expand All @@ -64,7 +70,8 @@ Gem::Specification.new do |s|
"spec/mysql2/error_spec.rb",
"spec/mysql2/result_spec.rb",
"spec/spec_helper.rb",
"examples/eventmachine.rb"
"examples/eventmachine.rb",
"examples/threaded.rb"
]

if s.respond_to? :specification_version then
Expand Down

0 comments on commit 91671e0

Please sign in to comment.