Skip to content

Releases: MPCoreDeveloper/SharpCoreDB

V1.9.8.0

Choose a tag to compare

@MPCoreDeveloper MPCoreDeveloper released this 30 Aug 16:37

What's Changed

  • feat: add block-level Brotli/GZip compression for SingleFile storage by @saltus7 in #344
  • test: add Unicode and large blob storage regression test by @saltus7 in #346

New Contributors

Full Changelog: V1.9.7...V1.9.8

V1.9.7

Choose a tag to compare

@MPCoreDeveloper MPCoreDeveloper released this 29 Aug 10:06

­ƒÉø Bug Fixes

WHERE IN (...) regression fully resolved (#340)

The IN/NOT IN predicate silently produced wrong results in the forms that matter for real applications. Root cause: the shared SqlInPredicate split value lists naively on commas (no VALUES, tuple rows, or multi-value parameter support) and the single-file evaluator collapsed OR chains into a single bogus comparison.

  • IN / NOT IN lists are now parsed with top-level-comma awareness (respects parentheses and strings), strips SQLite VALUES, and supports tuple-column / tuple-row forms (a, b) IN (VALUES (ÔǪ)) ÔÇö used by both single-file and directory scan paths.
  • SingleFileTable.EvaluateCondition now splits on top-level OR and AND.
  • Regression coverage reproduces the reporter's exact SharpCoreDBConnection + .scdb probe.

Single-file (.scdb) encryption actually encrypts (#341)

SingleFileStorageProvider accepted DatabaseOptions.EncryptionKey but never applied a cipher ÔÇö every block was written in plaintext and any key opened the file.

  • AES-256-GCM at rest for every block (table rows, table directory, column/index definitions) written through WriteBlockAsync; ReadBlockAsync/GetReadStream/GetReadSpan decrypt. The embedded WAL region receives ciphertext too.
  • Wrong keys now fail (GCM authentication error or empty schema).
  • ValidateHeader enforces encryption-mode consistency on reopen; UpdateBlockAsync/GetWriteStream (positional delta writes, incompatible with GCM) throw when encrypted.
  • The file header, block registry and free-space map remain plaintext metadata by design; encrypting those regions is on the v2.0 roadmap.

ExecuteNonQuery returns real affected-row counts

Both the ADO.NET provider and the EF Core provider now return the actual rows changed (DELETE 2 rows  2) via the new IDatabase.GetLastChanges() (SQLite changes() parity), instead of hardcoded -1/1.

EF Core provider no longer writes debug log files

Removed per-command D:\*.log writes (ef_commands, ef_dml, ef_deep_dml, query_results, ef_reader_async, ef_nonquery) from SharpCoreDBCommand.

 Validation

  • SharpCoreDB.Tests: 1,529/1,529 passing
  • SharpCoreDB.EntityFrameworkCore.Tests: 114/114 passing

­ƒö« What's Next

  • v2.0 is in active development (release/v2.0.0.0): storage-engine rewrite with record growth/relocation and faster UPDATE/DELETE paths, plus block-registry / on-disk metadata encryption (both fixes carried forward).

🙏 Acknowledgments

  • @saltus7 — independently root-caused issue #341 (single-file .scdb encryption bypass) and submitted a complete proposed fix in PR #342 before v1.9.7 shipped. The released implementation follows the integration points they identified. Credit is recorded in CONTRIBUTORS.md, the changelog, and commit 7783eb08 (Co-authored-by).
  • @YBazanPro — detailed 1.9.6 WHERE IN regression probe (issue #340); the probe's exact SharpCoreDBConnection + .scdb scenario became permanent regression coverage.

Thank you both — your reports made this release better. 🙏

V1.9.5

Choose a tag to compare

@MPCoreDeveloper MPCoreDeveloper released this 27 Aug 19:17

Full Changelog: V1.9.3...V1.9.5

Version V1.9.3 state Same as Nuget V1.9.3

Choose a tag to compare

@MPCoreDeveloper MPCoreDeveloper released this 29 Jul 04:58

What's Changed

extra package
New optional package :
SharpCoreDB.Functional.Linq2DB
dotnet add package SharpCoreDB.Functional.Linq2DB --version 1.9.3

  • Bump actions/checkout from 4 to 7 by @dependabot[bot] in #275
  • Bump advanced-security/component-detection-dependency-submission-action from 0.1.3 to 0.1.4 by @dependabot[bot] in #289
  • Bump actions/setup-python from 5 to 7 by @dependabot[bot] in #302
  • Bump actions/setup-dotnet from 4 to 6 by @dependabot[bot] in #303

Full Changelog: V1.8.0.0...V1.9.3

V1.8.0

Choose a tag to compare

@MPCoreDeveloper MPCoreDeveloper released this 30 Apr 03:50

Full Changelog: V1.7.2.0...V1.8.0.0

V1.7.2

Choose a tag to compare

@MPCoreDeveloper MPCoreDeveloper released this 28 Apr 17:21

What's Changed

  • deps: Bump Microsoft.Extensions.Logging.Abstractions from 8.0.0 to 10.0.7 by @dependabot[bot] in #223
  • deps: Bump AWSSDK.Core from 4.0.4 to 4.0.5 by @dependabot[bot] in #224

Full Changelog: V1.7.1.0...V1.7.2.0

V1.7.1

Choose a tag to compare

@MPCoreDeveloper MPCoreDeveloper released this 26 Apr 16:25

Full Changelog: V1.7.0.0...V1.7.1.0

V1.7.0

Choose a tag to compare

@MPCoreDeveloper MPCoreDeveloper released this 19 Apr 18:19

What's Changed

  • deps: Bump Microsoft.Data.Sqlite and 2 others by @dependabot[bot] in #107
  • deps: Bump Microsoft.Extensions.DependencyInjection.Abstractions from 8.0.0 to 10.0.5 by @dependabot[bot] in #96
  • chore(deps): bump codecov/codecov-action from 4 to 6 by @dependabot[bot] in #106

New Contributors

Full Changelog: V1.6.0.0...V1.7.0.0

V1.6.0

Choose a tag to compare

@MPCoreDeveloper MPCoreDeveloper released this 23 Mar 19:28

Full Changelog: V1.5.0.0...V1.6.0.0

V1.5.0

Choose a tag to compare

@MPCoreDeveloper MPCoreDeveloper released this 15 Mar 06:03

Full Changelog: V1.4.1.0...V1.5.0.0