update files for 0.2.0 release

This commit is contained in:
Brian Lopez 2010-08-16 12:38:08 -07:00
parent ed4841e29c
commit 91671e0d9a
4 changed files with 44 additions and 8 deletions

View File

@ -1,5 +1,16 @@
# Changelog # 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) ## 0.1.9 (July 17th, 2010)
* Support async ActiveRecord access with fibers and EventMachine (mperham) * Support async ActiveRecord access with fibers and EventMachine (mperham)
* string encoding support for 1.9, respecting Encoding.default_internal * string encoding support for 1.9, respecting Encoding.default_internal

View File

@ -102,7 +102,22 @@ If you'd like to see either of these (or others), open an issue and start buggin
== Timezones == 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 == Async
@ -123,14 +138,17 @@ If you need multiple query concurrency take a look at using a connection pool.
== ActiveRecord == 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". 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.
That was easy right? :)
== Asynchronous ActiveRecord == 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 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. 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 == EventMachine
The mysql2 EventMachine deferrable api allows you to make async queries using EventMachine, The mysql2 EventMachine deferrable api allows you to make async queries using EventMachine,

View File

@ -11,5 +11,5 @@ require 'mysql2/result'
# #
# A modern, simple and very fast Mysql library for Ruby - binding to libmysql # A modern, simple and very fast Mysql library for Ruby - binding to libmysql
module Mysql2 module Mysql2
VERSION = "0.1.9" VERSION = "0.2.0"
end end

View File

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