Skip to content

v7.1.0

Latest

Choose a tag to compare

@destbg destbg released this 02 Sep 10:54

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, Any and First.
  • Byte arrays can use Contains to find a byte.
  • Dates can use DateTime.IsLeapYear.
  • Local collections can use Any, Count with a condition or Contains after 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 or HashSet<T>, including after changing the element type.
  • JSON dictionaries support ContainsKey, ContainsValue, key-value Contains and indexers with translated keys.
  • Exact type checks with GetType() work on polymorphic JSON values.

Full Changelog: 7.0.2...7.1.0