Hello community,

here is the log from the commit of package rubygem-mysql2 for openSUSE:Factory 
checked in at 2015-02-18 11:39:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-mysql2 (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-mysql2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-mysql2"

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-mysql2/rubygem-mysql2.changes    
2015-02-10 20:22:22.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-mysql2.new/rubygem-mysql2.changes       
2015-02-18 12:08:45.000000000 +0100
@@ -1,0 +2,5 @@
+Tue Feb 17 05:29:23 UTC 2015 - [email protected]
+
+- updated to version 0.3.18
+
+-------------------------------------------------------------------

Old:
----
  mysql2-0.3.17.gem

New:
----
  mysql2-0.3.18.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-mysql2.spec ++++++
--- /var/tmp/diff_new_pack.Nb2QPG/_old  2015-02-18 12:08:45.000000000 +0100
+++ /var/tmp/diff_new_pack.Nb2QPG/_new  2015-02-18 12:08:45.000000000 +0100
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-mysql2
-Version:        0.3.17
+Version:        0.3.18
 Release:        0
 %define mod_name mysql2
 %define mod_full_name %{mod_name}-%{version}
@@ -52,7 +52,7 @@
 
 %install
 %gem_install \
-  --doc-files="MIT-LICENSE README.md" \
+  --doc-files="README.md" \
   -f
 %gem_cleanup
 

++++++ mysql2-0.3.17.gem -> mysql2-0.3.18.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIT-LICENSE new/MIT-LICENSE
--- old/MIT-LICENSE     1970-01-01 01:00:00.000000000 +0100
+++ new/MIT-LICENSE     1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
-Copyright (c) 2010-2011 Brian Lopez - http://github.com/brianmario
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/README.md new/README.md
--- old/README.md       1970-01-01 01:00:00.000000000 +0100
+++ new/README.md       1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +1,7 @@
 # Mysql2 - A modern, simple and very fast MySQL library for Ruby - binding to 
libmysql
 
-[![Build 
Status](https://travis-ci.org/brianmario/mysql2.png)](https://travis-ci.org/brianmario/mysql2)
+Travis CI [![Travis CI 
Status](https://travis-ci.org/brianmario/mysql2.png)](https://travis-ci.org/brianmario/mysql2)
+Appveyor CI [![Appveyor CI 
Status](https://ci.appveyor.com/api/projects/status/github/sodabrew/mysql2)](https://ci.appveyor.com/project/sodabrew/mysql2)
 
 The Mysql2 gem is meant to serve the extremely common use-case of connecting, 
querying and iterating on results.
 Some database libraries out there serve as direct 1:1 mappings of the already 
complex C APIs available.
@@ -15,12 +16,16 @@
 `Mysql2::Result` - returned from issuing a #query on the connection. It 
includes Enumerable.
 
 ## Installing
-### OSX / Linux
+### General Instructions
 ``` sh
 gem install mysql2
 ```
 
-This gem links against MySQL's `libmysqlclient` C shared library. You may need 
to install a package such as `libmysqlclient-dev`, `mysql-devel`, or other 
appropriate package for your system.
+This gem links against MySQL's `libmysqlclient` library or `Connector/C`
+library, and compatible alternatives such as MariaDB.
+You may need to install a package such as `libmysqlclient-dev`, `mysql-devel`,
+or other appropriate package for your system. See below for system-specific
+instructions.
 
 By default, the mysql2 gem will try to find a copy of MySQL in this order:
 
@@ -51,25 +56,35 @@
 are located somewhere different than on your build system.
 This overrides any rpath calculated by default or by the options above.
 
-### Windows
-First, make sure you have the DevKit installed 
(http://rubyinstaller.org/downloads/) and its variables
-are loaded by running devkit\devktvars.bat .
-
-Next, you need a MySQL library to link against. If you have MySQL loaded on 
your development machine,
-you can use that. If not, you will need to either copy the MySQL directory 
from your server, or else
-obtain a copy of the MySQL C connector: 
http://dev.mysql.com/downloads/connector/c/
+### Linux and other Unixes
 
-If you're using the connector, I recommend just getting the .zip file and 
unzipping it someplace convenient.
+You may need to install a package such as `libmysqlclient-dev` or 
`mysql-devel`;
+refer to your distribution's package guide to find the particular package.
+The most common issue we see is a user who has the library file 
`libmysqlclient.so` but is
+missing the header file `mysql.h` -- double check that you have the _-dev_ 
packages installed.
+
+### Mac OS X
+
+You may use MacPorts, Homebrew, or a native MySQL installer package. The most
+common paths will be automatically searched. If you want to select a specific
+MySQL directory, use the `--with-mysql-dir` or `--with-mysql-config` options 
above.
 
-Now you can install mysql2. You must use the `--with-mysql-dir` option to tell 
gem where your MySQL library
-files are. For example, if you unzipped the connector to 
c:\mysql-connector-c-6.1.1-win32 you would install
-the gem like this:
-
-    gem install mysql2 -- --with-mysql-dir=c:\mysql-connector-c-6.1.1-win32
+### Windows
+Make sure that you have Ruby and the DevKit compilers installed. We recommend
+the [Ruby Installer](http://rubyinstaller.org) distribution.
 
-Finally, you must copy libmysql.dll from the lib subdirectory of your MySQL or 
MySQL connector directory into
-your ruby\bin directory. In the above example, libmysql.dll would be located at
-c:\mysql-connector-c-6.1.1-win32\lib .
+By default, the mysql2 gem will download and use MySQL Connector/C from
+mysql.com. If you prefer to use a local installation of Connector/C, add the
+flag `--with-mysql-dir=c:/mysql-connector-c-x-y-z` (_this path may use forward 
slashes_).
+
+By default, the `libmysql.dll` library will be copied into the mysql2 gem
+directory. To prevent this, add the flag `--no-vendor-libmysql`. The mysql2 gem
+will search for `libmysql.dll` in the following paths, in order:
+
+* Environment variable `RUBY_MYSQL2_LIBMYSQL_DLL=C:\path\to\libmysql.dll`
+  (_note the Windows-style backslashes_).
+* In the mysql2 gem's own directory `vendor/libmysql.dll`
+* In the system's default library search paths.
 
 ## Usage
 
@@ -422,13 +437,13 @@
 
 This gem is tested with the following Ruby versions on Linux and Mac OS X:
 
- * Ruby MRI 1.8.7, 1.9.2, 1.9.3, 2.0.0, 2.1.x (ongoing patch releases)
+ * Ruby MRI 1.8.7, 1.9.2, 1.9.3, 2.0.0, 2.1.x, 2.2.x (ongoing patch releases)
  * Ruby Enterprise Edition (based on MRI 1.8.7)
  * Rubinius 2.x
 
 This gem is tested with the following MySQL and MariaDB versions:
 
- * MySQL 5.0, 5.1, 5.5, 5.6
+ * MySQL 5.0, 5.1, 5.5, 5.6, 5.7
  * MySQL Connector/C 6.0 and 6.1 (primarily on Windows)
  * MariaDB 5.5, 10.0
 
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/mysql2/client.c new/ext/mysql2/client.c
--- old/ext/mysql2/client.c     1970-01-01 01:00:00.000000000 +0100
+++ new/ext/mysql2/client.c     1970-01-01 01:00:00.000000000 +0100
@@ -438,7 +438,7 @@
   MYSQL_RES *result;
 
   wrapper = (mysql_client_wrapper *)ptr;
-  if(use_result) {
+  if (use_result) {
     result = mysql_use_result(wrapper->client);
   } else {
     result = mysql_store_result(wrapper->client);
@@ -483,7 +483,7 @@
   }
 
   is_streaming = rb_hash_aref(rb_iv_get(self, "@current_query_options"), 
sym_stream);
-  if(is_streaming == Qtrue) {
+  if (is_streaming == Qtrue) {
     result = (MYSQL_RES *)rb_thread_call_without_gvl(nogvl_use_result, 
wrapper, RUBY_UBF_IO, 0);
   } else {
     result = (MYSQL_RES *)rb_thread_call_without_gvl(nogvl_store_result, 
wrapper, RUBY_UBF_IO, 0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/mysql2/extconf.rb new/ext/mysql2/extconf.rb
--- old/ext/mysql2/extconf.rb   1970-01-01 01:00:00.000000000 +0100
+++ new/ext/mysql2/extconf.rb   1970-01-01 01:00:00.000000000 +0100
@@ -20,13 +20,13 @@
   /opt
   /opt/local
   /opt/local/mysql
-  /opt/local/lib/mysql5
+  /opt/local/lib/mysql5*
   /usr
   /usr/mysql
   /usr/local
   /usr/local/mysql
   /usr/local/mysql-*
-  /usr/local/lib/mysql5
+  /usr/local/lib/mysql5*
 ].map{|dir| "#{dir}/bin" }
 
 GLOB = "{#{dirs.join(',')}}/{mysql_config,mysql_config5}"
@@ -74,10 +74,6 @@
   rpath_dir = lib
 end
 
-if RUBY_PLATFORM =~ /mswin|mingw/
-  exit 1 unless have_library('libmysql')
-end
-
 if have_header('mysql.h')
   prefix = nil
 elsif have_header('mysql/mysql.h')
@@ -98,31 +94,82 @@
   $CFLAGS << gcc_flags
 end
 
-case explicit_rpath = with_config('mysql-rpath')
-when true
-  abort "-----\nOption --with-mysql-rpath must have an argument\n-----"
-when false
-  warn "-----\nOption --with-mysql-rpath has been disabled at your 
request\n-----"
-when String
-  # The user gave us a value so use it
-  rpath_flags = " -Wl,-rpath,#{explicit_rpath}"
-  warn "-----\nSetting mysql rpath to #{explicit_rpath}\n-----"
-  $LDFLAGS << rpath_flags
+if RUBY_PLATFORM =~ /mswin|mingw/
+  # Build libmysql.a interface link library
+  require 'rake'
+
+  # Build libmysql.a interface link library
+  # Use rake to rebuild only if these files change
+  deffile = File.expand_path('../../../support/libmysql.def', __FILE__)
+  libfile = File.expand_path(File.join(rpath_dir, 'libmysql.lib'))
+  file 'libmysql.a' => [deffile, libfile] do |t|
+    when_writing 'building libmysql.a' do
+      # Ruby kindly shows us where dllwrap is, but that tool does more than we 
want.
+      # Maybe in the future Ruby could provide RbConfig::CONFIG['DLLTOOL'] 
directly.
+      dlltool = RbConfig::CONFIG['DLLWRAP'].gsub('dllwrap', 'dlltool')
+      sh dlltool, '--kill-at',
+         '--dllname', 'libmysql.dll',
+         '--output-lib', 'libmysql.a',
+         '--input-def', deffile, libfile
+    end
+  end
+
+  Rake::Task['libmysql.a'].invoke
+  $LOCAL_LIBS << ' ' << 'libmysql.a'
+
+  # Make sure the generated interface library works (if cross-compiling, trust 
without verifying)
+  unless RbConfig::CONFIG['host_os'] =~ /mswin|mingw/
+    abort "-----\nCannot find libmysql.a\n----" unless have_library('libmysql')
+    abort "-----\nCannot link to libmysql.a (my_init)\n----" unless 
have_func('my_init')
+  end
+
+  # Vendor libmysql.dll
+  vendordir = File.expand_path('../../../vendor/', __FILE__)
+  directory vendordir
+
+  vendordll = File.join(vendordir, 'libmysql.dll')
+  dllfile = File.expand_path(File.join(rpath_dir, 'libmysql.dll'))
+  file vendordll => [dllfile, vendordir] do |t|
+    when_writing 'copying libmysql.dll' do
+      cp dllfile, vendordll
+    end
+  end
+
+  # Copy libmysql.dll to the local vendor directory by default
+  if arg_config('--no-vendor-libmysql')
+    # Fine, don't.
+    puts "--no-vendor-libmysql"
+  else # Default: arg_config('--vendor-libmysql')
+    # Let's do it!
+    Rake::Task[vendordll].invoke
+  end
 else
-  if libdir = rpath_dir[%r{(-L)?(/[^ ]+)}, 2]
-    rpath_flags = " -Wl,-rpath,#{libdir}"
-    if RbConfig::CONFIG["RPATHFLAG"].to_s.empty? && try_link('int main() 
{return 0;}', rpath_flags)
-      # Usually Ruby sets RPATHFLAG the right way for each system, but not on 
OS X.
-      warn "-----\nSetting rpath to #{libdir}\n-----"
-      $LDFLAGS << rpath_flags
-    else
-      if RbConfig::CONFIG["RPATHFLAG"].to_s.empty?
-        # If we got here because try_link failed, warn the user
-        warn "-----\nDon't know how to set rpath on your system, if MySQL 
libraries are not in path mysql2 may not load\n-----"
+  case explicit_rpath = with_config('mysql-rpath')
+  when true
+    abort "-----\nOption --with-mysql-rpath must have an argument\n-----"
+  when false
+    warn "-----\nOption --with-mysql-rpath has been disabled at your 
request\n-----"
+  when String
+    # The user gave us a value so use it
+    rpath_flags = " -Wl,-rpath,#{explicit_rpath}"
+    warn "-----\nSetting mysql rpath to #{explicit_rpath}\n-----"
+    $LDFLAGS << rpath_flags
+  else
+    if libdir = rpath_dir[%r{(-L)?(/[^ ]+)}, 2]
+      rpath_flags = " -Wl,-rpath,#{libdir}"
+      if RbConfig::CONFIG["RPATHFLAG"].to_s.empty? && try_link('int main() 
{return 0;}', rpath_flags)
+        # Usually Ruby sets RPATHFLAG the right way for each system, but not 
on OS X.
+        warn "-----\nSetting rpath to #{libdir}\n-----"
+        $LDFLAGS << rpath_flags
+      else
+        if RbConfig::CONFIG["RPATHFLAG"].to_s.empty?
+          # If we got here because try_link failed, warn the user
+          warn "-----\nDon't know how to set rpath on your system, if MySQL 
libraries are not in path mysql2 may not load\n-----"
+        end
+        # Make sure that LIBPATH gets set if we didn't explicitly set the 
rpath.
+        warn "-----\nSetting libpath to #{libdir}\n-----"
+        $LIBPATH << libdir unless $LIBPATH.include?(libdir)
       end
-      # Make sure that LIBPATH gets set if we didn't explicitly set the rpath.
-      warn "-----\nSetting libpath to #{libdir}\n-----"
-      $LIBPATH << libdir unless $LIBPATH.include?(libdir)
     end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/mysql2/result.c new/ext/mysql2/result.c
--- old/ext/mysql2/result.c     1970-01-01 01:00:00.000000000 +0100
+++ new/ext/mysql2/result.c     1970-01-01 01:00:00.000000000 +0100
@@ -232,7 +232,7 @@
       VALUE val = Qnil;
       enum enum_field_types type = fields[i].type;
 
-      if(!cast) {
+      if (!cast) {
         if (type == MYSQL_TYPE_NULL) {
           val = Qnil;
         } else {
@@ -297,7 +297,7 @@
             break;
           }
           msec = msec_char_to_uint(msec_char, sizeof(msec_char));
-          val = rb_funcall(rb_cTime, db_timezone, 6, opt_time_year, 
opt_time_month, opt_time_month, UINT2NUM(hour), UINT2NUM(min), UINT2NUM(sec), 
UINT2NUM(msec));
+          val = rb_funcall(rb_cTime, db_timezone, 7, opt_time_year, 
opt_time_month, opt_time_month, UINT2NUM(hour), UINT2NUM(min), UINT2NUM(sec), 
UINT2NUM(msec));
           if (!NIL_P(app_timezone)) {
             if (app_timezone == intern_local) {
               val = rb_funcall(val, intern_localtime, 0);
@@ -479,11 +479,11 @@
     cast = 0;
   }
 
-  if(rb_hash_aref(opts, sym_stream) == Qtrue) {
+  if (rb_hash_aref(opts, sym_stream) == Qtrue) {
     streaming = 1;
   }
 
-  if(streaming && cacheRows) {
+  if (streaming && cacheRows) {
     rb_warn("cacheRows is ignored if streaming is true");
   }
 
@@ -601,7 +601,7 @@
   mysql2_result_wrapper *wrapper;
 
   GetMysql2Result(self, wrapper);
-  if(wrapper->resultFreed) {
+  if (wrapper->resultFreed) {
     if (wrapper->streamingComplete){
       return LONG2NUM(wrapper->numberOfRows);
     } else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/mysql2/em.rb new/lib/mysql2/em.rb
--- old/lib/mysql2/em.rb        1970-01-01 01:00:00.000000000 +0100
+++ new/lib/mysql2/em.rb        1970-01-01 01:00:00.000000000 +0100
@@ -10,6 +10,7 @@
         def initialize(client, deferable)
           @client = client
           @deferable = deferable
+          @is_watching = true
         end
 
         def notify_readable
@@ -22,11 +23,19 @@
             @deferable.succeed(result)
           end
         end
+
+        def watching?
+          @is_watching
+        end
+
+        def unbind
+          @is_watching = false
+        end
       end
 
       def close(*args)
         if @watch
-          @watch.detach
+          @watch.detach if @watch.watching?
         end
         super(*args)
       end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/mysql2/version.rb new/lib/mysql2/version.rb
--- old/lib/mysql2/version.rb   1970-01-01 01:00:00.000000000 +0100
+++ new/lib/mysql2/version.rb   1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +1,3 @@
 module Mysql2
-  VERSION = "0.3.17"
+  VERSION = "0.3.18"
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/mysql2.rb new/lib/mysql2.rb
--- old/lib/mysql2.rb   1970-01-01 01:00:00.000000000 +0100
+++ new/lib/mysql2.rb   1970-01-01 01:00:00.000000000 +0100
@@ -3,6 +3,29 @@
 require 'bigdecimal'
 require 'rational' unless RUBY_VERSION >= '1.9.2'
 
+# Load libmysql.dll before requiring mysql2/mysql2.so
+# This gives a chance to be flexible about the load path
+# Or to bomb out with a clear error message instead of a linker crash
+if RUBY_PLATFORM =~ /mswin|mingw/
+  dll_path = if ENV['RUBY_MYSQL2_LIBMYSQL_DLL']
+               # If this environment variable is set, it overrides any other 
paths
+               # The user is advised to use backslashes not forward slashes
+               ENV['RUBY_MYSQL2_LIBMYSQL_DLL'].dup
+             elsif File.exist?(File.expand_path('../vendor/libmysql.dll', 
File.dirname(__FILE__)))
+               # Use vendor/libmysql.dll if it exists, convert slashes for 
Win32 LoadLibrary
+               File.expand_path('../vendor/libmysql.dll', 
File.dirname(__FILE__)).gsub('/', '\\')
+             else
+               # This will use default / system library paths
+               'libmysql.dll'
+             end
+
+  require 'Win32API'
+  LoadLibrary = Win32API.new('Kernel32', 'LoadLibrary', ['P'], 'I')
+  if 0 == LoadLibrary.call(dll_path)
+    abort "Failed to load libmysql.dll from #{dll_path}"
+  end
+end
+
 require 'mysql2/version' unless defined? Mysql2::VERSION
 require 'mysql2/error'
 require 'mysql2/mysql2'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        1970-01-01 01:00:00.000000000 +0100
+++ new/metadata        1970-01-01 01:00:00.000000000 +0100
@@ -1,43 +1,29 @@
 --- !ruby/object:Gem::Specification
 name: mysql2
 version: !ruby/object:Gem::Version
-  version: 0.3.17
+  version: 0.3.18
 platform: ruby
 authors:
 - Brian Lopez
 autorequire: 
 bindir: bin
 cert_chain: []
-date: 2014-11-11 00:00:00.000000000 Z
+date: 2015-02-17 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
-  name: eventmachine
-  requirement: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: '0'
-  type: :development
-  prerelease: false
-  version_requirements: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: '0'
-- !ruby/object:Gem::Dependency
   name: rake-compiler
   requirement: !ruby/object:Gem::Requirement
     requirements:
     - - ~>
       - !ruby/object:Gem::Version
-        version: 0.8.1
+        version: 0.9.5
   type: :development
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
     - - ~>
       - !ruby/object:Gem::Version
-        version: 0.8.1
+        version: 0.9.5
 - !ruby/object:Gem::Dependency
   name: rake
   requirement: !ruby/object:Gem::Requirement
@@ -73,7 +59,6 @@
 - ext/mysql2/extconf.rb
 extra_rdoc_files: []
 files:
-- MIT-LICENSE
 - README.md
 - ext/mysql2/client.c
 - ext/mysql2/client.h
@@ -94,6 +79,7 @@
 - lib/mysql2/error.rb
 - lib/mysql2/result.rb
 - lib/mysql2/version.rb
+- support/libmysql.def
 - support/mysql_enc_to_ruby.rb
 - support/ruby_enc_to_mysql.rb
 - examples/eventmachine.rb
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/spec/em/em_spec.rb new/spec/em/em_spec.rb
--- old/spec/em/em_spec.rb      1970-01-01 01:00:00.000000000 +0100
+++ new/spec/em/em_spec.rb      1970-01-01 01:00:00.000000000 +0100
@@ -108,6 +108,27 @@
         callbacks_run.should == [:errback]
       end
     end
+
+    it "should not raise error when closing client with no query running" do
+      callbacks_run = []
+      EM.run do
+        client = Mysql2::EM::Client.new DatabaseCredentials['root']
+        defer = client.query("select sleep(0.025)")
+        defer.callback do |result|
+          callbacks_run << :callback
+        end
+        defer.errback do |err|
+          callbacks_run << :errback
+        end
+        EM.add_timer(0.1) do
+          callbacks_run.should == [:callback]
+          lambda {
+            client.close
+          }.should_not raise_error(/invalid binding to detach/)
+          EM.stop_event_loop
+        end
+      end
+    end
   end
 rescue LoadError
   puts "EventMachine not installed, skipping the specs that use it"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/spec/mysql2/client_spec.rb 
new/spec/mysql2/client_spec.rb
--- old/spec/mysql2/client_spec.rb      1970-01-01 01:00:00.000000000 +0100
+++ new/spec/mysql2/client_spec.rb      1970-01-01 01:00:00.000000000 +0100
@@ -564,7 +564,7 @@
       end
 
       it "should raise an exception when one of multiple statements fails" do
-        result = @multi_client.query("SELECT 1 as 'set_1'; SELECT * FROM 
invalid_table_name;SELECT 2 as 'set_2';")
+        result = @multi_client.query("SELECT 1 AS 'set_1'; SELECT * FROM 
invalid_table_name; SELECT 2 AS 'set_2';")
         result.first['set_1'].should be(1)
         lambda {
           @multi_client.next_result
@@ -573,7 +573,7 @@
       end
 
       it "returns multiple result sets" do
-        @multi_client.query( "select 1 as 'set_1'; select 2 as 
'set_2'").first.should eql({ 'set_1' => 1 })
+        @multi_client.query("SELECT 1 AS 'set_1'; SELECT 2 AS 
'set_2'").first.should eql({ 'set_1' => 1 })
 
         @multi_client.next_result.should be_true
         @multi_client.store_result.first.should eql({ 'set_2' => 2 })
@@ -582,12 +582,12 @@
       end
 
       it "does not interfere with other statements" do
-        @multi_client.query( "select 1 as 'set_1'; select 2 as 'set_2'")
+        @multi_client.query("SELECT 1 AS 'set_1'; SELECT 2 AS 'set_2'")
         while( @multi_client.next_result )
           @multi_client.store_result
         end
 
-        @multi_client.query( "select 3 as 'next'").first.should == { 'next' => 
3 }
+        @multi_client.query("SELECT 3 AS 'next'").first.should == { 'next' => 
3 }
       end
 
       it "will raise on query if there are outstanding results to read" do
@@ -606,7 +606,7 @@
       end
 
       it "#more_results? should work" do
-        @multi_client.query( "select 1 as 'set_1'; select 2 as 'set_2'")
+        @multi_client.query("SELECT 1 AS 'set_1'; SELECT 2 AS 'set_2'")
         @multi_client.more_results?.should be_true
 
         @multi_client.next_result
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/spec/mysql2/result_spec.rb 
new/spec/mysql2/result_spec.rb
--- old/spec/mysql2/result_spec.rb      1970-01-01 01:00:00.000000000 +0100
+++ new/spec/mysql2/result_spec.rb      1970-01-01 01:00:00.000000000 +0100
@@ -136,7 +136,7 @@
     it "should raise an exception if streaming ended due to a timeout" do
       # Create an extra client instance, since we're going to time it out
       client = Mysql2::Client.new DatabaseCredentials['root']
-      client.query "CREATE TEMPORARY TABLE streamingTest (val BINARY(255))"
+      client.query "CREATE TEMPORARY TABLE streamingTest (val BINARY(255)) 
ENGINE=MEMORY"
 
       # Insert enough records to force the result set into multiple reads
       # (the BINARY type is used simply because it forces full width results)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/support/libmysql.def new/support/libmysql.def
--- old/support/libmysql.def    1970-01-01 01:00:00.000000000 +0100
+++ new/support/libmysql.def    1970-01-01 01:00:00.000000000 +0100
@@ -0,0 +1,219 @@
+; MySQL's Connector/C ships with a libmysql.dll main library and libmysql.lib
+; interface library. However, the interface library is not linkable by MinGW.
+;
+; At compile time, we generate a libmysql.a interface library with dlltool.exe.
+;
+; This def file can be re-generated using the reimp.exe or gendef.exe tools.
+;
+LIBRARY libmysql.dll
+EXPORTS
+mysql_affected_rows
+mysql_affected_rows@4
+mysql_change_user
+mysql_change_user@16
+mysql_character_set_name
+mysql_character_set_name@4
+mysql_close
+mysql_close@4
+mysql_data_seek
+mysql_data_seek@12
+mysql_debug
+mysql_debug@4
+mysql_dump_debug_info
+mysql_dump_debug_info@4
+mysql_eof
+mysql_eof@4
+mysql_errno
+mysql_errno@4
+mysql_error
+mysql_error@4
+mysql_escape_string
+mysql_escape_string@12
+mysql_fetch_field
+mysql_fetch_field@4
+mysql_fetch_field_direct
+mysql_fetch_field_direct@8
+mysql_fetch_fields
+mysql_fetch_fields@4
+mysql_fetch_lengths
+mysql_fetch_lengths@4
+mysql_fetch_row
+mysql_fetch_row@4
+mysql_field_count
+mysql_field_count@4
+mysql_field_seek
+mysql_field_seek@8
+mysql_field_tell
+mysql_field_tell@4
+mysql_free_result
+mysql_free_result@4
+mysql_get_client_info
+mysql_get_client_info@0
+mysql_get_client_version
+mysql_get_client_version@0
+mysql_get_host_info
+mysql_get_host_info@4
+mysql_get_option
+mysql_get_option@12
+mysql_get_proto_info
+mysql_get_proto_info@4
+mysql_get_server_info
+mysql_get_server_info@4
+mysql_get_server_version
+mysql_get_server_version@4
+mysql_get_ssl_cipher
+mysql_get_ssl_cipher@4
+mysql_hex_string
+mysql_hex_string@12
+mysql_info
+mysql_info@4
+mysql_init
+mysql_init@4
+mysql_insert_id
+mysql_insert_id@4
+mysql_kill
+mysql_kill@8
+mysql_library_end
+mysql_library_end@0
+mysql_library_init
+mysql_library_init@12
+mysql_list_dbs
+mysql_list_dbs@8
+mysql_list_fields
+mysql_list_fields@12
+mysql_list_processes
+mysql_list_processes@4
+mysql_list_tables
+mysql_list_tables@8
+mysql_more_results
+mysql_more_results@4
+mysql_next_result
+mysql_next_result@4
+mysql_num_fields
+mysql_num_fields@4
+mysql_num_rows
+mysql_num_rows@4
+mysql_options
+mysql_options@12
+mysql_options4
+mysql_options4@16
+mysql_ping
+mysql_ping@4
+mysql_query
+mysql_query@8
+mysql_read_query_result
+mysql_read_query_result@4
+mysql_real_connect
+mysql_real_connect@32
+mysql_real_escape_string
+mysql_real_escape_string@16
+mysql_real_query
+mysql_real_query@12
+mysql_refresh
+mysql_refresh@8
+mysql_reset_connection
+mysql_reset_connection@4
+mysql_rollback
+mysql_rollback@4
+mysql_row_seek
+mysql_row_seek@8
+mysql_row_tell
+mysql_row_tell@4
+mysql_select_db
+mysql_select_db@8
+mysql_send_query
+mysql_send_query@12
+mysql_server_end
+mysql_server_end@0
+mysql_server_init
+mysql_server_init@12
+mysql_session_track_get_first
+mysql_session_track_get_first@16
+mysql_session_track_get_next
+mysql_session_track_get_next@16
+mysql_set_character_set
+mysql_set_character_set@8
+mysql_set_local_infile_default
+mysql_set_local_infile_default@4
+mysql_set_local_infile_handler
+mysql_set_local_infile_handler@24
+mysql_set_server_option
+mysql_set_server_option@8
+mysql_shutdown
+mysql_shutdown@8
+mysql_sqlstate
+mysql_sqlstate@4
+mysql_ssl_set
+mysql_ssl_set@24
+mysql_stat
+mysql_stat@4
+mysql_stmt_affected_rows
+mysql_stmt_affected_rows@4
+mysql_stmt_attr_get
+mysql_stmt_attr_get@12
+mysql_stmt_attr_set
+mysql_stmt_attr_set@12
+mysql_stmt_bind_param
+mysql_stmt_bind_param@8
+mysql_stmt_bind_result
+mysql_stmt_bind_result@8
+mysql_stmt_close
+mysql_stmt_close@4
+mysql_stmt_data_seek
+mysql_stmt_data_seek@12
+mysql_stmt_errno
+mysql_stmt_errno@4
+mysql_stmt_error
+mysql_stmt_error@4
+mysql_stmt_execute
+mysql_stmt_execute@4
+mysql_stmt_fetch
+mysql_stmt_fetch@4
+mysql_stmt_fetch_column
+mysql_stmt_fetch_column@16
+mysql_stmt_field_count
+mysql_stmt_field_count@4
+mysql_stmt_free_result
+mysql_stmt_free_result@4
+mysql_stmt_init
+mysql_stmt_init@4
+mysql_stmt_insert_id
+mysql_stmt_insert_id@4
+mysql_stmt_next_result
+mysql_stmt_next_result@4
+mysql_stmt_num_rows
+mysql_stmt_num_rows@4
+mysql_stmt_param_count
+mysql_stmt_param_count@4
+mysql_stmt_param_metadata
+mysql_stmt_param_metadata@4
+mysql_stmt_prepare
+mysql_stmt_prepare@12
+mysql_stmt_reset
+mysql_stmt_reset@4
+mysql_stmt_result_metadata
+mysql_stmt_result_metadata@4
+mysql_stmt_row_seek
+mysql_stmt_row_seek@8
+mysql_stmt_row_tell
+mysql_stmt_row_tell@4
+mysql_stmt_send_long_data
+mysql_stmt_send_long_data@16
+mysql_stmt_sqlstate
+mysql_stmt_sqlstate@4
+mysql_stmt_store_result
+mysql_stmt_store_result@4
+mysql_store_result
+mysql_store_result@4
+mysql_thread_end
+mysql_thread_end@0
+mysql_thread_id
+mysql_thread_id@4
+mysql_thread_init
+mysql_thread_init@0
+mysql_thread_safe
+mysql_thread_safe@0
+mysql_use_result
+mysql_use_result@4
+mysql_warning_count
+mysql_warning_count@4

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to