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
## 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

View File

@ -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
@ -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,

View File

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

View File

@ -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{seniorlopez@gmail.com}
s.extensions = ["ext/mysql2/extconf.rb"]
s.extra_rdoc_files = [
@ -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",
@ -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"]
@ -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