Skip to content

Releases: geldata/gel-elixir

v0.9.0

08 Mar 03:35
0713668
Compare
Choose a tag to compare

NOTE

This release renames the library from edgedb to gel to reflect the product's name change. This version does not bring any change in functionality, but replaces the module names from EdgeDB to Gel, and changes configuration keys from :edgedb to :gel.

Changed

  • naming of the library and modules from EdgeDB to Gel.

v0.8.0

26 Feb 09:27
42dee1a
Compare
Choose a tag to compare

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.

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.