Skip to content

Releases: NEventStore/NEventStore.Persistence.SQL

10.1.0

26 Sep 16:17

Choose a tag to compare

  • Updated Microsoft.Data.SqlClient to version 6.1.1
  • Added indexes to optimize query performance #38
    • Bucket-scoped checkpoint scans: (BucketId, CheckpointNumber)
    • Per-stream operations and delete: (BucketId, StreamId)
    • Snapshot join/aggregation: (StreamId, StreamRevision)

BugFix

  • Fixed GetStreamsToSnapshot pagination #54

Breaking Changes

The following indexes were added to the default schema (upon database initialization), add it manually to an existing database:

SqlServer

CREATE INDEX [IX_Commits_Bucket_Checkpoint] ON [dbo].[Commits] ([BucketId], [CheckpointNumber]);
CREATE INDEX [IX_Commits_Bucket_Stream] ON [dbo].[Commits] ([BucketId], [StreamId]);
CREATE INDEX [IX_Commits_Bucket_Stamp] ON dbo.Commits ([BucketId], [CommitStamp]);
CREATE INDEX [IX_Snapshots_Stream_Revision] ON [dbo].[Snapshots] ([StreamId], [StreamRevision]);

MySql

CREATE INDEX IX_Commits_Bucket_Checkpoint ON Commits (BucketId, CheckpointNumber);
CREATE INDEX IX_Commits_Bucket_Stream ON Commits (BucketId, StreamId);
CREATE INDEX IX_Commits_Bucket_Stamp ON Commits (BucketId, CommitStamp);
CREATE INDEX IX_Snapshots_Stream_Revision ON Snapshots (StreamId, StreamRevision);

Oracle

CREATE INDEX IX_Commits_Bucket_Checkpoint ON Commits (BucketId, CheckpointNumber);
CREATE INDEX IX_Commits_Bucket_Stream ON Commits (BucketId, StreamId);
CREATE INDEX IX_Commits_Bucket_Stamp ON Commits (BucketId, CommitStamp);
CREATE INDEX IX_Snapshots_Stream_Revision ON Snapshots (StreamId, StreamRevision);

PostgreSql

CREATE INDEX IX_Commits_Bucket_Checkpoint ON Commits (BucketId, CheckpointNumber);
CREATE INDEX IX_Commits_Bucket_Stream ON Commits (BucketId, StreamId);
CREATE INDEX IX_Commits_Bucket_Stamp ON Commits (BucketId, CommitStamp);
CREATE INDEX IX_Snapshots_Stream_Revision ON Snapshots (StreamId, StreamRevision);

SQLite

CREATE INDEX IF NOT EXISTS IX_Commits_Bucket_Checkpoint ON Commits (BucketId, CheckpointNumber);
CREATE INDEX IF NOT EXISTS IX_Commits_Bucket_Stream ON Commits (BucketId, StreamId);
CREATE INDEX IF NOT EXISTS IX_Commits_Bucket_Stamp ON Commits (BucketId, CommitStamp);
CREATE INDEX IF NOT EXISTS IX_Snapshots_Stream_Revision ON Snapshots (StreamId, StreamRevision);

10.0.0

24 Jan 11:16

Choose a tag to compare

  • Async methods #51
  • Updated NEventStore to 10.0.0

Breaking Changes

  • ISerializeEvents.SerializeEventMessages() signature changed to accept IEnumerable instead of IReadOnlyList.

9.3.1

29 Nov 12:54

Choose a tag to compare

  • Added a dedicated ISerializeEvents interface that allows customizing event deserialization with access to metadata from the ICommit class. #47, #49, #506
  • Improved some Comments and Documentation.
  • Updated Microsoft.Data.SqlClient to version 5.2.2
  • Updated nuget package to include symbols and new icon.

Thanks to: @chrischu

9.2.0

26 Apr 09:18

Choose a tag to compare

What's Changed

  • Use Microfot.Data.SqlClient instead of System.Data.SqlClient by @AGiorgetti in #44

Full Changelog: 9.1.2...9.2.0

9.1.2

31 Jul 12:16

Choose a tag to compare

  • fixed 9.1.1 wrong nuspec file

from 9.1.1

  • Target Framework supported: netstandard2.0, net462
  • Updated System.Data.SqlClient 4.8.5
  • Fix: NEventStore constraint failed with MySql 8.x (works with 5.7) #487

Breaking Change

  • The fix for #487 changed how the Commits table is created for MySql 8.x:
    to update an existing database in order to run on 8.x you need to manually update the Commits table schema and change the constraint of the CommitId column
    from: CommitId binary(16) NOT NULL CHECK (CommitId != 0) to: CommitId binary(16) NOT NULL CHECK (CommitId <> 0x00).

9.1.1

31 Jul 11:58

Choose a tag to compare

  • Target Framework supported: netstandard2.0, net462
  • Updated System.Data.SqlClient 4.8.5
  • Fix: NEventStore constraint failed with MySql 8.x (works with 5.7) #487

Breaking Change

  • The fix for #487 changed how the Commits table is created for MySql 8.x:
    to update an existing database in order to run on 8.x you need to manually update the Commits table schema and change the constraint of the CommitId column
    from: CommitId binary(16) NOT NULL CHECK (CommitId != 0) to: CommitId binary(16) NOT NULL CHECK (CommitId <> 0x00).

9.0.0

03 Dec 09:55

Choose a tag to compare

  • Added support for net6.0.
  • Added a new PostgreSQL dialect (PostgreNpgsql6Dialect) to deal with Npgsql version 6 timestamp breaking changes. If you update the driver you might need to update the table schema manually #34.
  • Updated NEventStore core library to 9.0.0.