Edgedb Elixir Versions Save

Elixir client for EdgeDB

v0.7.0

1 week ago

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

10 months ago

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

10 months ago

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

1 year ago

Removed

  • unintentional ping log for the connection.

v0.5.0

1 year ago

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

1 year ago

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

1 year ago

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

1 year ago

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

2 years ago

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

2 years ago

Added

  • First release.