Changelog
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.2.0] - 2025-10-31
- Add
Datesupport based ongleam_time’scalendar.Date.
[2.1.3] - 2025-07-28
- Fix demos to use recent dynamic decoders and library versions.
[2.1.2] - 2025-07-09
- Utilize
pog ~> 4.0.0dependency in tests.
[2.1.1] - 2025-04-02
- Update deps, including latest stdlib.
- Only support Gleam 1.9.0+.
- BREAKING spelling fix: Renamed
InsertConfictTargettoInsertConflictTarget. - Relaxed type arg.
[2.1.0] - 2024-11-14
- Added convenience functions to
selectmodule to select columns by col names:select_colsreplace_select_colsselect_colreplace_select_col
- Replaced dev/test and adapter target
gleam_pgowithpgodependency. - Updated demos.
[2.0.2] - 2024-11-03
- [BREAKING]: Renamed
select.offsetfunction’soffstlabel tooffset - Updated test runner to target lowest and highest erlang and gleam versions
supported:
- Lowest is at the moment Erlang/OTP 26 and Gleam 1.4
- Updated dependencies
- Fixed typos
[2.0.1] - 2024-10-19
- Improved Readme
[2.0.0] - 2024-10-19
- Breaking changes:
- Renamed
cake.cake_read_querytocake.to_read_query - Renamed
cake.cake_write_querytocake.to_write_query - Renamed
cake.cake_query_to_prepared_statementtocake.to_prepared_statement
- Renamed
[1.1.2] - 2024-08-30
- Consistent dialect function names across all 4 RDMBS, fixed/renamed functions:
postgres_dialect/read_cake_query_to_prepared_statement=>postgres_dialect/cake_query_to_prepared_statementpostgres_dialect/query_to_prepared_statement=>postgres_dialect/read_query_to_prepared_statementsqlite_dialect/read_cake_query_to_prepared_statement=>sqlite_dialect/cake_query_to_prepared_statementsqlite_dialect/query_to_prepared_statement=>sqlite_dialect/read_query_to_prepared_statement- Note that while this a breaking change, the compiler will complain and the fix is trivial.
[1.1.1] - 2024-08-09
- Fix gleam min version to 1.3.0 to enable
gleam add cake@1to work.
[1.1.0] - 2024-08-09
- Added
join.left_lateralandjoin.inner_lateralandjoin.cross_lateralsupportLATERAL JOINs available on 🐘PostgreSQL 9.3+ and recent 🐬MySQL versions. Notice: You may also useLATERALliterally to prefix table names inFROMclauses with multiple tables.
[1.0.1] - 2024-07-26
- Breaking but very small bug fix change:
insert.on_columns_conflict_ignorespecifies its column list via thecolumnslabel instead ofcolumnlabel.
[1.0.0] - 2024-07-24
- 1.0.0 stable release
[1.0.0-rc.0] - 2024-07-23
insert.on_columns_conflict_updatechange thecolumnlabel tocolumns.- Added
UPDATEdemo. - Added
INSERT ON CONFLICT UPDATEdemo. - Added
SELECTwithJOINdemo. - Added a demo using
FragmentandPreparedStatement. - Added more public utility functions to the
fragmentmodule. - Removed glacier dev-dependency to speed up compilation.
- Moved demo apps into sub dir.
- Fixed a few path bugs in docs.
[0.15.0] - 2024-07-23
In the wake of making this library less verbose and more consistent be aware about a few slight breaking changes around mostly inserts, updates and deletes.
- Renamed
casterargument toencoderwithin moduleinsert. - Renamed a lot of public function args to be consistent across the library.
- Added
INSERTdemo. - Added
DELETEdemo. - Changed insert param generation to automatically wrap.
- Changed update param functions to automatically wrap. Renamed them slightly.
[0.14.0] - 2024-07-19
- Added more utility to the
wheremodule, such aswhere.none,where.trueandwhere.false. - Fixed unit tests around
INSERT...ON CONFLICT...UPDATEwithWHEREclause. - Renamed
update.set_many_to_expressiontoupdate.sets_to_expressionandupdate.set_many_to_sub_querytoupdate.sets_to_sub_query. - Renamed
union_manytounions,union_all_manytounions_all,except_manytoexcepts,except_all_manytoexcepts_all, andintersect_manytointersects,intersect_all_manytointersects_allin modulecombined. - Made
where.similar_toescape_charan argument.
[0.13.0] - 2024-07-12
- Added
where.in_querywhich allows to use a sub-query as the right hand side of anINclause. - Added
where.sub_querywhich allows to use a sub-query as aWhereValue.
[0.12.0] - 2024-07-12
-
Re-export types which can be used in public APIs, this should hopefully close the last gaps to never be required to use
cake/internal/*modules.In case you are tempted to do so, please get in touch to see what we can do about it.
[0.11.0] - 2024-07-11
- Renamed
Queryand the internal query module toReadQueryandread_query. - Fixed some issues around upserts (INSERT ON CONFLICT UPDATE).
- Moved internal/params module into public namespace.
[0.10.1] - 2024-07-10
- Rename dialects such as
postgrestopostgres_dialect. - Fix demos and tests to use public APIs instead of internal ones.
[0.10.0] - 2024-07-09
- Provide public API to access the generated SQL and prepared statement
parameters in the base
cakeand newdialectmodules.
[0.9.2] - 2024-07-07
- Added more more applications.
- Added tests and snapshots for upserts.
[0.9.1] - 2024-07-05
- Fix test suite.
[0.9.0] - 2024-07-05
- Improved documentation.
- Added demo app abstraction.
- Added first runnable demo for
SELECTand decode.
[0.8.0] - 2024-07-03
- Flattened the query interface/DSL modules into the base namespace of
cake/. - Moved some modules only used internally into
cake/internal/namespace. - Fixed and improved test suite for
DELETEstatements. - Improved general documentation.
[0.7.0] - 2024-07-01
- Improved builder flexibility for inserts and updates.
- Added documentation for the
insert,updateanddeleteinterface modules. - Improved tests for
UPDATE. - Renamed
select.groups_bytoselect.group_bys. - Fixed bugs when updating with sub-queries, where specifying a sub_query while setting update columns to vales would remove all other settings.
[0.6.0] - 2024-06-27
- Added 🐬MySQL independent of 🦭MariaDB as first class supported.
[0.5.0] - 2024-06-26
- Fixed github CI and docker compose testing against 🐘PostgreSQL and 🦭MariaDB.
- Locally you should be able to install docker and then just run:
bin/docker/detached/and thengleam test. - Relaxed licence from AGPL 3.0 to Mozilla Public License 2.0 (MPL-2.0).
[0.4.0] - 2024-06-22
- Added support for deletes and interface modules
for
insert,update,deleteontop of the existingselectandcombinedinterface modules. - Added support for 🦭MariaDB and 🐬MySQL.
- Removed the hard dependency on any RDMBS specific
library. These are now only required when developing and testing
this library, but when running you can chose any of the following adapters:
pogsqlightgmysql
[0.3.0] - 2024-06-19
- Fixes around inserts, updates, moved a lot of deps to dev deps.
[0.2.0] - 2024-06-19
- A lot of polishing, support for inserts and updates.
[0.1.0] - 2024-05-22
- First preview / demo.