Skip to content

Commit e8b580e

Browse files
committed
Use bool as the return from VADD
1 parent a2be468 commit e8b580e

8 files changed

Lines changed: 12 additions & 11 deletions

File tree

docs/ReleaseNotes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Current package versions:
1313
- Add `Condition.SortedSet[Not]ContainsStarting` condition for transactions ([#2638 by ArnoKoll](https://github.com/StackExchange/StackExchange.Redis/pull/2638))
1414
- Add support for XPENDING Idle time filter ([#2822 by david-brink-talogy](https://github.com/StackExchange/StackExchange.Redis/pull/2822))
1515
- Improve `double` formatting performance on net8+ ([#2928 by mgravell](https://github.com/StackExchange/StackExchange.Redis/pull/2928))
16+
- Add vector-set support ([#2939 by mgravell](https://github.com/StackExchange/StackExchange.Redis/pull/2939))
1617

1718
## 2.8.58
1819

src/StackExchange.Redis/Interfaces/IDatabase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3444,9 +3444,9 @@ IEnumerable<SortedSetEntry> SortedSetScan(
34443444
/// <param name="useCheckAndSet">Optional check-and-set mode for partial threading (CAS parameter).</param>
34453445
/// <param name="attributesJson">Optional JSON attributes for the element (SETATTR parameter).</param>
34463446
/// <param name="flags">The flags to use for this operation.</param>
3447-
/// <returns>The number of elements added to the vectorset.</returns>
3447+
/// <returns><see langword="true"/> if the element was added; <see langword="false"/> if it already existed.</returns>
34483448
/// <remarks><seealso href="https://redis.io/commands/vadd"/></remarks>
3449-
long VectorSetAdd(
3449+
bool VectorSetAdd(
34503450
RedisKey key,
34513451
RedisValue element,
34523452
ReadOnlyMemory<float> values,

src/StackExchange.Redis/Interfaces/IDatabaseAsync.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -847,7 +847,7 @@ IAsyncEnumerable<SortedSetEntry> SortedSetScanAsync(
847847
// Vector Set operations
848848

849849
/// <inheritdoc cref="IDatabase.VectorSetAdd(RedisKey, RedisValue, ReadOnlyMemory{float}, int?, VectorQuantizationType, int?, int?, bool, string?, CommandFlags)"/>
850-
Task<long> VectorSetAddAsync(
850+
Task<bool> VectorSetAddAsync(
851851
RedisKey key,
852852
RedisValue element,
853853
ReadOnlyMemory<float> values,

src/StackExchange.Redis/KeyspaceIsolation/KeyPrefixed.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -815,7 +815,7 @@ public void WaitAll(params Task[] tasks) =>
815815
Inner.WaitAll(tasks);
816816

817817
// Vector Set operations - async methods
818-
public Task<long> VectorSetAddAsync(
818+
public Task<bool> VectorSetAddAsync(
819819
RedisKey key,
820820
RedisValue element,
821821
ReadOnlyMemory<float> values,

src/StackExchange.Redis/KeyspaceIsolation/KeyPrefixedDatabase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -806,7 +806,7 @@ public long KeyTouch(RedisKey[] keys, CommandFlags flags = CommandFlags.None) =>
806806
Inner.KeyTouch(ToInner(keys), flags);
807807

808808
// Vector Set operations
809-
public long VectorSetAdd(
809+
public bool VectorSetAdd(
810810
RedisKey key,
811811
RedisValue element,
812812
ReadOnlyMemory<float> values,

src/StackExchange.Redis/PublicAPI/PublicAPI.Unshipped.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ StackExchange.Redis.VectorSimilarityResult.Member.get -> StackExchange.Redis.Red
2424
StackExchange.Redis.VectorSimilarityResult.Score.get -> double
2525
StackExchange.Redis.VectorSimilarityResult.VectorSimilarityResult() -> void
2626
StackExchange.Redis.VectorSimilarityResult.VectorSimilarityResult(StackExchange.Redis.RedisValue member, double score = NaN, string? attributesJson = null) -> void
27-
StackExchange.Redis.IDatabase.VectorSetAdd(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue element, System.ReadOnlyMemory<float> values, int? reducedDimensions = null, StackExchange.Redis.VectorQuantizationType quantizationType = StackExchange.Redis.VectorQuantizationType.Int8, int? buildExplorationFactor = null, int? maxConnections = null, bool useCheckAndSet = false, string? attributesJson = null, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> long
27+
StackExchange.Redis.IDatabase.VectorSetAdd(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue element, System.ReadOnlyMemory<float> values, int? reducedDimensions = null, StackExchange.Redis.VectorQuantizationType quantizationType = StackExchange.Redis.VectorQuantizationType.Int8, int? buildExplorationFactor = null, int? maxConnections = null, bool useCheckAndSet = false, string? attributesJson = null, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> bool
2828
StackExchange.Redis.IDatabase.VectorSetContains(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue member, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> bool
2929
StackExchange.Redis.IDatabase.VectorSetDimension(StackExchange.Redis.RedisKey key, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> int
3030
StackExchange.Redis.IDatabase.VectorSetGetApproximateVector(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue member, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> StackExchange.Redis.Lease<float>?
@@ -39,7 +39,7 @@ StackExchange.Redis.IDatabase.VectorSetRemove(StackExchange.Redis.RedisKey key,
3939
StackExchange.Redis.IDatabase.VectorSetSetAttributesJson(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue member, string! jsonAttributes, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> bool
4040
StackExchange.Redis.IDatabase.VectorSetSimilaritySearchByVector(StackExchange.Redis.RedisKey key, System.ReadOnlyMemory<float> vector, long count = 10, bool withScores = false, bool withAttributes = false, double? epsilon = null, int? searchExplorationFactor = null, string? filterExpression = null, int? maxFilteringEffort = null, bool useExactSearch = false, bool disableThreading = false, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> StackExchange.Redis.Lease<StackExchange.Redis.VectorSimilarityResult>?
4141
StackExchange.Redis.IDatabase.VectorSetSimilaritySearchByMember(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue member, long count = 10, bool withScores = false, bool withAttributes = false, double? epsilon = null, int? searchExplorationFactor = null, string? filterExpression = null, int? maxFilteringEffort = null, bool useExactSearch = false, bool disableThreading = false, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> StackExchange.Redis.Lease<StackExchange.Redis.VectorSimilarityResult>?
42-
StackExchange.Redis.IDatabaseAsync.VectorSetAddAsync(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue element, System.ReadOnlyMemory<float> values, int? reducedDimensions = null, StackExchange.Redis.VectorQuantizationType quantizationType = StackExchange.Redis.VectorQuantizationType.Int8, int? buildExplorationFactor = null, int? maxConnections = null, bool useCheckAndSet = false, string? attributesJson = null, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> System.Threading.Tasks.Task<long>!
42+
StackExchange.Redis.IDatabaseAsync.VectorSetAddAsync(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue element, System.ReadOnlyMemory<float> values, int? reducedDimensions = null, StackExchange.Redis.VectorQuantizationType quantizationType = StackExchange.Redis.VectorQuantizationType.Int8, int? buildExplorationFactor = null, int? maxConnections = null, bool useCheckAndSet = false, string? attributesJson = null, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> System.Threading.Tasks.Task<bool>!
4343
StackExchange.Redis.IDatabaseAsync.VectorSetContainsAsync(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue member, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> System.Threading.Tasks.Task<bool>!
4444
StackExchange.Redis.IDatabaseAsync.VectorSetDimensionAsync(StackExchange.Redis.RedisKey key, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> System.Threading.Tasks.Task<int>!
4545
StackExchange.Redis.IDatabaseAsync.VectorSetGetApproximateVectorAsync(StackExchange.Redis.RedisKey key, StackExchange.Redis.RedisValue member, StackExchange.Redis.CommandFlags flags = StackExchange.Redis.CommandFlags.None) -> System.Threading.Tasks.Task<StackExchange.Redis.Lease<float>?>!

src/StackExchange.Redis/RedisDatabase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5723,7 +5723,7 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
57235723
}
57245724

57255725
// Vector Set operations - stub implementations (to be implemented)
5726-
public long VectorSetAdd(
5726+
public bool VectorSetAdd(
57275727
RedisKey key,
57285728
RedisValue element,
57295729
ReadOnlyMemory<float> values,
@@ -5833,7 +5833,7 @@ public bool VectorSetSetAttributesJson(RedisKey key, RedisValue member, string j
58335833
}
58345834

58355835
// Vector Set async operations
5836-
public Task<long> VectorSetAddAsync(
5836+
public Task<bool> VectorSetAddAsync(
58375837
RedisKey key,
58385838
RedisValue element,
58395839
ReadOnlyMemory<float> values,

tests/StackExchange.Redis.Tests/VectorSetIntegrationTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public async Task VectorSetAdd_BasicOperation()
2222
var vector = new float[] { 1.0f, 2.0f, 3.0f, 4.0f };
2323
var result = await db.VectorSetAddAsync(key, "element1", vector.AsMemory());
2424

25-
Assert.Equal(1, result);
25+
Assert.True(result);
2626
}
2727

2828
[Fact]
@@ -39,7 +39,7 @@ public async Task VectorSetAdd_WithAttributes()
3939

4040
var result = await db.VectorSetAddAsync(key, "element1", vector.AsMemory(), attributesJson: attributes);
4141

42-
Assert.Equal(1, result);
42+
Assert.True(result);
4343

4444
// Verify attributes were stored
4545
var retrievedAttributes = await db.VectorSetGetAttributesJsonAsync(key, "element1");

0 commit comments

Comments
 (0)