View Source 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.
[0.8.0] - 2025-02-26
NOTE
This is the last release of this client under the name edgedb
as the product name changes to gel.
The next release of this client (0.9.0) will not add any new functionality,
but will rename all modules and references from EdgeDB to Gel.
Added
- support for Gel connection options.
- support for
Elixir v1.17. - support for
Elixir v1.18.
[0.7.0] - 2024-05-05
Added
- rendering hints for query errors from EdgeDB.
- support for EdgeDB binary protocol
2.0. - new
EdgeDB.MultiRangetype to represent multiranges fromEdgeDB 4.0. EdgeDB.Object.id/1to fetch ID from anEdgeDB.Objectif it was returned from the query.EdgeDB.ConfigMemory.new/1to create a new instance ofEdgeDB.ConfigMemory.t/0.- support for
Elixir v1.16. - support for branches.
- support for server name (SNI) passing to TLS connection.
Changed
EdgeDB.Object.t/0to beopaque.- the behavior of injecting an implicit
:idfield into objects so that this no longer happens.
Fixed
- client state handling in
EdgeDB.with_config/2/EdgeDB.without_config/2,EdgeDB.with_globals/2/EdgeDB.without_globals/2andEdgeDB.with_module_aliases/2/EdgeDB.without_module_aliases/2.
[0.6.1] - 2023-07-07
Added
- support for
Elixir v1.15andErlang/OTP 26.
Fixed
- encoding of
EdgeDB.Range.t/0values. - constructing
EdgeDB.Range.t/0fromEdgeDB.Range.new/3withnilas values. - examples in the documentation and the
Inspectimplementation ofEdgeDB.DateDuration.t/0andEdgeDB.Range.t/0.
[0.6.0] - 2023-06-22
Added
- support for
cal::date_durationEdgeDB type viaEdgeDB.DateDurationstructure. - support for EdgeDB Cloud.
- support for tuples and named tuples as query arguments.
- support for
EdgeDB 3.0. - support for
ext::pgvector::vectortype.
Changed
- implementation of
Enumerableprotocol forEdgeDB.Set. EdgeDB.StatetoEdgeDB.Client.State,EdgeDB.with_state/2toEdgeDB.with_client_state/2,:stateoption to:client_state.- license from
MITtoApache 2.0.
Fixed
- crash after updating
db_connectionto2.5. - decoding a single propery for
EdgeDB.Objectthat equals to an empty set. - not catching an
EdgeDB.Errorexception during parameters encoding, which caused throwing an exception for non-!functions. - silent error for calling
EdgeDBAPI with wrong module names.
Removed
EdgeDB.subtransaction/2,EdgeDB.subtransaction!/2functions and other mentions of subtransactions support in the client.- support for custom pool configuration.
:rawoption fromEdgeDB.query*functions as well as access toEdgeDB.QueryandEdgeDB.Result.- API for constructing an
EdgeDB.Error.
[0.5.1] - 2022-08-25
Removed
- unintentional ping log for the connection.
[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!/2fromDBConnection.t/0toEdgeDB.Client.t/0. EdgeDB.connection/0toEdgeDB.client/0.EdgeDB.edgedb_transaction_option/0toEdgeDB.Client.transaction_option/0.EdgeDB.retry_option/0toEdgeDB.Client.retry_option/0.EdgeDB.retry_rule/0toEdgeDB.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.