0.1.0
First release of orax, forked from jamdb_oracle 0.5.12.
Breaking changes from jamdb_oracle
- The project is renamed: the Hex package and OTP application are
:orax, Erlang modulesjamdb_oracle_*areorax_*,Jamdb.OracleisOraxand the Ecto adapter isEcto.Adapters.Orax. Application config moves fromconfig :jamdb_oracletoconfig :orax. - Supported servers are Oracle Database 19c and 26ai (23ai).
- Requires Elixir 1.18, OTP 27 and ecto_sql 3.14 or later.
- The JSON library defaults to Elixir's built-in
JSONinstead ofJason. Setconfig :orax, :json_library, Jasonto keep Jason. - The default
app_namesent to the server, shown as the program inV$SESSION, is"orax"instead of"jamdb". - The
:read_timeoutparameter is removed. Responses are read until the protocol marks their end. - Autocommit is off inside
Repo.transaction/2until COMMIT or ROLLBACK.
Protocol
- Read responses until the protocol marks their end, using the end of
response marker of 26ai when the server offers it, instead of relying on
read_timeout. - Decode row headers repeated between rows in
FOR UPDATEfetches. - Fix TLS socket options and decode chunked RPA keywords.
- Fix RAW binds corrupting the binds that follow them.
Ecto adapter
- Support
insert/8, identity primary keys andRETURNINGbinds, returned as rows. - Support
values/2sources. - Translate
json_extract_pathtoJSON_VALUE. - Add configurable identifier quoting (
config :orax, quote_identifiers: true). - Reject
select, joins and CTEs inupdate_allanddelete_all. - Report bare, Ecto-cased constraint names in
to_constraints. - Load Oracle
DATEvalues into:datefields. - Return integers for integral unconstrained
NUMBERvalues and map unconstrained decimal columns toNUMBER. - Convert
type/2:stringwithTO_CHARinstead ofCAST. - Fix text and binary handling and parameterized intervals.