A summary of data about the Ruby ecosystem.

Recent Releases of https://github.com/brianmario/mysql2

https://github.com/brianmario/mysql2 - 0.5.7

What's Changed

New Contributors

Full Changelog: https://github.com/brianmario/mysql2/compare/0.5.6...0.5.7

- Ruby
Published by tenderlove 5 months ago

https://github.com/brianmario/mysql2 - Release 0.5.6

What's changed

  • Support utf8mb3 charset naming for MySQL 8 and MariaDB 10.6. (#1323) @jeremy
  • Support for libmysqlclient 8.3 (#1346, #1352, #1353) @xjunior @flavorjones

- Ruby
Published by tenderlove about 2 years ago

https://github.com/brianmario/mysql2 - 0.5.5

New

  • Support for Ruby GC compaction (#1192)
  • Add --with-openssl-dir option for improved linking with OpenSSL (#1303)

Changed

  • Lock on the current Fiber rather than current Thread (#1284)
  • Improve SSL support on MySQL 5.6.36+ and MariaDB Connector/C 3.0+ (#1304, #1306)
  • Additional search paths to find MySQL libraries by Homebrew (#1278)
  • README: Improve docs for SSL/TLS (#1142, #1306)
  • CI: Upgrade RuboCop and run in its own CI step (#1259, #1268, #1295)
  • CI: Update runtime environments (#1290, #1291, #1292, #1298, #1299)

Full Changelog: https://github.com/brianmario/mysql2/compare/0.5.4...0.5.5

- Ruby
Published by sodabrew about 3 years ago

https://github.com/brianmario/mysql2 - 0.5.4 Release

What's Changed

New Contributors

Full Changelog: https://github.com/brianmario/mysql2/compare/0.5.3...0.5.4

- Ruby
Published by tenderlove almost 4 years ago

https://github.com/brianmario/mysql2 - 0.5.3

New Features

  • Expose Windows client authentication (#1018)

Bug Fixes

  • Support more MySQL encodings and warn rather than crash on unsupported encodings (#1040)

Changes

  • Precompiled mysql2 gem for Windows supports Ruby 2.2, 2.3, 2.4, 2.5, 2.6. Windows Ruby 2.0 and 2.1 are dropped.
  • Keyword arguments have to be explicitly double-splatted in Ruby 2.7+ (#1084)
  • Add Centos to CI matrix (#989, #1085)
  • Remove spec from gem (#1044)
  • Replace Win32API with Fiddle, update appveyor.yml (#1053)
  • Update README to clarify the protocol value in DATABASE_URL (#1047)
  • Improve performance to call Mysql2::Result#each and Mysql2::Result#fields (#1046)
  • Fix fragile specs due to clock skew and timeout/threads corruption (#1041)
  • README updates (#1002, #1038)

- Ruby
Published by sodabrew over 6 years ago

https://github.com/brianmario/mysql2 - 0.5.2

New Features

None

Bug Fixes

  • Bounds-check the encoding translation array from MySQL to Ruby encodings.

Changes

  • Add more encoding translations for MySQL 8 compatibility.

- Ruby
Published by sodabrew over 7 years ago

https://github.com/brianmario/mysql2 - 0.5.1

New Features

  • None

Bug Fixes

  • Fix with --with-mysql-dir (#952)
  • Prevent command out of sync errors with Prepared Statements (#956, #957, #958)

Changes

  • Specs: Use the prepared statement performance schema if available (#960)
  • README mysql2 0.5.x works with Rails 5.0.7, 5.1.6, and higher
  • README be sure to read about the known limitations of prepared statements

- Ruby
Published by sodabrew almost 8 years ago

https://github.com/brianmario/mysql2 - 0.5.0

Breaking Changes

  • Ruby 2.0 or higher required. Ruby 1.8.7 and Ruby 1.9.3 are not supported.
  • MySQL 5.5 or higher required. MySQL 5.0 and 5.1 are not supported.
  • For Rails 4.x please pin the gem to mysql2 '~> 0.4.0' to avoid the 0.5.x upgrade.
  • For Rails 5.x the next point releases will enable both mysql2 0.4.x and 0.5.x, but until the next point release you may wish to pin the mysql2 version in your Gemfile.

New Features

  • Expose mysql_set_server_option to turn multiple statements on and off (#943)
  • Accept query options on Statement#execute (#912)
  • Support connect attributes and the program_name attribute (#760)
  • Make server_status variable available (#755)

Bug Fixes

  • Fix wrong value of type YEAR on big endian environment (#921)
  • MySQL 8.0.3 Release Candidate removes MYSQL_SECURE_AUTH (#891)
  • Suppress Fixnum and Bignum warnings on Ruby 2.4 (#907)

Changes

  • Resolve warnings for my_bool vs. bool types (#916, #919)
  • Call BigDecimal(num) instead of BigDecimal.new(num) (#925, #928)
  • GitHub is HTTPS by default (#922)
  • Misc Cleanups (#918)
  • More specific exception classes (#260, #404, #870, 911)
  • Update RuboCop to 0.50.x (#752)
  • Prefix more C functions with rb_mysql_ (#910)
  • Fix compat with RubyInstaller-2.4 on Windows (#875)

- Ruby
Published by sodabrew almost 8 years ago

https://github.com/brianmario/mysql2 - 0.4.10

New Features

  • Make sure ssl is enabled if only :sslverify is set (#889)

Fixes

  • Cast the BIT(1) type when :cast_booleans is true for prepared statements (#883, #903)
  • Compilation failures against MariaDB Connector/C 3.0.2 (#878, #888, #895, #900, #901, #902)
  • MYSQL_SECURE_AUTH has been removed in MySQL 8.0.3 RC (#892, #898)

Changes

  • Better specs (#904)
  • Extended keyword for the explain statement has been removed (#894)

- Ruby
Published by sodabrew about 8 years ago

https://github.com/brianmario/mysql2 - 0.4.9

Bug Fixes

  • Fixed enable_cleartext_plugin mode (#874)
  • Prepared statements should handle booleans properly (#871)

- Ruby
Published by sodabrew over 8 years ago

https://github.com/brianmario/mysql2 - 0.4.8

Bug Fixes

Add ifdefs for MySQL 5.1 without MYSQL_ENABLE_CLEARTEXT_PLUGIN

- Ruby
Published by sodabrew over 8 years ago

https://github.com/brianmario/mysql2 - 0.4.7

New Features

  • Add Mysql2::Client#closed? (#796)
  • Adding support for MYSQL_ENABLE_CLEARTEXT_PLUGIN flag (#845)

Bugfixes

  • Avoid invalidating re-assigned socket fd by fixing connected check (#847)
  • Fix use after free of client field when closing with reconnect option (#846)
  • Fix segfault for Mysql2::Statement#fields on non-SELECT queries (#860)

Changes

  • Support for MariaDB 10.2 (#857 and others)
  • Close several unclosed clients in tests (#848)
  • Docs: Fix link in readme (#854)
  • Fix incorrect use of word "deprecated" (#855)
  • Fix leaky test that caused a re-assigned socket to be closed on GC. (#853)
  • 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)

- Ruby
Published by sodabrew over 8 years ago

https://github.com/brianmario/mysql2 - 0.4.6

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)

- Ruby
Published by sodabrew almost 9 years ago

https://github.com/brianmario/mysql2 - 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

- Ruby
Published by sodabrew over 9 years ago

https://github.com/brianmario/mysql2 - 0.3.21

New Features

None

Bugfixes

  • Fix segfault when :cache_rows => false

Changes

  • Add Ruby 2.3.1 to the Travis CI matrix
  • Use Thread.handle_interrupt to protect Client#query against Timeout interrupts

- Ruby
Published by sodabrew almost 10 years ago

https://github.com/brianmario/mysql2 - 0.4.4

New Features

  • None

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

- Ruby
Published by sodabrew almost 10 years ago

https://github.com/brianmario/mysql2 - 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.

- Ruby
Published by sodabrew about 10 years ago

https://github.com/brianmario/mysql2 - 0.4.2

New Features

  • Add Array and String parsing to the Mysql2::Client.new(:flags => ...) parameter to make it easier to pass flags from database.yml by name rather than magic numbers.
  • Add compile-time configure flag --with-sanitize[=address,cfi,integer,memory,thread,undefined] to enable Clang / GCC sanitizers.

Bug Fixes

  • Fix memory leak in Mysql2::Client#close
  • Don't enable Clang sanitizers on end-user CI systems where the mysql2 gem is not the thing under test.

Changes

  • Update Travis tests for MariaDB 5.5, 10.0, 10.1, and MySQL 5.7 GA.

- Ruby
Published by sodabrew about 10 years ago

https://github.com/brianmario/mysql2 - 0.4.1

New Features

  • Add methods Mysql2::Statement#last_id, Mysql2::Statement#affected_rows, Mysql2::Statement#close

Bug Fixes

  • Only check compile-time libmysql version on Win32 platform.
  • Also protect Mysql2::Statement#execute from Timeout.
  • Handle different versions of TimeoutError vs. Timeout::ExitException.

Changes

  • Send a COM_QUIT and shutdown() the socket for explicit Mysql2::Client#close calls.
  • New method for raising Mysql2::Error with error_number and sql_state arguments.
  • More cleanups for RuboCopy. Enforce RuboCop compliance on Travis.
  • Use pre-generated SSL certificates rather than generating on the fly on Travis (tests run faster by up to 1 minute).
  • Updates for RSpec 3.x preferred test style.
  • Attempt to run Clang sanitizers on Travis CI.
  • Move Mysql2::Client @@default_query_options into a class method.

- Ruby
Published by sodabrew about 10 years ago

https://github.com/brianmario/mysql2 - 0.4.0

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

- Ruby
Published by sodabrew over 10 years ago

https://github.com/brianmario/mysql2 - 0.3.20

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

- Ruby
Published by sodabrew over 10 years ago

https://github.com/brianmario/mysql2 - 0.3.19

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

- Ruby
Published by sodabrew over 10 years ago

https://github.com/brianmario/mysql2 - 0.3.17

New Features

  • Microseconds are now supported in a TIME field (0.3.12 added support for msec in DATETIME).

Bugfixes

  • Use /dev/null in invalidate_fd to avoid infinite loop in OpenSSL.
  • Change sql_state to attr_reader to avoid Ruby warning.

Changes

  • Added call to mysql_library_init during initialization of the gem for thread safety.
  • State the name of the field that contains a bad datetime value in the exception.
  • Travis CI updates including:
    • SSL tests
    • Ruby 2.1.x
    • Newer Rubinius 2.x
    • OS X with Ruby 2.0
    • MySQL 5.7 with Ruby 2.0

- Ruby
Published by sodabrew about 11 years ago

https://github.com/brianmario/mysql2 - 0.3.18

New Features

  • Windows builds are restored following an extensive dive into DLL and compiler issues.
  • MySQL Connector/C 6.1.5 is now vendored into the binary gems for Windows.
  • Optional environment variable RUBY_MYSQL2_LIBMYSQL_DLL to find libmysql.dll on Windows.

Bugfixes

  • Fix milliseconds were not converted from results into Ruby Time objects.
  • Fix error when you close EM::Client with no query running.

Changes

  • Update and rename MIT-LICENSE to LICENSE
  • Update Travis unit tests for OS X
  • Add Ruby 2.2 to Travis platforms
  • Speed up certain unit tests with a MEMORY table
  • More search paths are added to find MySQL installed by MacPorts and Homebrew on OS X.

- Ruby
Published by sodabrew about 11 years ago

https://github.com/brianmario/mysql2 - 0.3.16

New Features

  • New connection argument :init_command sets a query string to run at connect/reconnect.

Bugfixes

  • Check that dir_config returns at least one valid directory at compile time.

Changes

  • Enforce connection retry time limits across interrupts (e.g. by signals, etc.)
  • Prevent MySQL from calling shutdown() on shared sockets.
  • MariaDB 5.5 and 10.0 added to the test suite. No changes were required to support MariaDB, but we're actively testing for compatibility now.
  • Update specs for Ruby 2.1 Timeout behavior.

- Ruby
Published by sodabrew almost 12 years ago

https://github.com/brianmario/mysql2 - 0.2.19

This release contains all of the same code and therefore release notes as 0.3.12.

The following changes are specific to 0.2.19:

Changes

Bug fixes

  • The ActiveRecord adapter now symbolizes the keys from the connection options hash as early as possible to ensure hash lookups on that hash will work before the Mysql2::Client object is created.
  • Make sure a default LIMIT is set when an OFFSET is set.
  • A couple of small fixes related to newer ActiveRecord versions since the last mysql2 release

View the diff here

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.3.12

New features

  • We're compatible with Ruby 2.0.0 now!
  • A new :streaming option can be passed while issuing a query which will leave the results on the server side and stream them to the client a row-at-a-time. This is great for really large datasets.
  • Mysql2::Client#abandon_results! has been introduced which lets you throw away result sets in an efficient manner.
  • Mysql2::Client#select_db has been introduced allowing you to select which database a connection is using without needing to issue a query.
  • Mysql2::Client#more_results? has been introduced which is used to check if there are more results to be read when CLIENT_MULTI_STATEMENTS is enabled.
  • Mysql2::Client#next_result has been introduced which is used to step the result cursor forward by one when CLIENT_MULTI_STATEMENTS is enabled.
  • Mysql2::Client#store_result has been introduced which allows you to read the next result off the wire when CLIENT_MULTI_STATEMENTS is enabled.
  • Mysql2::Client#reconnect= has been introduced which allows you to change the reconnect behavior of libmysql while a connection is active.
  • Mysql2::Client#warning_count has been introduced which returns the warning count from the most recent query.
  • Mysql2::Client#query_info_string has been introduced which returns an informational string returned by the server about the most recent query.
  • The read_timeout connection option has been introduced allowing you to set the read timeout of the connection in seconds.
  • The write_timeout connection option has been introduced allowing you to set the write timeout of the connection in seconds.
  • The local_infile connection option has been introduced which allows you to enable LOCAL INFILE support.
  • BIT field values can be used as boolean fields when cast_bool is enabled.
  • We now respect fractional seconds in TIMESTAMP and DATETIME fields (this was introduced in Mysql 5.6.4).

Bug Fixes

  • Fix a really long-standing double-free bug related to a Mysql2::Client being freed before a Mysql2::Result that was generated from it. We now do our own refcounting in C as well as a Ruby reference to a Mysql2::Client from it's Mysql2::Result's.
  • Fix a compile bug when using the mysql-connector-c related to version compatibility checks in mysql2
  • A more explicit error is raised when a single connection is attempted to be shared across threads
  • We're more protected against GC-related bugs when compiler optimizations may keep a Ruby object pointer from being visible during GC runs.
  • Fix an integer overflow bug with the CLIENT_ constant values
  • Compiling the gem should be a little more robust. Some changes were made to extconf to try and make sure we can find libmysql when linking.
  • Make sure we read values from the various TIME/DATE field types as unsigned integers.
  • Mysql2::Client::EM shouldn't swallow exceptions raised in the deferrable callbacks.
  • Passing options to Mysql2::Client#query should no longer persist on the Mysql2::Client object itself but instead only apply to the Mysql2::Result object created by the query as intended.
  • Reading Mysql2::Client#affected_rows or Mysql2::Client#last_id after a result has been freed should no longer return garbage.

Optimizations

  • Push mysql<->ruby encoding mapping table down into C for a nice speedup
  • Use a faster Hash#dup on 1.8.7 when cascading the options hash through Mysql2's objects
  • We use rb_intern3 if it's available to create symbol keys when symbolize_keys is enabled to skip creating an intermediary Ruby String.

View the diff here

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.3.11

  • change mysql error detection strategy from using mysql_field_count to the more explicit mysql_errno
  • bugfix to avoid race condition with active connections that error out
  • revert back to using xmalloc/xfree for allocations
  • avoid potentially unsafe Ruby C API usage w/o GVL
  • reacquire GVL before retrying on EINTR on connect

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.3.8

  • remove fiber support from mysql2, the code has moved to the
    em-synchrony gem.
  • use rb_wait_for_single_fd() if available
  • fixed a bug with inheriting query options
  • remove ext/ from the default loadpath
  • fix build issues on OSX with Xcode 4.2 (gcc-llvm compiler)

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.3.7

  • ensure symbolized column names support encodings in 1.9

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.3.6

  • fix bug in Time/DateTime range detection
  • (win32) fix bug where the Mysql2::Client object wasn't cleaned up properly if interrupted during a query
  • add Mysql2::Result#count (aliased as size) to get the row count for the dataset
    this can be especially helpful if you want to get the number of rows without having to inflate
    the entire dataset into ruby (since this happens lazily)

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.3.5

  • bug fix for Time/DateTime usage depending on 32/64bit Ruby

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.3.4

  • fix a long standing bug where a signal would interrupt rb_thread_select and put the connection in a permanently broken state
  • turn on casting in the ActiveRecord again, users can disable it if they need to for performance reasons

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.3.3

  • disable async support, and access to the underlying file descriptor under Windows. It's never worked reliably and ruby-core has a lot of work to do in order to make it possible.
  • added support for turning eager-casting off. This is especially useful in ORMs that will lazily cast values upon access.
  • added a warning if a 0.2.x release is being used with ActiveRecord 3.1 since both the 0.2.x releases and AR 3.1 have mysql2 adapters, we want you to use the one in AR 3.1
  • added Mysql2::Client.escape (class-level method)
  • disabled eager-casting in the bundled ActiveRecord adapter (for Rails 3.0 or less)

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.3.2

  • Fix typo in initialization for older ActiveRecord versions

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.3.1

  • Fix typo in initialization for older ActiveRecord versions

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.3.0

  • switch to MySQL Connector/C for win32 builds
  • win32 bugfixes
  • BREAKING CHANGE: the ActiveRecord adapter has been pulled into Rails 3.1 and is no longer part of the gem
  • added Mysql2::Client.escape (class-level) for raw one-off non-encoding-aware escaping

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.2.18

  • change mysql error detection strategy from using mysql_field_count to the more explicit mysql_errno
  • bugfix to avoid race condition with active connections that error out
  • revert back to using xmalloc/xfree for allocations
  • avoid potentially unsafe Ruby C API usage w/o GVL
  • reacquire GVL before retrying on EINTR on connect

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.2.14

  • use rb_wait_for_single_fd() if available
  • fixed a bug with inheriting query options
  • remove ext/ from the default loadpath
  • fix build issues on OSX with Xcode 4.2 (gcc-llvm compiler)

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.2.13

  • fix stupid bug around symbol encoding support (thanks @coderrr!)

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.2.12

  • ensure symbolized column names support encodings in 1.9
  • plugging sql vulnerability in mysql2 adapter

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.2.11

  • fix bug in Time/DateTime range detection
  • (win32) fix bug where the Mysql2::Client object wasn't cleaned up properly if interrupted during a query
  • add Mysql2::Result#count (aliased as size) to get the row count for the dataset
    this can be especially helpful if you want to get the number of rows without having to inflate
    the entire dataset into ruby (since this happens lazily)

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.2.10

  • bug fix for Time/DateTime usage depending on 32/64bit Ruby

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.2.9

  • fix a long standing bug where a signal would interrupt rb_thread_select and put the connection in a permanently broken state
  • turn on casting in the ActiveRecord again, users can disable it if they need to for performance reasons

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.2.8

  • disable async support, and access to the underlying file descriptor under Windows. It's never worked reliably and ruby-core has a lot of work to do in order to make it possible.
  • added support for turning eager-casting off. This is especially useful in ORMs that will lazily cast values upon access.
  • added a warning if a 0.2.x release is being used with ActiveRecord 3.1 since both the 0.2.x releases and AR 3.1 have mysql2 adapters, we want you to use the one in AR 3.1
  • added Mysql2::Client.escape (class-level method)
  • disabled eager-casting in the bundled ActiveRecord adapter (for Rails 3.0 or less)

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.2.7

  • various fixes for em_mysql2 and fiber usage
  • use our own Mysql2IndexDefinition class for better compatibility across ActiveRecord versions
  • ensure the query is a string earlier in the Mysql2::Client#query codepath for 1.9
  • only set binary ruby encoding on fields that have a binary flag and encoding set
  • a few various optimizations
  • add support for :read_timeout to be set on a connection
  • Fix to install with MariDB on Windows
  • add fibered em connection without activerecord
  • fix some 1.9.3 compilation warnings
  • add LD_RUN_PATH when using hard coded mysql paths - this should help users with MySQL installed in non-standard locations
  • for windows support, duplicate the socket from libmysql and create a temporary CRT fd
  • fix for handling years before 1970 on Windows
  • fixes to the Fiber adapter
  • set wait_timeout maximum on Windows to 2147483
  • update supported range for Time objects
  • upon being required, make sure the libmysql we're using is the one we were built against
  • add Mysql2::Client#thread_id
  • add Mysql2::Client#ping
  • switch connection check in AR adapter to use Mysql2::Client#ping for efficiency
  • prefer linking against thread-safe version of libmysqlclient
  • define RSTRING_NOT_MODIFIED for an awesome rbx speed boost
  • expose Mysql2::Client#encoding in 1.9, make sure we set the error message and sqlstate encodings accordingly
  • do not segfault when raising for invalid charset (found in 1.9.3dev)

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.2.6

  • version bump since the 0.2.5 win32 binary gems were broken

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.2.5

  • fixes for easier Win32 binary gem deployment for targeting 1.8 and 1.9 in the same gem
  • refactor of connection checks and management to avoid race conditions with the GC/threading to prevent the unexpected loss of connections
  • update the default flags during connection
  • add support for setting wait_timeout on AR adapter
  • upgrade to rspec2
  • bugfix for an edge case where the GC would clean up a Mysql2::Client object before the underlying MYSQL pointer had been initialized
  • fix to CFLAGS to allow compilation on SPARC with sunstudio compiler - Anko painting anko.com+github@gmail.com

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.2.4

  • a few patches for win32 support from Luis Lavena - thanks man!
  • bugfix from Eric Wong to avoid a potential stack overflow during Mysql2::Client#escape
  • added the ability to turn internal row caching on/off via the :cache_rows => true/false option
  • a couple of small patches for rbx compatibility
  • set IndexDefinition#length in AR adapter - Kouhei Yanagita yanagi@shakenbu.org
  • fix a long-standing data corruption bug - thank you thank you thank you to @joedamato (http://github.com/ice799)
  • bugfix from calling mysql_close on a closed/freed connection surfaced by the above fix

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.2.3

  • connection flags can now be passed to the constructor via the :flags key
  • switch AR adapter connection over to use FOUND_ROWS option
  • patch to ensure we use DateTime objects in place of Time for timestamps that are out of the supported range on 32bit platforms < 1.9.2

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.2.2

  • Change how AR adapter would send initial commands upon connecting
    • we can make multiple session variable assignments in a single query
  • fix signal handling when waiting on queries
  • retry connect if interrupted by signals

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.2.1

  • bring mysql2 ActiveRecord adapter back into gem

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.2.0

  • 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 #31)
  • 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

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.1.3

  • added an EventMachine Deferrable API
  • added an ActiveRecord connection adapter
    • should be compatible with 2.3.5 and 3.0 (including Arel)

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.1.5

  • quite a few patches from Eric Wong related to thread-safety, non-blocking I/O and general cleanup
    • wrap mysql_real_connect with rb_thread_blocking_region
    • release GVL for possibly blocking mysql_* library calls
    • [cleanup] quiet down warnings
    • [cleanup] make all C symbols static
    • add Mysql2::Client#close method
    • correctly free the wrapped result in case of EOF
    • Fix memory leak from the result wrapper struct itself
    • make Mysql2::Client destructor safely non-blocking
  • bug fixes for ActiveRecord adapter
    • added casting for default values since they all come back from Mysql as strings (!?!)
    • missing constant was added
    • fixed a typo in the show_variable method
  • switched over sscanf for date/time parsing in C
  • made some specs a little finer-grained
  • initial Sequel adapter added
  • updated query benchmarks to reflect the difference between casting in C and in Ruby

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.1.9

  • Support async ActiveRecord access with fibers and EventMachine (@mperham)
  • string encoding support for 1.9, respecting Encoding.default_internal
  • added support for rake-compiler (@tenderlove)
  • bugfixes for ActiveRecord driver
    • one minor bugfix for TimeZone support
    • fix the select_rows method to return what it should according to the docs (@r-stu31)
  • Mysql2::Client#fields method added - returns the array of field names from a resultset, as strings
  • Sequel adapter
    • bugfix regarding sybolized field names (Eric Wong)
    • fix query logging in Sequel adapter
  • Lots of nice code cleanup (@tenderlove)
    • Mysql2::Error definition moved to pure-Ruby
    • Mysql2::client#initialize definition moved to pure-Ruby
    • Mysql2::Result partially moved to pure-Ruby

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.1.8

  • fixes for AR adapter for timezone juggling
  • fixes to be able to run benchmarks and specs under 1.9.2

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.1.7

  • fix a bug when using the disconnect! method on a closed connection in the AR driver

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.1.6

  • more fixes to the AR adapter related to casting
  • add missing index creation override method to AR adapter
  • added sql_state and error_number methods to the Mysql2::Error exception class

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.1.4

  • optimization: implemented a local cache for rows that are lazily created in ruby during iteration. The MySQL C result is freed as soon as all the results have been cached
  • optimization: implemented a local cache for field names so every row reuses the same objects as field names/keys
  • refactor the Mysql2 connection adapter for ActiveRecord to not extend the Mysql adapter - now being a free-standing connection adapter

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.1.1

  • added affected_rows method (mysql_affected_rows)
  • added last_id method (last_insert_id)
  • enable reconnect option by default
  • added initial async query support
  • updated extconf (thanks to the mysqlplus project) for easier gem building

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - 0.1.2

  • fix a bug (copy/paste fail) around checking for empty TIME values and returning nil (thanks @marius)

- Ruby
Published by brianmario over 12 years ago

https://github.com/brianmario/mysql2 - Initial release

- Ruby
Published by brianmario over 12 years ago