0.4.7
* Adding support for MYSQL_ENABLE_CLEARTEXT_PLUGIN flag (#845)
* Avoid invalidating re-assigned socket fd by fixing connected check (#847)
* Wait for close to be processed by server in test for Threads_connected (#850)
* Fix flaky test that used Process.wait without specifying a pid (#849)
* Add a Mysql2::Client#closed? method (#796)
* Fix use after free of client field when closing with reconnect option (#846)
* Fix leaky test that caused a re-assigned socket to be closed on GC. (#853)
* Close several unclosed clients in tests (#848)
* Fix spec that expected Client#socket on all platforms, it's not available on
WIndows
* Docs: Fix link in readme (#854)
* English grammar: Fix incorrect use of word "deprecated" (#855)
* Minimal required changes to make it work for mariadb 10.2 (#857)
* Fix segfault for Mysql2::Statement#fields on non-SELECT queries
* Fix for name change of struct NET.vio to .pvio in MariaDB Connector/C 3.x.
* Fix for MariaDB 10.2 which does not define CLIENT_LONG_PASSWORD
* Add README section to discuss the special meaning of localhost
* Move the section for Multple Result Sets
* Update MySQL Connector/C version for Windows
* Change the quoting for unzipping MySQL Connector/C for Windows
0.4.8
* Add ifdefs for MySQL 5.1 without MYSQL_ENABLE_CLEARTEXT_PLUGIN
0.4.6 2017/5/4
New Features
None.
Bugfixes
* Mysql2::Error: This connection is still waiting for a result, try again once
you have the result (#772)
* Handle being terminated while reading query result (#811 )
* Fix segfault on SIGINT race condition (#816, #813)
* Better error messages when the connection options have errors (#831)
Changes
* Use bool instead of my_bool which has been removed since MySQL 8.0.1 (#840,
#838)
* Reminder for Mac users to install xcode-select (#832)
* Update Travis CI and AppVeyor matrix (#820, #819, #812)
* Update Travis CI for MySQL 8.0 tests (#818, #817)
0.4.5
New Features
* Add new connection argument :ssl_mode to Mysql2::Client#new
* Prepared statements now support DateTime arguments
Bugfixes
* Fix segfault when wrapper->result is used after it is freed
* Raise an exception but don't crash on non-string encoding argument
* Raise an exception but don't crash on nil argument to Mysql2::Client#new
* Avoid RangeError on integers larger than LONG_LONG
* Fix a BigDecimal value binding in Prepared Statements
* Avoid type error when using connect_timeout, read_timeout and
write_timeout in a DATABASE_URL env variable
Changes
* Travis CI matrix now includes MySQL 8.0
* Travis CI matrix defaults to MySQL 5.6
* AppVeyor CI matrix switched to MySQL 5.7
* Fix test that implicitly creates a passwordless user
* Use RSpec expect output instead of StringIO
* Move macro REQUIRE_CONNECTED to client.c
* Add a note about casting boolean columns
* Suppress rubocop's invalid UTF-8 literal warning
Bugfixes
• Fix segv when num of rows is zero
• Fix failed to allocate memory for an empty result set
• Fix :cache_rows => false on prepared statements
• Fix results buffer allocation fails with prepared statements
Changes
• Allow repeated each with :cache_rows => false
• Fix some tests for non-default creds
• Use the Travis Trusty image for Travis CI
0.4.3
New Features
* Add method Client#ssl_cipher to expose mysql_get_ssl_cipher
* Add method Result#free to immediately free a result set
* Add connection flag automatic_close: true/false to determine whether to
work around connections being closed by garbage collection in a child
after a fork. Default is true, which restores behavior prior to 0.3.16.
Bugfixes
* Fix to hold the GVL between mysql_stmt_execute and mysql_stmt_store_result
to prevent commands hitting the wire out of sync (e.g. if a GC run occurs
in the middle)
* Fix BigDecimal arguments to Prepared Statements were ignored
* Fix rake re-definition warning
Changes
* Add Ruby 2.3 to the Travis CI matrix
* Allow nil for timeouts instead of casting to 0 when creating a Client
instance
* Add connection flag automatic_close: true/false to determine whether to
work around connections being closed by garbage collection in a child
after a fork. Default is true, which restores behavior prior to 0.3.16.
* Free the MYSQL client handle after mysql_close to avoid a memory leak.
* Avoid crashing when Statement#close is called before a Result is
garbage collected.
Problems found with existing distfiles:
distfiles/D6.data.ros.gz
distfiles/cstore0.2.tar.gz
distfiles/data4.tar.gz
distfiles/sphinx-2.2.7-release.tar.gz
No changes made to the cstore or mariadb55-client distinfo files.
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
0.4.1
0.4.0
@sodabrew sodabrew released this 26 days ago · 54 commits to master since this
release
New Features
* Support for Prepared Statements!
* Add connection option :sslverify
* Use mariadb_config for MariaDB builds
Bugfixes
* Fix Mysql2::Result#count always returns 0 when using stored procedures and
MULTI_STATEMENTS
Changes
* Prevent Timeout::timeout from interrupting query execution
* Use Ruby's String#encode to remove unrecognized characters from error messages
* Convert specs to RSpec 3 expect sytnax
* Refactored the Travis CI test scripts
* Misc cleanups with Rubocop
* Stricter CFLAGS
0.3.20
@sodabrew sodabrew released this on 25 Aug · 205 commits to master since this
release
Bugfixes
* Check if O_CLOEXEC is defined before using it in open()
* Fix an infinite loop while searching for libmysqlclient when mysql_config is
not found
Changes
* Call RakeCompilerDock.sh twice, once for 32-bit and once for 64-bit, when
building Windows binary gems
0.3.19
@sodabrew sodabrew released this on 30 Jul · 205 commits to master since this
release
New Features
* Mysql2::Client#info class method for easier debugging, and both the class
and instance method return US_ASCII output rather than using the connection
encoding.
* When streaming results, continue result.count across calls to result.each
Bugfixes
* Search for mariadb_config on compile
* Update to Connector/C 6.1.6 in the Windows builds
* Fix Mysql2::Client#escape to set the encoding even if the string was not
modified
* Fix LICENSE filename in gem file list
* Make the result.count return type consistent and match the source type
Changes
* Rename macro GetMysql2Result to GET_RESULT
* Convert StringValuePtr to either RSTRING_PTR or StringValueCStr
* Fix unused variable warning on Windows in rb_mysql_client_socket
* Add Ruby 2.2 to the AppVeyor matrix
* Test default client flag equality instead of bitwise truthiness
* Add rake-compiler-dock for building Windows binary gems
* Friendly ext build error <3
* Process :stream option in rb_mysql_result_to_obj once instead of
rb_mysql_result_each for each call to each
* Tests for streaming and stored procedures with multiple result sets
Changes are not available. Frmo commit log,
* Fix msec is not passed when calling db_timezone by rb_funcall().
* match callbacks_run inside event loop.
Other changes are Windows and cross build improvements.x
Mysql2
Mysql2 is a modern, simple and very fast Mysql library for Ruby - binding to
libmysql.
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 API's available. This one is
not.
It also forces the use of UTF-8 (or binary) for the connection (and all
strings in 1.9, unless Encoding.default_internal is set then it'll convert
from UTF-8 to that encoding) and uses encoding-aware MySQL API calls where it
can.