Releases: amphp/mysql
3.0.0
Stable release compatible with AMPHP v3 and fibers! 🎉
As with other libraries compatible with AMPHP v3, most cases of parameters or returns of Promise<ResolutionType>
have been replaced with ResolutionType
.
- Classes and interfaces now are prefixed with
Mysql
to avoid collisions with similar names from other libraries. - Marked most classes as internal, leaving only interfaces and concrete implementations required to use the API or create a custom connector.
MysqlTransaction
now extendsMysqlLink
instead ofMysqlExecutor
to support nested transactions.MysqlDataType
is now an enum of MySQL data type codes and methods to decode data based on type.- Result set field data is now available from
MysqlResult::getColumnDefinitions()
which returns an array ofMysqlColumnDefinition
objects corresponding to the result set rows. - The second param of
MysqlStatement::bind()
now requires a string. Binding only makes sense with long strings anyway. MysqlConnection
is now an interface extendingSqlConnection
, withSocketMysqlConnection
being the implementation.- Removed
MysqlConnector
since the interface was replaced by template types onSqlConnector
, i.e.SqlConnector<MysqlConfig, MysqlConnection>
3.0.0 Beta 9
What's Changed
- Fixed support for binding to JSON columns
- Fixed connecting with TLS.
- Add support for sql_mode and fix set charset by @ruifil in #128
New Contributors
Full Changelog: v3.0.0-beta.8...v3.0.0-beta.9
3.0.0 Beta 8
What's Changed
- Compatibility with
amphp/sql-common@v2.0.0-beta.9
. - Forbid cloning and serialization of most class instances.
Full Changelog: v3.0.0-beta.7...v3.0.0-beta.8
3.0.0 Beta 7
What's Changed
Nested transactions have been refactored to be created simply with MysqlTransaction::beginTransaction()
instead of needing to wrap a MysqlTransaction
into a MysqlNestableTransaction
. If you did not use savepoints or nested transactions, you likely will be able to upgrade to this version without any code changes.
- Updated transactions for
amphp/sql@v2.0.0-beta.6
andamphp/sql-common@v2.0.0-beta.7
. RemovedMysqlNestableTransaction
. MysqlConnection
interface now extends the base interfaceConnection
fromamphp/sql
.- Added
MysqlEncodedValue
, replacingMysqlDataType::encodeValue()
. - Renamed
SocketMysqlConnection::initialize()
toconnect()
. The first parameter now accepts an instance ofSocketConnector
instead of aSocket
. MysqlColumnDefinition
now defines a set of getter methods instead of using public properties.
Full Changelog: v3.0.0-beta.6...v3.0.0-beta.7
3.0.0 Beta 6
- Added
MysqlNestableTransaction
which may be optionally used to create aMysqlLink
from aMysqlTransaction
object. Nested transactions are implemented using savepoints.
3.0.0 Beta 5
- Compatibility with v2.0 of
amphp/socket
3.0.0 Beta 4
- Compatibility with
Result::fetchRow()
added inamphp/sql@2.0.0-beta.3
- Added support for
BackedEnum
instances in statement parameters - Added
MysqlResult::getParameterDefintions()
which returns a list ofMysqlColumnDefinition
objects with metadata about each result set column. - Requesting the next result set before consuming the entire current result set will now throw an
Error
- The second param of
MysqlStatement::bind()
now requires a string. Binding only makes sense with long strings anyway. - Refactored binary data parsing to improve performance by reducing the number of calls to
substr()
. - Removed
MysqlConnector
since the interface was replaced by template types onSqlConnector
, i.e.SqlConnector<MysqlConfig, MysqlConnection>
- Fixed reaching connection limit results in protocol version exception (#123)
3.0.0 Beta 3
- Refactored internal result set data structures and fixed connection exceptions not being forwarded to pending results.
3.0.0 Beta 2
- Fixed
DATETIME
,TIMESTAMP
,DATE
, andTIME
columns not being decoded correctly (#120)
3.0.0 Beta 1
Initial release compatible with AMPHP v3.
As with other libraries compatible with AMPHP v3, most cases of parameters or returns of Promise<ResolutionType>
have been replaced with ResolutionType
.
- Marked most classes as internal, leaving only interfaces and concrete implementations required to use the API or create a custom connector.
- Added
Mysql
as a prefix to interfaces and classes - Renamed
ConnectionConfig
toMysqlConfig
MysqlDataType
(formerlyDataType
) is now an enum- Combined
ResultSet
andCommandResult
into a single interface,MysqlResult
- Added
MysqlConnector
interface, renamedCancellableConnector
toSocketMysqlConnector
Result::getColumnDefinitions()
returns a list ofMysqlColumnDefinition
objects instead of a list of associative arrays.- Removed
TransactionError
, using the base class inamphp/sql
instead