All notable changes will be documented in this file.
The format is loosely based on Keep a Changelog, and this project adheres to Semantic Versioning.
- added: Documentation for
default_transaction_mode
. - changed: Clarified some documentation.
- fixed: Handle placeholders for
insert_all
calls. - changed: Added cell-wise placeholders for inserts.
- fixed: Handle datetime serialization format via
:datetime_type
config. - fixed: Retain microsecond serialization.
- changed: Bump minimum ecto to
3.12
.
- added: Added an explicit
:integer
column type support. Under the hood it is stored the same regardless. - fixed: Handle new style of distinct expressions introduce upstream in Ecto
3.12
. - changed: Allow
insert_all
to no longer require a where clause. - changed: Made some public functions now private.
- changed: Test against elixir 1.17 and OTP 27, 26, and 25.
- changed: Set minimum
exqlite
dependency to0.22
.
- fixed: Encode nil blobs. This was previously unhandled.
- fixed: Support
nil
decoding for:decimal
. - changed: Dropped support for Elixir v1.13.
- changed: Added Elixir v1.16 to CI build.
- changed: Bump minimum
exqlite
to~ 0.19
.
- added: Support for encoding nil values in
:utc_datetime
,:utc_datetime_usec
,:naive_datetime
, and:naive_datetime_usec
column dates. - added: Allow subquery values in
insert_all
.
- added: Support fragment splicing.
- added: Support parent_as with combination queries.
- changed: Don't need to consider `{:maybe, type}`` when loading or dumping.
- changed: Handle nil values in dumpers and loaders.
- changed: raise if an in memory database is opened with a pool_size != 1
- added: support
{:unsafe_fragment, ".."}
as a conflict target. - changed: Dropped support for Elixir
1.12
. - changed: Dropped support for OTP 23.
- added: Support for DDL transactions.
- fixed: Handle binary uuid casting when
binary_id
is specified.
- fixed: Handle unique constraint error formats.
- changed: Updated dependencies.
- added: Missing support for
Date
type.
- fixed: Ignore bad
init
file when usingdump_cmd/3
-
changed: Add support for Ecto
v3.10
-
changed: Bring SQLite closer to the Postgres adapter implementation
-
changed: Enable
AUTOINCREMENT
forserial
andbigserial
. -
changed: breaking Add support for sqlite strict mode.
With sqlite strict mode support being added, the following field "types" were altered.
TEXT_DATETIME
=>TEXT
TEXT_UUID
=>TEXT
: This is when:binary_id_type
is:string
UUID
=>BLOB
: This is when:binary_id_type
is:binary
This is a breaking change in the sense that rebuilding the schema from scratch will cause those columns to show up differently. Under the hood sqlite does not actually care.
We kept
TEXT_DATETIME
to satisfy the old Ecto2 implementation to keep backwards compatibility. -
changed: breaking Raise when table prefixes are used.
- changed: Use
Connection.connect
instead ofSqlite3.open
.
- fixed: Added
dump_cmd/3
- fixed: Added
query_many/4
- fixed:
exists()
expression building.
- changed: Allow
FROM
hints to be used.
- changed: Set minimum elixir version to
~> 1.11
- added: Allow index hints on joins.
- added: Allow datetime type to be configurable.
- fixed: issue with missing space in
EXPLAIN QUERY PLAN
.
- changed: explain query to
EXPLAIN QUERY PLAN
.
- fixed: generate
binary_id
values according to thebinary_id_type
config.
- fixed: double encoding of a string when converting to json.
- added: information to the help docs about utilizing
exqlite
with database encryption. - changed: raise more meaningful error when an expression fails to match. Backported from ecto_sql#362.
- added:
:time
decode support.
- fixed: Backport of default drops to
:restrict
are now backwards compatible with older versions ofecto_sql
. We don't really have support fordrop index ... cascade
as it is not in the grammar of sqlite.
- changed: update dependencies to the latest.
- changed: drop support for OTP 20. It is not supported by
telemetry
and won't compile. For now we will just support Elixir 1.8 and OTP 21.
- changed: UUID encoding for both
:binary_id
and:uuid
/Ecto.UUID
is now configurable - changed:
:uuid
/Ecto.UUID
is now encoded as a string by default
- changed:
:utc_datetime
handling has been updated to completely remove theZ
supplied and made to conform closer to what is done for Postgrex and MyXQL. #49 - changed: updated error message for OTP24
- changed: prepared statements can now be released manually.
- changed: added ability to specify
:asc_nulls_last
,:asc_nulls_first
,:desc_nulls_last
, and:desc_nulls_first
.
- fixed: double quote missing from sql query generation.
- added:
:check
constraint column option. - fixed: "database is locked" issue by setting
journal_mode
atstorage_up
time.
- changed: upgrade
ecto_sql
dependency to `3.6.0`` - changed: removed old
Ecto.Adapters.SQLite3.Connection.insert/6
was replaced withEcto.Adapters.SQLite3.Connection.insert/7
.
- added:
collate:
opts support to:string
column type
- changed: updated exqlite to
0.5.0
- changed: updated documentation
- changed: updated git repository url
- initial release.