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.
Unreleased
[0.7.0] - 2024-05-05
Added
- rendering hints for query errors from EdgeDB.
- support for EdgeDB binary protocol
2.0
. - new
EdgeDB.MultiRange
type to represent multiranges fromEdgeDB 4.0
. EdgeDB.Object.id/1
to fetch ID from anEdgeDB.Object
if it was returned from the query.EdgeDB.ConfigMemory.new/1
to 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/0
to beopaque
.- the behavior of injecting an implicit
:id
field 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/2
andEdgeDB.with_module_aliases/2
/EdgeDB.without_module_aliases/2
.
[0.6.1] - 2023-07-07
Added
- support for
Elixir v1.15
andErlang/OTP 26
.
Fixed
- encoding of
EdgeDB.Range.t/0
values. - constructing
EdgeDB.Range.t/0
fromEdgeDB.Range.new/3
withnil
as values. - examples in the documentation and the
Inspect
implementation ofEdgeDB.DateDuration.t/0
andEdgeDB.Range.t/0
.
[0.6.0] - 2023-06-22
Added
- support for
cal::date_duration
EdgeDB type viaEdgeDB.DateDuration
structure. - support for EdgeDB Cloud.
- support for tuples and named tuples as query arguments.
- support for
EdgeDB 3.0
. - support for
ext::pgvector::vector
type.
Changed
- implementation of
Enumerable
protocol forEdgeDB.Set
. EdgeDB.State
toEdgeDB.Client.State
,EdgeDB.with_state/2
toEdgeDB.with_client_state/2
,:state
option to:client_state
.- license from
MIT
toApache 2.0
.
Fixed
- crash after updating
db_connection
to2.5
. - decoding a single propery for
EdgeDB.Object
that equals to an empty set. - not catching an
EdgeDB.Error
exception during parameters encoding, which caused throwing an exception for non-!
functions. - silent error for calling
EdgeDB
API with wrong module names.
Removed
EdgeDB.subtransaction/2
,EdgeDB.subtransaction!/2
functions and other mentions of subtransactions support in the client.- support for custom pool configuration.
:raw
option fromEdgeDB.query*
functions as well as access toEdgeDB.Query
andEdgeDB.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.Client
module that is acceptable by allEdgeDB
API.:max_concurrency
option to start pool to control max connections count inEdgeDB.Pool
.
Changed
- default pool from
DBConnection.Pool
toEdgeDB.Pool
. EdgeDB.Pool
to 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_concurrency
option as hard limit of connections count.- first parameter accepted by callbacks in
EdgeDB.transaction/3
,EdgeDB.subtransaction/2
andEdgeDB.subtransaction!/2
fromDBConnection.t/0
toEdgeDB.Client.t/0
. EdgeDB.connection/0
toEdgeDB.client/0
.EdgeDB.edgedb_transaction_option/0
toEdgeDB.Client.transaction_option/0
.EdgeDB.retry_option/0
toEdgeDB.Client.retry_option/0
.EdgeDB.retry_rule/0
toEdgeDB.Client.retry_rule/0
.
Fixed
- concurrent transactions when client was unintentionally marked as borrowed for transaction instead of connection.
Removed
EdgeDB.WrappedConnection
module in favor ofEdgeDB.Client
.
[0.4.0] - 2022-08-04
Added
- support for
EdgeDB 2.0
with new binary protocol. - support for EdgeQL state via
EdgeDB.State
. - new
EdgeDB.Range
type to represent ranges fromEdgeDB 2.0
. - support for multiple EdgeQL statements execution via
EdgeDB.execute/4
andEdgeDB.execute!/4
.
Changed
io_format
option 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/1
andEdgeDB.NamedTuple.to_map/1
functions.- optional support for
std::datetime
EdgeDB type viaTimex.Duration
structure. - custom modules for each EdgeDB exception with the
new/2
function, that will return theEdgeDB.Error
exception. - documentation for
EdgeDB.Error
functions that create new exceptions.
Removed
- legacy arguments encoding.
Changed
EdgeQL
queries to be lowercase.EdgeDB.Error.inheritor?/2
to work with generated module names for EdgeDB exceptions instead of atoms.
[0.2.1] - 2022-05-19
Removed
- mention of
:repeatable_read
option for transaction isolation mode fromt:EdgeDB.edgedb_transaction_option/0
.
Fixed
- codec name returned by codec for
std::str
fromstd::uuid
tostr::str
. - documentation for the custom codec example, which did not have a
EdgeDB.Protocol.Codec.decode/3
implementation and used the wrong protocol.
[0.2.0] - 2022-05-03
Added
EdgeDB.Object.fields/2
,EdgeDB.Object.properties/2
,EdgeDB.Object.links/1
andEdgeDB.Object.link_properties/1
functions to inspect the fields of the object.EdgeDB.Error.inheritor?/2
function to check if the exception is an inheritor of another EdgeDB error.EdgeDB.Sandbox
module for use in tests involving database modifications.EdgeDB.Pool
to support dynamic resizing of the connection pool via messages from EdgeDB server.
Fixed
- creation of
EdgeDB.Object
properties equal to an emptyEdgeDB.Set
. - access to TLS certificate from connection options.
- isolation configuration by dropping
REPEATABLE READ
mode, because onlySERIALIZABLE
is supported byEdgeDB 1.0
(REPEATABLE READ
was 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
), includingEnumerable
protocol implementation.
Changed
- parsing of binary data from EdgeDB by completely reworking the protocol implementation.
- internal implementation of the
Access
behaviour forEdgeDB.Object
to improve fields access performance.
[0.1.0] - 2022-02-10
Added
- First release.