Skip to content

Releases: edgedb/edgedb-elixir

v0.7.0

05 May 05:10
3731ed0
Compare
Choose a tag to compare

Added

  • rendering hints for query errors from EdgeDB.
  • support for EdgeDB binary protocol 2.0.
  • new EdgeDB.MultiRange type to represent multiranges from EdgeDB 4.0.
  • EdgeDB.Object.id/1 to fetch ID from an EdgeDB.Object if it was returned from the query.
  • EdgeDB.ConfigMemory.new/1 to create a new instance of t:EdgeDB.ConfigMemory.t/0.
  • support for Elixir v1.16.
  • support for branches.
  • support for server name (SNI) passing to TLS connection.

Changed

  • t:EdgeDB.Object.t/0 to be opaque.
  • 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 and
    EdgeDB.with_module_aliases/2/EdgeDB.without_module_aliases/2.

v0.6.1

07 Jul 22:58
b5f5028
Compare
Choose a tag to compare

Added

  • support for Elixir v1.15 and Erlang/OTP 26.

Fixed

  • encoding of t:EdgeDB.Range.t/0 values.
  • constructing t:EdgeDB.Range.t/0 from EdgeDB.Range.new/3 with nil as values.
  • examples in the documentation and the Inspect implementation of
    t:EdgeDB.DateDuration.t/0 and t:EdgeDB.Range.t/0.

v0.6.0

22 Jun 16:34
ff3114c
Compare
Choose a tag to compare

Added

  • support for cal::date_duration EdgeDB type via EdgeDB.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 for EdgeDB.Set.
  • EdgeDB.State to EdgeDB.Client.State, EdgeDB.with_state/2 to
    EdgeDB.with_client_state/2, :state option to :client_state.
  • license from MIT to Apache 2.0.

Fixed

  • crash after updating db_connection to 2.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 from EdgeDB.query* functions as well as access to EdgeDB.Query
    and EdgeDB.Result.
  • API for constructing an EdgeDB.Error.

v0.5.1

25 Aug 17:01
0961e2d
Compare
Choose a tag to compare

Removed

  • unintentional ping log for the connection.

v0.5.0

20 Aug 18:47
9f03b94
Compare
Choose a tag to compare

Added

  • EdgeDB.Client module that is acceptable by all EdgeDB API.
  • :max_concurrency option to start pool to control max connections count in EdgeDB.Pool.

Changed

  • default pool from DBConnection.Pool to EdgeDB.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
    and EdgeDB.subtransaction!/2 from t:DBConnection.t/0 to t:EdgeDB.Client.t/0.
  • EdgeDB.connection/0 to t:EdgeDB.client/0.
  • EdgeDB.edgedb_transaction_option/0 to t:EdgeDB.Client.transaction_option/0.
  • EdgeDB.retry_option/0 to t:EdgeDB.Client.retry_option/0.
  • EdgeDB.retry_rule/0 to t:EdgeDB.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 of EdgeDB.Client.

v0.4.0

04 Aug 17:44
7d2117e
Compare
Choose a tag to compare

Added

  • support for EdgeDB 2.0 with new binary protocol.
  • support for EdgeQL state via EdgeDB.State.
  • new EdgeDB.Range type to represent ranges from EdgeDB 2.0.
  • support for multiple EdgeQL statements execution via EdgeDB.execute/4 and EdgeDB.execute!/4.

Changed

  • io_format option to output_format.

Fixed

  • the ability to pass maps or keyword lists in a query that requires positional arguments.

v0.3.0

29 May 07:43
5e8e0cb
Compare
Choose a tag to compare

Added

  • maps as a valid type for query arguments.
  • EdgeDB.Object.to_map/1 and EdgeDB.NamedTuple.to_map/1 functions.
  • optional support for std::datetime EdgeDB type via Timex.Duration structure.
  • custom modules for each EdgeDB exception with the new/2 function, that will return the EdgeDB.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.

v0.2.1

19 May 19:12
b639542
Compare
Choose a tag to compare

Removed

  • mention of :repeatable_read option for transaction isolation mode from EdgeDB.edgedb_transaction_option/0.

Fixed

  • codec name returned by codec for std::str from std::uuid to str::str.
  • documentation for the custom codec example, which did not have a EdgeDB.Protocol.Codec.decode/3 implementation and used the wrong protocol.

v0.2.0

03 May 18:59
7cef4e7
Compare
Choose a tag to compare

Added

  • EdgeDB.Object.fields/2, EdgeDB.Object.properties/2, EdgeDB.Object.links/1 and EdgeDB.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 empty EdgeDB.Set.
  • access to TLS certificate from connection options.
  • isolation configuration by dropping REPEATABLE READ mode, because only SERIALIZABLE is supported by EdgeDB 1.0 (REPEATABLE READ was dropped in EdgeDB 1.3).
  • preserving the order of the values returned when working with EdgeDB.NamedTuple (EdgeDB.NamedTuple.to_tuple/1, EdgeDB.NamedTuple.keys/1), including Enumerable protocol implementation.

Changed

  • parsing of binary data from EdgeDB by completely reworking the protocol implementation.
  • internal implementation of the Access behaviour for EdgeDB.Object to improve fields access performance.

v0.1.0

10 Feb 16:42
45c47d6
Compare
Choose a tag to compare

Added

  • First release.