redb 3.7.2
Ядро и провайдеры. Пакеты на nuget.org: redb.Core(.Pro), redb.Postgres(.Pro),
redb.MSSql(.Pro), redb.SQLite(.Pro), redb.Export, redb.CLI, redb.Templates, redb.Licensing.
Зачем этот выпуск. В 3.7.1 уехал регресс: array.Contains по nullable-массиву не
транслируется, а бросает исключение. Фильтр вида .Where(x => x.Tags.Contains(y))
перестаёт работать, как только Tags объявлен T[]? — а это то, что Nullable enable
даёт любому необязательному массиву. Виноват переход на .NET 10 в 3.7.1, а не
правка парсера: под net10 компилятор оборачивает коллекцию дважды.
3.7.1 остаётся в списке на nuget.org, образы остаются в реестре: небезопасного там
нет, версия вытеснена, а не отозвана.
Также в выпуске:
- PVT-префильтр перестал отказывать в трёх шаблонах запросов, где отказ был лишним:
вложенный OR под AND, несколько ветвей по одной структуре, ListItem.Id. - Найденный при этом дефект слияния ветвей: группировка шла по одной структуре, из-за
чего строковый шаблон мог склеиться с bigint-колонкой. - Планировщик префильтра объясняет себя в ToSqlStringAsync — девять кодов причин отказа.
Проверено на .NET 10.0.8, набор целится в net10.0: 1942 из 1944, два штатных Skip,
прогон дважды — с включённым и выключенным префильтром. Шесть провайдерских коллекций
плюс модульные: 1920 из 1920 в обоих режимах.
Установка:
dotnet add package redb.Core
dotnet add package redb.Postgres.Pro # Pro бесплатен на всей линии 3.x, ключ не нужен