Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
[0.5.0] - 2022-08-20
Added
EdgeDB.Clientmodule that is acceptable by allEdgeDBAPI.:max_concurrencyoption to start pool to control max connections count inEdgeDB.Pool.
Changed
- default pool from
DBConnection.PooltoEdgeDB.Pool. EdgeDB.Poolto be "real" lazy and dynamic: all idle connections that EdgeDB wants to drop will be disconnected from the pool, new connections will be created only on user queries depending on EdgeDB concurrency suggest as soft limit and:max_concurrencyoption as hard limit of connections count.- first parameter accepted by callbacks in
EdgeDB.transaction/3,EdgeDB.subtransaction/2andEdgeDB.subtransaction!/2fromt:DBConnection.t/0tot:EdgeDB.Client.t/0. EdgeDB.connection/0tot:EdgeDB.client/0.EdgeDB.edgedb_transaction_option/0tot:EdgeDB.Client.transaction_option/0.EdgeDB.retry_option/0tot:EdgeDB.Client.retry_option/0.EdgeDB.retry_rule/0tot:EdgeDB.Client.retry_rule/0.
Fixed
- concurrent transactions when client was unintentionally marked as borrowed for transaction instead of connection.
Removed
EdgeDB.WrappedConnectionmodule in favor ofEdgeDB.Client.
[0.4.0] - 2022-08-04
Added
- support for
EdgeDB 2.0with new binary protocol. - support for EdgeQL state via
EdgeDB.State. - new
EdgeDB.Rangetype to represent ranges fromEdgeDB 2.0. - support for multiple EdgeQL statements execution via
EdgeDB.execute/4andEdgeDB.execute!/4.
Changed
io_formatoption tooutput_format.
Fixed
- the ability to pass maps or keyword lists in a query that requires positional arguments.
[0.3.0] - 2022-05-29
Added
- maps as a valid type for query arguments.
EdgeDB.Object.to_map/1andEdgeDB.NamedTuple.to_map/1functions.- optional support for
std::datetimeEdgeDB type viaTimex.Durationstructure. - custom modules for each EdgeDB exception with the
new/2function, that will return theEdgeDB.Errorexception. - documentation for
EdgeDB.Errorfunctions that create new exceptions.
Removed
- legacy arguments encoding.
Changed
EdgeQLqueries to be lowercase.EdgeDB.Error.inheritor?/2to work with generated module names for EdgeDB exceptions instead of atoms.
[0.2.1] - 2022-05-19
Removed
- mention of
:repeatable_readoption for transaction isolation mode fromt:EdgeDB.edgedb_transaction_option/0.
Fixed
- codec name returned by codec for
std::strfromstd::uuidtostr::str. - documentation for the custom codec example, which did not have a
EdgeDB.Protocol.Codec.decode/3implementation and used the wrong protocol.
[0.2.0] - 2022-05-03
Added
EdgeDB.Object.fields/2,EdgeDB.Object.properties/2,EdgeDB.Object.links/1andEdgeDB.Object.link_properties/1functions to inspect the fields of the object.EdgeDB.Error.inheritor?/2function to check if the exception is an inheritor of another EdgeDB error.EdgeDB.Sandboxmodule for use in tests involving database modifications.EdgeDB.Poolto support dynamic resizing of the connection pool via messages from EdgeDB server.
Fixed
- creation of
EdgeDB.Objectproperties equal to an emptyEdgeDB.Set. - access to TLS certificate from connection options.
- isolation configuration by dropping
REPEATABLE READmode, because onlySERIALIZABLEis supported byEdgeDB 1.0(REPEATABLE READwas dropped inEdgeDB 1.3). - preserving the order of the values returned when working with
EdgeDB.NamedTuple(EdgeDB.NamedTuple.to_tuple/1,EdgeDB.NamedTuple.keys/1), includingEnumerableprotocol implementation.
Changed
- parsing of binary data from EdgeDB by completely reworking the protocol implementation.
- internal implementation of the
Accessbehaviour forEdgeDB.Objectto improve fields access performance.
[0.1.0] - 2022-02-10
Added
- First release.