mysql2 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,8 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.7 (May 22nd, 2010)
4
+ * fix a bug when using the disconnect! method on a closed connection in the AR driver
5
+
3
6
  ## 0.1.6 (May 14th, 2010)
4
7
  * more fixes to the AR adapter related to casting
5
8
  * add missing index creation override method to AR adapter
@@ -101,6 +101,19 @@ while specifying callbacks for success for failure. Here's a simple example:
101
101
  end
102
102
  end
103
103
 
104
+ == Lazy Everything
105
+
106
+ Well... almost ;)
107
+
108
+ Field name strings/symbols are shared across all the rows so only one object is ever created to represent the field name for an entire dataset.
109
+
110
+ Rows themselves are lazily created in ruby-land when an attempt to yield it is made via #each.
111
+ For example, if you were to yield 4 rows from a 100 row dataset, only 4 hashes will be created. The rest will sit and wait in C-land until you want them (or when the GC goes to cleanup your Mysql2::Result instance).
112
+ Now say you were to iterate over that same collection again, this time yielding 15 rows - the 4 previous rows that had already been turned into ruby hashes would be pulled from an internal cache, then 11 more would be created and stored in that cache.
113
+ Once the entire dataset has been converted into ruby objects, Mysql2::Result will free the Mysql C result object as it's no longer needed.
114
+
115
+ As for field values themselves, I'm workin on it - but expect that soon.
116
+
104
117
  == Compatibility
105
118
 
106
119
  The specs pass on my system (SL 10.6.3, x86_64) in these rubies:
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.6
1
+ 0.1.7
@@ -241,7 +241,10 @@ module ActiveRecord
241
241
  end
242
242
 
243
243
  def disconnect!
244
- @connection.close
244
+ unless @connection.nil?
245
+ @connection.close
246
+ @connection = nil
247
+ end
245
248
  end
246
249
 
247
250
  def reset!
@@ -5,5 +5,5 @@ require 'mysql2_ext'
5
5
  #
6
6
  # A modern, simple and very fast Mysql library for Ruby - binding to libmysql
7
7
  module Mysql2
8
- VERSION = "0.1.6"
8
+ VERSION = "0.1.7"
9
9
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{mysql2}
8
- s.version = "0.1.6"
8
+ s.version = "0.1.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Brian Lopez"]
12
- s.date = %q{2010-05-14}
12
+ s.date = %q{2010-05-22}
13
13
  s.email = %q{seniorlopez@gmail.com}
14
14
  s.extensions = ["ext/extconf.rb"]
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 6
9
- version: 0.1.6
8
+ - 7
9
+ version: 0.1.7
10
10
  platform: ruby
11
11
  authors:
12
12
  - Brian Lopez
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-05-14 00:00:00 -07:00
17
+ date: 2010-05-22 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies: []
20
20