Changes from 7.0.2 to 7.1.0
This release adds support for more types of queries.
More method calls work in query filters
SQLite.Framework can now evaluate more method calls whose receiver and arguments do not depend on the current row.
The new support includes these method calls:
- Extension methods on captured values
- Static methods such as
int.Parse("10") - Instance methods on captured objects
- Fixed method calls nested inside other fixed method calls
More work is possible after combining queries
You can now continue a query after Concat, Union, Intersect or Except. You can filter, select, group or sort the combined results. You can also use an operation that returns one value.
The parameterless Order and OrderDescending methods now sort scalar query results by their value.
More types of joins work
A SelectMany query can now join a table after filtering it. If the query also uses DefaultIfEmpty, it becomes a left join. Missing rows from the joined table stay null.
GroupJoin projections can now use Count and LongCount, and later queries can aggregate those counts.
Distinct and paged queries can be used by more aggregates, including Count, Sum, Average, Total and StringJoin.
More functions and values work in queries
- Window functions can use composite partition and ordering keys. They can also be used in filters, grouping keys and predicates on scalar operations such as
Count,AnyandFirst. - Byte arrays can use
Containsto find a byte. - Dates can use
DateTime.IsLeapYear. - Local collections can use
Any,Countwith a condition orContainsafter a filter.
More JSON query shapes work
- A JSON collection can be flattened with query-level
SelectMany. - A projected JSON collection can materialize as a
List<T>, array orHashSet<T>, including after changing the element type. - JSON dictionaries support
ContainsKey,ContainsValue, key-valueContainsand indexers with translated keys. - Exact type checks with
GetType()work on polymorphic JSON values.
Full Changelog: 7.0.2...7.1.0