Skip to content

Commit eb707e5

Browse files
author
MPCoreDeveloper
committed
v1.9.4 release: known-issue fixes, single-file↔directory SQL parity, encryption & SQLite affinity opt-ins
- Known Issue 1: opt-in at-rest per-record AES-256-GCM encryption (EnableAtRestRecordEncryption) - Known Issue 2: fix ArgumentOutOfRangeException after reopen (pad DefaultExpressions/ColumnCheckExpressions) - Known Issue 3: functional single-file PK point operations - Known Issue 4: ExecuteQuery flushes batch-update writes (read-after-write) - Known Issue 5: SQL validator normalizes @/: parameter prefixes - Known Issue 6: opt-in SQLite integer affinity (UseSqliteIntegerAffinity) + actionable Int32 overflow message - Single-file↔directory SQL parity: LIKE/IS NULL/NOT NULL/BETWEEN (+ culture-neutral BETWEEN, shared evaluator, directory-scan delegation) - New tests: KnownIssuesFixTests (8) + SingleFileDirectoryParityTests (17); suite 1474 tests green - Flaky trigger/timing benchmarks (InsertOptimizationsTests) marked as skipped benchmarks - Version synchronization 1.9.3 → 1.9.4 across all packages, release notes, NuGet READMEs, docs, changelog
1 parent 38a9a36 commit eb707e5

104 files changed

Lines changed: 1872 additions & 358 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Directory.Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
a project sets UseSharpCoreDBPackage=true (consume published NuGet instead of ProjectReference).
1818
Update this single value when you want examples/tests to consume a newer published package version.
1919
-->
20-
<SharpCoreDBVersion>1.9.3</SharpCoreDBVersion>
20+
<SharpCoreDBVersion>1.9.4</SharpCoreDBVersion>
2121
</PropertyGroup>
2222
<ItemGroup>
2323
<!-- ============================================================ -->

NuGet.README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
## 🚀 Overview
1313

14-
**SharpCoreDB.Graph.Advanced** (v1.9.0) extends SharpCoreDB with advanced graph analytics capabilities:
14+
**SharpCoreDB.Graph.Advanced** (v1.9.4) extends SharpCoreDB with advanced graph analytics capabilities:
1515

1616
-**Community Detection**: Louvain, Label Propagation, Connected Components
1717
-**Centrality Metrics**: Degree, Betweenness, Closeness, Eigenvector
@@ -35,21 +35,21 @@
3535

3636
```bash
3737
# Install SharpCoreDB core
38-
dotnet add package SharpCoreDB --version 1.9.0
38+
dotnet add package SharpCoreDB --version 1.9.4
3939

4040
# Install graph extensions
41-
dotnet add package SharpCoreDB.Graph --version 1.9.0
41+
dotnet add package SharpCoreDB.Graph --version 1.9.4
4242

4343
# Install advanced analytics (includes GraphRAG)
44-
dotnet add package SharpCoreDB.Graph.Advanced --version 1.9.0
44+
dotnet add package SharpCoreDB.Graph.Advanced --version 1.9.4
4545

4646
# Optional: Vector search for GraphRAG
47-
dotnet add package SharpCoreDB.VectorSearch --version 1.9.0
47+
dotnet add package SharpCoreDB.VectorSearch --version 1.9.4
4848
```
4949

5050
**Requirements:**
5151
- .NET 10.0+
52-
- SharpCoreDB 1.9.0+
52+
- SharpCoreDB 1.9.4+
5353

5454
---
5555

README.md

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ A production-focused stack validated by **2,223 tests** and **backward compatibi
5454
### 1) Embedded mode
5555

5656
```bash
57-
dotnet add package SharpCoreDB --version 1.9.3
57+
dotnet add package SharpCoreDB --version 1.9.4
5858
```
5959

6060
```csharp
@@ -82,8 +82,8 @@ gRPC endpoint: `https://localhost:5001`
8282
Install client/server packages:
8383

8484
```bash
85-
dotnet add package SharpCoreDB.Server --version 1.9.3
86-
dotnet add package SharpCoreDB.Client --version 1.9.3
85+
dotnet add package SharpCoreDB.Server --version 1.9.4
86+
dotnet add package SharpCoreDB.Client --version 1.9.4
8787
```
8888

8989
---
@@ -105,16 +105,16 @@ dotnet add package SharpCoreDB.Client --version 1.9.3
105105

106106
---
107107

108-
## v1.9.3 release (current)
108+
## v1.9.4 release (current)
109109

110-
- **Full version synchronization to 1.9.3** across all packages (core, Server, Client, Analytics, VectorSearch, Graph, EF Core provider, Identity, EventSourcing, Projections, CQRS, Functional family including the new `SharpCoreDB.Functional.Linq2DB`, and more), internal project references, PackageReleaseNotes, and test projects.
110+
- **Full version synchronization to 1.9.4** across all packages (core, Server, Client, Analytics, VectorSearch, Graph, EF Core provider, Identity, EventSourcing, Projections, CQRS, Functional family including the new `SharpCoreDB.Functional.Linq2DB`, and more), internal project references, PackageReleaseNotes, and test projects.
111111
- **Bug fixes and stability improvements**:
112112
- Resolved several bugs and stability issues in `SharpCoreDB.Identity` (enhanced persistence, user/role management, password handling, and test coverage for concurrency scenarios; core identity surface now at 100% pass rate in key areas).
113113
- Multiple fixes and enhancements in the `SharpCoreDB.EntityFrameworkCore` provider (improved Guid-keyed entity relationships, transaction handling, and end-to-end integration reliability).
114-
- **Extensive updates and changes**: Comprehensive refresh of all documentation (root README, package READMEs/NuGet.README.md files, USAGE guides, script client docs for Python/JS, and hub files like docs/INDEX.md and docs/README.md) with 1.9.3 install instructions, release labels, and notes. Updated test project infrastructure across the board.
114+
- **Extensive updates and changes**: Comprehensive refresh of all documentation (root README, package READMEs/NuGet.README.md files, USAGE guides, script client docs for Python/JS, and hub files like docs/INDEX.md and docs/README.md) with 1.9.4 install instructions, release labels, and notes. Updated test project infrastructure across the board.
115115
- **Test infrastructure modernization for security and standards**: All test projects updated to latest compliant versions of Microsoft.NET.Test.Sdk (18.6.0+), xunit.v3 (3.2.2+), xunit.runner.visualstudio (3.1.5+), coverlet.collector, and related packages to align with current .NET 10 / C# 14 security best practices and compatibility requirements.
116116
- **Test count and quality**: **2,223 tests** passing (verified and now prominently documented; significant increase in coverage and stability reporting from the prior 2,000+ baseline).
117-
- Changes from 1.9.1 to 1.9.3 (including the above bug resolutions, dependency updates, and documentation overhaul) are detailed in this section and `docs/CHANGELOG.md`.
117+
- Changes from 1.9.1 to 1.9.4 (including the above bug resolutions, dependency updates, and documentation overhaul) are detailed in this section and `docs/CHANGELOG.md`.
118118
- **2,223 tests passing**, **zero breaking changes**, **100% backward compatible**.
119119

120120
---
@@ -216,43 +216,43 @@ Full benchmark details: `docs/BENCHMARK_RESULTS.md`
216216
### Quality and compatibility
217217

218218
- **2,223 tests passing**
219-
- **100% backward compatible** across the v1.9.3 release line
220-
- Zero breaking changes intended from v1.5.0 to v1.9.3
219+
- **100% backward compatible** across the v1.9.4 release line
220+
- Zero breaking changes intended from v1.5.0 to v1.9.4
221221

222222
For deep technical details (audit reports, threat model, runbooks, compatibility matrices), use the docs hub: `docs/INDEX.md`.
223223

224224
---
225225

226-
## Available NuGet packages (v1.9.3)
226+
## Available NuGet packages (v1.9.4)
227227

228228
```bash
229229
# Core
230-
dotnet add package SharpCoreDB --version 1.9.3
230+
dotnet add package SharpCoreDB --version 1.9.4
231231

232232
# Server/client
233-
dotnet add package SharpCoreDB.Server --version 1.9.3
234-
dotnet add package SharpCoreDB.Client --version 1.9.3
233+
dotnet add package SharpCoreDB.Server --version 1.9.4
234+
dotnet add package SharpCoreDB.Client --version 1.9.4
235235

236236
# Engines and extensions
237-
dotnet add package SharpCoreDB.Analytics --version 1.9.3
238-
dotnet add package SharpCoreDB.VectorSearch --version 1.9.3
239-
dotnet add package SharpCoreDB.Graph --version 1.9.3
240-
dotnet add package SharpCoreDB.Graph.Advanced --version 1.9.3
241-
dotnet add package SharpCoreDB.Distributed --version 1.9.3
242-
dotnet add package SharpCoreDB.Provider.Sync --version 1.9.3
243-
dotnet add package SharpCoreDB.EntityFrameworkCore --version 1.9.3
244-
dotnet add package SharpCoreDB.Extensions --version 1.9.3
237+
dotnet add package SharpCoreDB.Analytics --version 1.9.4
238+
dotnet add package SharpCoreDB.VectorSearch --version 1.9.4
239+
dotnet add package SharpCoreDB.Graph --version 1.9.4
240+
dotnet add package SharpCoreDB.Graph.Advanced --version 1.9.4
241+
dotnet add package SharpCoreDB.Distributed --version 1.9.4
242+
dotnet add package SharpCoreDB.Provider.Sync --version 1.9.4
243+
dotnet add package SharpCoreDB.EntityFrameworkCore --version 1.9.4
244+
dotnet add package SharpCoreDB.Extensions --version 1.9.4
245245

246246
# Optional architecture packages
247-
dotnet add package SharpCoreDB.EventSourcing --version 1.9.3
248-
dotnet add package SharpCoreDB.Projections --version 1.9.3
249-
dotnet add package SharpCoreDB.CQRS --version 1.9.3
247+
dotnet add package SharpCoreDB.EventSourcing --version 1.9.4
248+
dotnet add package SharpCoreDB.Projections --version 1.9.4
249+
dotnet add package SharpCoreDB.CQRS --version 1.9.4
250250

251251
# Optional functional adapters
252-
dotnet add package SharpCoreDB.Functional --version 1.9.3
253-
dotnet add package SharpCoreDB.Functional.Dapper --version 1.9.3
254-
dotnet add package SharpCoreDB.Functional.EntityFrameworkCore --version 1.9.3
255-
dotnet add package SharpCoreDB.Functional.Linq2DB --version 1.9.3
252+
dotnet add package SharpCoreDB.Functional --version 1.9.4
253+
dotnet add package SharpCoreDB.Functional.Dapper --version 1.9.4
254+
dotnet add package SharpCoreDB.Functional.EntityFrameworkCore --version 1.9.4
255+
dotnet add package SharpCoreDB.Functional.Linq2DB --version 1.9.4
256256
```
257257

258258
---
@@ -267,7 +267,7 @@ dotnet add package SharpCoreDB.Functional.Linq2DB --version 1.9.3
267267
- All builds and test packages validated (`SharpCoreDB.1.9.1.nupkg` successfully produced)
268268
- Zero breaking changes – 100% backward compatible with previous 1.9.x line
269269

270-
> For changes in the current 1.9.3 release (version bump prep, docs sync, test count 2,223, release readiness), see the v1.9.3 section above and docs/CHANGELOG.md.
270+
> For changes in the current 1.9.4 release (version bump prep, docs sync, test count 2,223, release readiness), see the v1.9.4 section above and docs/CHANGELOG.md.
271271
272272
---
273273

@@ -284,7 +284,7 @@ dotnet add package SharpCoreDB.Functional.Linq2DB --version 1.9.3
284284
- Migration docs: `docs/migration/README.md`
285285
- Single-file SQL support and limits: `docs/storage/SINGLE_FILE_SQL_LIMITATIONS.md`
286286
- EF Core provider docs: `src/SharpCoreDB.EntityFrameworkCore/README.md`, `src/SharpCoreDB.EntityFrameworkCore/USAGE.md`
287-
- **New in v1.9.3**: `SharpCoreDB.Functional.Linq2DB` — production-ready linq2db adapter with `Option<T>`/`Fin<T>`/`Seq<T>` APIs, `BulkCopyAsync` batching, full type mapping (ULID/GUID/DateTime), and compile-time safe LINQ queries. Ideal for high-throughput AI/agentic and GraphRAG workloads. See `src/SharpCoreDB.Functional.Linq2DB/README.md`.
287+
- **New in v1.9.4**: `SharpCoreDB.Functional.Linq2DB` — production-ready linq2db adapter with `Option<T>`/`Fin<T>`/`Seq<T>` APIs, `BulkCopyAsync` batching, full type mapping (ULID/GUID/DateTime), and compile-time safe LINQ queries. Ideal for high-throughput AI/agentic and GraphRAG workloads. See `src/SharpCoreDB.Functional.Linq2DB/README.md`.
288288
- Optional architecture packages: `src/SharpCoreDB.EventSourcing/README.md`, `src/SharpCoreDB.Projections/README.md`, `src/SharpCoreDB.CQRS/README.md`
289289
- Package publish/readme guidance: `nuget/README.md`, `NuGet.README.md`
290290

ROADMAP.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<div align="center">
44

5-
**Last updated: v1.9.3 · Maintained by [@MPCoreDeveloper](https://github.com/MPCoreDeveloper)**
5+
**Last updated: v1.9.4 · Maintained by [@MPCoreDeveloper](https://github.com/MPCoreDeveloper)**
66

77
</div>
88

docs/CHANGELOG.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,53 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [1.9.4] - 2026-08-22
11+
12+
### Added
13+
- **Known Issue 1 — opt-in at-rest per-record encryption**: `DatabaseConfig.EnableAtRestRecordEncryption`
14+
(default `false` for full backward compatibility). When enabled, table data files carry an 8-byte
15+
magic header and each appended record is AES-256-GCM encrypted; point reads, full scans, PK index
16+
rebuilds and compaction decrypt transparently. Legacy plaintext files and `NoEncryptMode` remain
17+
byte-for-byte unchanged; legacy/encrypted file mixing is prevented per file.
18+
- **Known Issue 6 — opt-in SQLite integer affinity**: `DatabaseConfig.UseSqliteIntegerAffinity`
19+
(default `false`). When enabled, `INTEGER` DDL maps to `DataType.Long` (Int64) so values like
20+
`DateTime.UtcNow.Ticks` fit; the default Int32 path now throws an actionable overflow message
21+
pointing to `BIGINT`/the flag.
22+
- **Single-file ↔ directory SQL parity**: single-file mode now handles the full WHERE operator set
23+
identically to directory mode — `LIKE` / `NOT LIKE` (case-insensitive, `%`/`_`, NULL never matches),
24+
`IS NULL` / `IS NOT NULL`, and `BETWEEN` (inclusive, culture-independent numeric comparison).
25+
Aggregates (`COUNT`, `SUM`, `AVG`, `MIN`, `MAX`), `GROUP BY`, `IN`, `ORDER BY`, `LIMIT`, `DISTINCT`
26+
and JOINs already matched via the shared `SqlParser` and are now covered by regression tests.
27+
- **New tests**: `KnownIssuesFixTests` (8, one per known issue incl. backward-compat guards) and
28+
`SingleFileDirectoryParityTests` (17 parity cases). Final suite: **1,474 tests, 0 failures**,
29+
15 intentionally-skipped CPU-timing performance benchmarks.
30+
31+
### Changed
32+
- **Version bump 1.9.3 → 1.9.4** across all packable `.csproj` files, `Directory.Packages.props`
33+
(`SharpCoreDBVersion`), test projects, and documentation (hub docs, per-package READMEs,
34+
NuGet-readme info, script clients). `DocumentationConsistencyTests` now enforces `1.9.4` as the
35+
current release label.
36+
- **Known Issue 2 — reopen AOORE fix**: `Database.Load()` now pads `DefaultExpressions`,
37+
`ColumnCheckExpressions` and `ColumnLocaleNames` to the column count, so `ITable.Insert` after a
38+
reopen no longer throws `ArgumentOutOfRangeException`.
39+
- **Known Issue 3 — single-file point operations**: `SingleFileTable.FindByPrimaryKey` /
40+
`UpdateByPrimaryKey` / `DeleteByPrimaryKey` are now functional (transaction-aware, respect
41+
`AutoFlush`) instead of returning `null`/`false`.
42+
- **Known Issue 4 — read-after-write**: `ExecuteQuery` flushes pending batch-update writes
43+
(`_batchUpdateActive`) before executing, matching `ExecuteSQL(SELECT)`; plain metadata dirtiness is
44+
no longer force-flushed per query (avoids page-based engine read regressions).
45+
- **Known Issue 5 — SQL validator**: parameter keys are normalized by stripping `@`/`:` prefixes
46+
(consistent with `SqlParser.ResolveParameter`), removing false "Missing/Unused parameters" warnings
47+
while genuine mismatches are still reported.
48+
- **Benchmark test fix**: `InsertOptimizationsTests.Baseline_10K_Inserts_Without_Optimizations` used
49+
an inverted `> 100 ms` assertion (faster machines were marked as failing); replaced by a correct
50+
functional upper-bound check.
51+
52+
### Fixed
53+
- Directory-mode full-table scan now delegates `LIKE`/`NOT LIKE`/`BETWEEN` single-condition filtering
54+
to the shared evaluator (previously `BETWEEN` threw "Unsupported operator" and `LIKE` matched NULL
55+
rows), making directory and single-file semantics identical.
56+
1057
## [1.9.3] - 2026-07-28
1158

1259
### Added

docs/INDEX.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SharpCoreDB Documentation Index
22

3-
**Status:** Active documentation set (`v1.9.3`)
3+
**Status:** Active documentation set (`v1.9.4`)
44

55
## 1. Project Entry Points
66

docs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SharpCoreDB Documentation
22

3-
This folder contains the maintained documentation set for SharpCoreDB (`v1.9.3`).
3+
This folder contains the maintained documentation set for SharpCoreDB (`v1.9.4`).
44

55
## Start Here
66

0 commit comments

Comments
 (0)