Skip to content
This repository was archived by the owner on Aug 15, 2024. It is now read-only.

Commit ca0b3e4

Browse files
committed
Make streamId a sql parameter of type SqlDbType.Char so no implicit conversion is done in MsSql when searching for a stream
1 parent 11d25ef commit ca0b3e4

9 files changed

Lines changed: 28 additions & 24 deletions

src/SqlStreamStore.MsSql/MsSqlStreamStore.AppendStream.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ private async Task<MsSqlAppendResult> AppendToStreamExpectedVersionAny(
131131
{
132132
using(var command = new SqlCommand(_scripts.AppendStreamExpectedVersionAny, connection, transaction))
133133
{
134-
command.Parameters.AddWithValue("streamId", sqlStreamId.Id);
134+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = sqlStreamId.Id });
135135
command.Parameters.AddWithValue("streamIdOriginal", sqlStreamId.IdOriginal);
136136

137137
if (messages.Any())
@@ -236,7 +236,7 @@ private async Task<MsSqlAppendResult> AppendToStreamExpectedVersionNoStream(
236236
{
237237
using(var command = new SqlCommand(_scripts.AppendStreamExpectedVersionNoStream, connection, transaction))
238238
{
239-
command.Parameters.AddWithValue("streamId", sqlStreamId.Id);
239+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = sqlStreamId.Id });
240240
command.Parameters.AddWithValue("streamIdOriginal", sqlStreamId.IdOriginal);
241241

242242
if(messages.Length != 0)
@@ -343,7 +343,7 @@ private async Task<MsSqlAppendResult> AppendToStreamExpectedVersion(
343343

344344
using(var command = new SqlCommand(_scripts.AppendStreamExpectedVersion, connection, transaction))
345345
{
346-
command.Parameters.AddWithValue("streamId", sqlStreamId.Id);
346+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = sqlStreamId.Id });
347347
command.Parameters.AddWithValue("expectedStreamVersion", expectedVersion);
348348
var eventsParam = CreateNewMessagesSqlParameter(sqlDataRecords);
349349
command.Parameters.Add(eventsParam);
@@ -459,7 +459,7 @@ private async Task<int> GetStreamVersionOfMessageId(
459459
{
460460
using(var command = new SqlCommand(_scripts.GetStreamVersionOfMessageId, connection, transaction))
461461
{
462-
command.Parameters.AddWithValue("streamId", sqlStreamId.Id);
462+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = sqlStreamId.Id });
463463
command.Parameters.AddWithValue("messageId", messageId);
464464

465465
var result = await command.ExecuteScalarAsync(cancellationToken)

src/SqlStreamStore.MsSql/MsSqlStreamStore.Delete.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
namespace SqlStreamStore
22
{
33
using System;
4+
using System.Data;
45
using System.Data.SqlClient;
56
using System.Threading;
67
using System.Threading.Tasks;
@@ -38,7 +39,7 @@ protected override async Task DeleteEventInternal(
3839
bool deleted;
3940
using (var command = new SqlCommand(_scripts.DeleteStreamMessage, connection, transaction))
4041
{
41-
command.Parameters.AddWithValue("streamId", sqlStreamId.Id);
42+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = sqlStreamId.Id });
4243
command.Parameters.AddWithValue("eventId", eventId);
4344
var count = await command
4445
.ExecuteScalarAsync(cancellationToken)
@@ -76,7 +77,7 @@ private async Task DeleteStreamExpectedVersion(
7677
{
7778
using(var command = new SqlCommand(_scripts.DeleteStreamExpectedVersion, connection, transaction))
7879
{
79-
command.Parameters.AddWithValue("streamId", streamIdInfo.SqlStreamId.Id);
80+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = streamIdInfo.SqlStreamId.Id });
8081
command.Parameters.AddWithValue("expectedStreamVersion", expectedVersion);
8182
try
8283
{
@@ -142,7 +143,7 @@ private async Task DeleteStreamAnyVersion(
142143
bool aStreamIsDeleted;
143144
using (var command = new SqlCommand(_scripts.DeleteStreamAnyVersion, connection, transaction))
144145
{
145-
command.Parameters.AddWithValue("streamId", sqlStreamId.Id);
146+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = sqlStreamId.Id });
146147
var i = await command
147148
.ExecuteScalarAsync(cancellationToken)
148149
.NotOnCapturedContext();

src/SqlStreamStore.MsSql/MsSqlStreamStore.ReadStream.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
{
33
using System;
44
using System.Collections.Generic;
5+
using System.Data;
56
using System.Data.SqlClient;
67
using System.Linq;
78
using System.Threading;
@@ -107,7 +108,7 @@ private async Task<ReadStreamPage> ReadStreamInternal(
107108

108109
using (var command = new SqlCommand(commandText, connection, transaction))
109110
{
110-
command.Parameters.AddWithValue("streamId", sqlStreamId.Id);
111+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = sqlStreamId.Id });
111112
command.Parameters.AddWithValue("count", count + 1); //Read extra row to see if at end or not
112113
command.Parameters.AddWithValue("streamVersion", streamVersion);
113114

@@ -201,7 +202,7 @@ private async Task<string> GetJsonData(string streamId, int streamVersion, Cance
201202
await connection.OpenAsync(cancellationToken).NotOnCapturedContext();
202203
using(var command = new SqlCommand(_scripts.ReadMessageData, connection))
203204
{
204-
command.Parameters.AddWithValue("streamId", streamId);
205+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = streamId });
205206
command.Parameters.AddWithValue("streamVersion", streamVersion);
206207

207208
var jsonData = (string)await command.ExecuteScalarAsync(cancellationToken).NotOnCapturedContext();

src/SqlStreamStore.MsSql/MsSqlStreamStore.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ protected override async Task<int> GetStreamMessageCount(
211211
using(var command = new SqlCommand(_scripts.GetStreamMessageCount, connection))
212212
{
213213
var streamIdInfo = new StreamIdInfo(streamId);
214-
command.Parameters.AddWithValue("streamId", streamIdInfo.SqlStreamId.Id);
214+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = streamIdInfo.SqlStreamId.Id });
215215

216216
var result = await command
217217
.ExecuteScalarAsync(cancellationToken)
@@ -236,7 +236,7 @@ public async Task<int> GetmessageCount(
236236
using (var command = new SqlCommand(_scripts.GetStreamMessageBeforeCreatedCount, connection))
237237
{
238238
var streamIdInfo = new StreamIdInfo(streamId);
239-
command.Parameters.AddWithValue("streamId", streamIdInfo.SqlStreamId.Id);
239+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = streamIdInfo.SqlStreamId.Id });
240240
command.Parameters.AddWithValue("created", createdBefore);
241241

242242
var result = await command

src/SqlStreamStore.MsSql/MsSqlStreamStoreV3.AppendStream.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ private async Task<MsSqlAppendResult> AppendToStreamExpectedVersionAny(
141141
{
142142
using(var command = new SqlCommand(_scripts.AppendStreamExpectedVersionAny, connection, transaction))
143143
{
144-
command.Parameters.AddWithValue("streamId", sqlStreamId.Id);
144+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = sqlStreamId.Id });
145145
command.Parameters.AddWithValue("streamIdOriginal", sqlStreamId.IdOriginal);
146146

147147
if (messages.Any())
@@ -241,7 +241,7 @@ private async Task<MsSqlAppendResult> AppendToStreamExpectedVersionNoStream(
241241
{
242242
using(var command = new SqlCommand(_scripts.AppendStreamExpectedVersionNoStream, connection, transaction))
243243
{
244-
command.Parameters.AddWithValue("streamId", sqlStreamId.Id);
244+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = sqlStreamId.Id });
245245
command.Parameters.AddWithValue("streamIdOriginal", sqlStreamId.IdOriginal);
246246

247247
if(messages.Length != 0)
@@ -344,7 +344,7 @@ private async Task<MsSqlAppendResult> AppendToStreamExpectedVersion(
344344

345345
using(var command = new SqlCommand(_scripts.AppendStreamExpectedVersion, connection, transaction))
346346
{
347-
command.Parameters.AddWithValue("streamId", sqlStreamId.Id);
347+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = sqlStreamId.Id });
348348
command.Parameters.AddWithValue("expectedStreamVersion", expectedVersion);
349349
var eventsParam = CreateNewMessagesSqlParameter(sqlDataRecords);
350350
command.Parameters.Add(eventsParam);
@@ -453,7 +453,7 @@ private async Task<int> GetStreamVersionOfMessageId(
453453
{
454454
using(var command = new SqlCommand(_scripts.GetStreamVersionOfMessageId, connection, transaction))
455455
{
456-
command.Parameters.AddWithValue("streamId", sqlStreamId.Id);
456+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = sqlStreamId.Id });
457457
command.Parameters.AddWithValue("messageId", messageId);
458458

459459
var result = await command.ExecuteScalarAsync(cancellationToken)

src/SqlStreamStore.MsSql/MsSqlStreamStoreV3.Delete.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
namespace SqlStreamStore
22
{
33
using System;
4+
using System.Data;
45
using System.Data.SqlClient;
56
using System.Threading;
67
using System.Threading.Tasks;
@@ -37,7 +38,7 @@ protected override async Task DeleteEventInternal(
3738
bool deleted;
3839
using (var command = new SqlCommand(_scripts.DeleteStreamMessage, connection, transaction))
3940
{
40-
command.Parameters.AddWithValue("streamId", sqlStreamId.Id);
41+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = sqlStreamId.Id });
4142
command.Parameters.AddWithValue("eventId", eventId);
4243
var count = await command
4344
.ExecuteScalarAsync(cancellationToken)
@@ -75,7 +76,7 @@ private async Task DeleteStreamExpectedVersion(
7576
{
7677
using(var command = new SqlCommand(_scripts.DeleteStreamExpectedVersion, connection, transaction))
7778
{
78-
command.Parameters.AddWithValue("streamId", streamIdInfo.SqlStreamId.Id);
79+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = streamIdInfo.SqlStreamId.Id });
7980
command.Parameters.AddWithValue("expectedStreamVersion", expectedVersion);
8081
try
8182
{
@@ -144,7 +145,7 @@ private async Task DeleteStreamAnyVersion(
144145
bool aStreamIsDeleted;
145146
using (var command = new SqlCommand(_scripts.DeleteStreamAnyVersion, connection, transaction))
146147
{
147-
command.Parameters.AddWithValue("streamId", sqlStreamId.Id);
148+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = sqlStreamId.Id });
148149
var i = await command
149150
.ExecuteScalarAsync(cancellationToken)
150151
.NotOnCapturedContext();

src/SqlStreamStore.MsSql/MsSqlStreamStoreV3.ReadStream.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
{
33
using System;
44
using System.Collections.Generic;
5+
using System.Data;
56
using System.Data.SqlClient;
67
using System.Linq;
78
using System.Threading;
@@ -101,7 +102,7 @@ protected override async Task<ReadStreamPage> ReadStreamBackwardsInternal(
101102

102103
using(var command = new SqlCommand(commandText, connection, transaction))
103104
{
104-
command.Parameters.AddWithValue("streamId", sqlStreamId.Id);
105+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = sqlStreamId.Id });
105106
command.Parameters.AddWithValue("count", count + 1); //Read extra row to see if at end or not
106107
command.Parameters.AddWithValue("streamVersion", streamVersion);
107108

@@ -202,7 +203,7 @@ private async Task<string> GetJsonData(string streamId, int streamVersion, Cance
202203
await connection.OpenAsync(cancellationToken).NotOnCapturedContext();
203204
using(var command = new SqlCommand(_scripts.ReadMessageData, connection))
204205
{
205-
command.Parameters.AddWithValue("streamId", streamId);
206+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = streamId });
206207
command.Parameters.AddWithValue("streamVersion", streamVersion);
207208

208209
var jsonData = (string)await command.ExecuteScalarAsync(cancellationToken).NotOnCapturedContext();

src/SqlStreamStore.MsSql/MsSqlStreamStoreV3.StreamMetadata.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ protected override async Task<SetStreamMetadataResult> SetStreamMetadataInternal
8888

8989
using(var command = new SqlCommand(_scripts.SetStreamMetadata, connection, transaction))
9090
{
91-
command.Parameters.AddWithValue("streamId", streamIdInfo.SqlStreamId.Id);
91+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = streamIdInfo.SqlStreamId.Id });
9292
command.Parameters.AddWithValue("streamIdOriginal", streamIdInfo.SqlStreamId.IdOriginal);
9393
command.Parameters.Add("maxAge", SqlDbType.Int);
9494
command.Parameters["maxAge"].Value = maxAge ?? -1;

src/SqlStreamStore.MsSql/MsSqlStreamStoreV3.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ protected override async Task<int> GetStreamMessageCount(
181181
using(var command = new SqlCommand(_scripts.GetStreamMessageCount, connection))
182182
{
183183
var streamIdInfo = new StreamIdInfo(streamId);
184-
command.Parameters.AddWithValue("streamId", streamIdInfo.SqlStreamId.Id);
184+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = streamIdInfo.SqlStreamId.Id });
185185

186186
var result = await command
187187
.ExecuteScalarAsync(cancellationToken)
@@ -206,7 +206,7 @@ public async Task<int> GetMessageCount(
206206
using (var command = new SqlCommand(_scripts.GetStreamMessageBeforeCreatedCount, connection))
207207
{
208208
var streamIdInfo = new StreamIdInfo(streamId);
209-
command.Parameters.AddWithValue("streamId", streamIdInfo.SqlStreamId.Id);
209+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = streamIdInfo.SqlStreamId.Id });
210210
command.Parameters.AddWithValue("created", createdBefore);
211211

212212
var result = await command
@@ -294,7 +294,7 @@ await command
294294

295295
using(var command = new SqlCommand(_scripts.SetStreamMetadata, connection))
296296
{
297-
command.Parameters.AddWithValue("streamId", new StreamIdInfo(streamId).SqlStreamId.Id);
297+
command.Parameters.Add(new SqlParameter("streamId", SqlDbType.Char, 42) { Value = new StreamIdInfo(streamId).SqlStreamId.Id });
298298
command.Parameters.AddWithValue("streamIdOriginal", "ignored");
299299
command.Parameters.Add("maxAge", SqlDbType.Int);
300300
command.Parameters["maxAge"].Value = (object)metadata.MaxAge ?? DBNull.Value;

0 commit comments

Comments
 (0)