All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- order depdendent column metadata tracking.
- Fob.Ordering.columns/1
- Updated dynamic expression creation to work with Ecto 3.9.1 and retain backwards compatibility.
- Fixed issues which caused some select expressions to fail when used with join queries.
- Added documentation
No changes. This release marks stability in the API.
- When ording by a fragment, Fob may now cast dates from binaries into
Date
structs- This fixes errors arising from fetching the next page of data when ordering by a fragment
- See the new
test/fob/fragment_casting_test.exs
test cases
- Fixed some cases where date / datetime casting suffered from the dynamic expressions approach. The original Ecto integration queries now run unless a fragment if supplied.
- Added the ability to paginate with order by fragments, when the same query fragment is a select. See tests for example.
- Fixed a case where
Fob.page_breaks/2
would miscalculate the page breaks when a query was ordered by a column which was also part of aselect
that belonged to a joined table.
- Removed usages of
infinity
and-infinity
postgres fragments- This fixes a query error when ordering by a nillable integer-type column
- Added the ability to paginate by
:infinity
page size- this returns the entire dataset
- Added implementations for
Fob.PageBreak.compare/3
andcompare/2
fornil
s
- Added a
Fob.PageBreak.expand_space/4
function for expanding the bounds of a page-break space.
- Added
Fob.between_bounds/3
for querying any number of records between two page-breaks- kind-of a book-ends concept rather than page-breaks 🤔
- Added
Fob.PageBreak.compare/2
andFob.PageBreak.compare/3
for comparing lists of page breaks
- Initial implementation
- This project was generated by Gaas