Skip to content

2.6.45

Compare
Choose a tag to compare
@NickCraver NickCraver released this 10 Jan 21:50
· 149 commits to main since this release
  • Adds: Nullable reference type annotations (#2041 by @NickCraver)
    • Adds annotations themselves for nullability to everything in the library
    • Fixes a few internal edge cases that will now throw proper errors (rather than a downstream null reference)
    • Fixes inconsistencies with null vs. empty array returns (preferring an not-null empty array in those edge cases)
    • Note: does not increment a major version (as these are warnings to consumers), because: they're warnings (errors are opt-in), removing obsolete types with a 3.0 rev would be binary breaking (this isn't), and reving to 3.0 would cause binding redirect pain for consumers. Bumping from 2.5 to 2.6 only for this change.
  • Adds: Support for COPY with .KeyCopy()/.KeyCopyAsync() (#2064 by @Avital-Fine)
  • Adds: Support for LMOVE with .ListMove()/.ListMoveAsync() (#2065 by @Avital-Fine)
  • Adds: Support for ZRANDMEMBER with .SortedSetRandomMember()/.SortedSetRandomMemberAsync(), .SortedSetRandomMembers()/.SortedSetRandomMembersAsync(), and .SortedSetRandomMembersWithScores()/.SortedSetRandomMembersWithScoresAsync() (#2076 by @Avital-Fine)
  • Adds: Support for SMISMEMBER with .SetContains()/.SetContainsAsync() (#2077 by @Avital-Fine)
  • Adds: Support for ZDIFF, ZDIFFSTORE, ZINTER, ZINTERCARD, and ZUNION with .SortedSetCombine()/.SortedSetCombineAsync(), .SortedSetCombineWithScores()/.SortedSetCombineWithScoresAsync(), and .SortedSetIntersectionLength()/.SortedSetIntersectionLengthAsync() (#2075 by @Avital-Fine)
  • Adds: Support for SINTERCARD with .SetIntersectionLength()/.SetIntersectionLengthAsync() (#2078 by @Avital-Fine)
  • Adds: Support for LPOS with .ListPosition()/.ListPositionAsync() and .ListPositions()/.ListPositionsAsync() (#2080 by @slorello89)
  • Adds: Support for ZMSCORE with .SortedSetScores()/.SortedSetScoresAsync() (#2082 by @ttingen)
  • Adds: Support for NX | XX | GT | LT to EXPIRE, EXPIREAT, PEXPIRE, and PEXPIREAT with .KeyExpire()/.KeyExpireAsync() (#2083 by @Avital-Fine)
  • Adds: Support for EXPIRETIME, and PEXPIRETIME with .KeyExpireTime()/.KeyExpireTimeAsync() (#2083 by @Avital-Fine)
  • Fix: For streams, properly hash XACK, XCLAIM, and XPENDING in cluster scenarios to eliminate MOVED retries (#2085 by @nielsderdaele)
  • Adds: Support for OBJECT REFCOUNT with .KeyRefCount()/.KeyRefCountAsync() (#2087 by @Avital-Fine)
  • Adds: Support for OBJECT ENCODING with .KeyEncoding()/.KeyEncodingAsync() (#2088 by @Avital-Fine)
  • Adds: Support for GEOSEARCH with .GeoSearch()/.GeoSearchAsync() (#2089 by @slorello89)
  • Adds: Support for GEOSEARCHSTORE with .GeoSearchAndStore()/.GeoSearchAndStoreAsync() (#2089 by @slorello89)
  • Adds: Support for HRANDFIELD with .HashRandomField()/.HashRandomFieldAsync(), .HashRandomFields()/.HashRandomFieldsAsync(), and .HashRandomFieldsWithValues()/.HashRandomFieldsWithValuesAsync() (#2090 by @slorello89)
  • Adds: Support for LMPOP with .ListLeftPop()/.ListLeftPopAsync() and .ListRightPop()/.ListRightPopAsync() (#2094 by @slorello89)
  • Adds: Support for ZMPOP with .SortedSetPop()/.SortedSetPopAsync() (#2094 by @slorello89)
  • Adds: Support for XAUTOCLAIM with .StreamAutoClaim()/.StreamAutoClaimAsync() and .StreamAutoClaimIdsOnly()/.StreamAutoClaimIdsOnlyAsync() (#2095 by @ttingen)
  • Fix #2071: Add .StringSet()/.StringSetAsync() overloads for source compat broken for 1 case in 2.5.61 (#2098 by @NickCraver)
  • Fix #2086: Correct HashSlot calculations for XREAD and XREADGROUP commands (#2093 by @nielsderdaele)
  • Adds: Support for LCS with .StringLongestCommonSubsequence()/.StringLongestCommonSubsequence(), .StringLongestCommonSubsequenceLength()/.StringLongestCommonSubsequenceLengthAsync(), and .StringLongestCommonSubsequenceWithMatches()/.StringLongestCommonSubsequenceWithMatchesAsync() (#2104 by @Avital-Fine)
  • Adds: Support for OBJECT FREQ with .KeyFrequency()/.KeyFrequencyAsync() (#2105 by @Avital-Fine)
  • Performance: Avoids allocations when computing cluster hash slots or testing key equality (#2110 by @mgravell)
  • Adds: Support for SORT_RO with .Sort()/.SortAsync() (#2111 by @slorello89)
  • Adds: Support for BIT | BYTE to BITCOUNT and BITPOS with .StringBitCount()/.StringBitCountAsync() and .StringBitPosition()/.StringBitPositionAsync() (#2116 by @Avital-Fine)
  • Adds: Support for pub/sub payloads that are unary arrays (#2118 by @mgravell)
  • Fix: Sentinel timer race during dispose (#2133 by @ewisuri)
  • Adds: Support for GT, LT, and CH on ZADD with .SortedSetAdd()/.SortedSetAddAsync() and .SortedSetUpdate()/.SortedSetUpdateAsync() (#2136 by @Avital-Fine)
  • Adds: Support for COMMAND COUNT, COMMAND GETKEYS, and COMMAND LIST, with .CommandCount()/.CommandCountAsync(), .CommandGetKeys()/.CommandGetKeysAsync(), and .CommandList()/.CommandListAsync() (#2143 by @shacharPash)