All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
Trilogy::SyscallError::*
errors now use the standardModule#===
implementation #143Trilogy::TimeoutError
no longer inherits fromErrno::ETIMEDOUT
#143- Deprecated
Trilogy::ConnectionRefusedError
andTrilogy::ConnectionResetError
, replaced byTrilogy::SyscallError::ECONNREFUSED
andTrilogy::SyscallError::ECONNRESET
#143
- Report
EOFError: TRILOGY_CLOSED_CONNECTION
forSSL_ERROR_ZERO_RETURN
write_timeout
on connection now raisesTrilogy::TimeoutError
(previously it raisedEINPROGRESS
)- Fix memory leak on failed connections
- Fix memory leak when connecting to unix socket
TCP_NODELAY
is enabled on all TCP connections #122Trilogy::EOFError
is now raised forTRILOGY_CLOSED_CONNECTION
instead of the genericTrilogy::QueryError
#118Trilogy::SyscallError
now inheritsTrilogy::ConnectionError
#118
- Fix build with LibreSSL #73
- Fix build error on FreeBSD #82
- Fix Trilogy.new with no arguments #94
- Fix issues with OpenSSL #95 #112
- Avoid closing connections that are not connected
- Always close socket on error
- Clear error queue after close
- Clear error queue before each operation to defend against other misbehaving libraries
- Close connection if interrupted by a Ruby timeout #110
- Correctly cast time of 00:00:00 #97
- Add option to disable multi_result capability #77
- Add option to validate max_allowed_packet #84
- Add binary protocol/prepared statement support to the C library #3
- Cast port option to integer #100
- Add select_db as an alias for change_db #101
- Set error code on deadlock timeout errors #69
- Remove superfluous
multi_result
connection option #68
- Implement set_option functionality, and add #set_server_option method to the Ruby binding. #52
- Implement multi-result support on the Ruby binding; TRILOGY_CAPABILITIES_MULTI_RESULTS flag enabled by default. #57
- Add
TRILOGY_FLAGS_CAST_ALL_DECIMALS_TO_BIGDECIMALS
flag, which enforces casting to BigDecimal even for column types without decimal digits. #59 - Implement #discard to close child connections without impacting parent. #65
- Fix msec values for time columns. #61
- (BREAKING CHANGE) C API
#trilogy_build_auth_packet
accepts encoding option now. The Ruby binding for the Trilogy client can now accept an:encoding
option, which will tell the connection to use the specified encoding, and will ensure that outgoing query strings are transcoded appropriately. If no encoding is supplied, utf8mb4 is used by default. #64 - All SystemCallErrors classified as
Trilogy::Error
. #63
- Implement multi-statement support on the Ruby binding. #35
- Add
#connection_options
method to Ruby binding. #48 - Introduced a variety of more detailed error classes. #15 and #41
- Cast to Integer rather than BigDecimal for column types without decimal digits. #37
- Error codes 1044-1045, 1064, 1152-1161, 1205, and 1927 recategorized as
ConnectionError
. #15
- Add
#closed?
method to Ruby binding. #30
- Support Ruby's
memsize
callback
- Ruby: Fixed a memory leak on freed connections
2022-10-04
- Don't scramble passwords when responding to auth switch request. #21
- Allow connecting to MariaDB. #22
2022-06-06
- Verify exact length of auth_data_len
2022-03-11
- Adjust read and write timeouts after connecting. #10
- Include
affected_rows
andlast_insert_id
on the result. #17
- Re-use existing interned strings where possible. #12
- Clang 13 warnings. #13 and #14
2021-12-15
- Initial release of the Trilogy client.