hedis 0.14.4 → 0.15.0
raw patch · 3 files changed
+34/−3 lines, 3 files
Files
- CHANGELOG +4/−0
- hedis.cabal +1/−1
- src/Database/Redis/ManualCommands.hs +29/−2
CHANGELOG view
@@ -1,5 +1,9 @@ # Changelog for Hedis +## 0.15.0++* PR #174, Issue #173. Hedis fails to decode xstreamInfo response in case when the stream is empty+ ## 0.14.3 * PR #171. Support GHC 9
hedis.cabal view
@@ -1,5 +1,5 @@ name: hedis-version: 0.14.4+version: 0.15.0 synopsis: Client library for the Redis datastore: supports full command set, pipelining.
src/Database/Redis/ManualCommands.hs view
@@ -1154,7 +1154,8 @@ -> m (f [XInfoGroupsResponse]) xinfoGroups stream = sendRequest ["XINFO", "GROUPS", stream] -data XInfoStreamResponse = XInfoStreamResponse+data XInfoStreamResponse + = XInfoStreamResponse { xinfoStreamLength :: Integer , xinfoStreamRadixTreeKeys :: Integer , xinfoStreamRadixTreeNodes :: Integer@@ -1162,12 +1163,29 @@ , xinfoStreamLastEntryId :: ByteString , xinfoStreamFirstEntry :: StreamsRecord , xinfoStreamLastEntry :: StreamsRecord- } deriving (Show, Eq)+ } + | XInfoStreamEmptyResponse+ { xinfoStreamLength :: Integer+ , xinfoStreamRadixTreeKeys :: Integer+ , xinfoStreamRadixTreeNodes :: Integer+ , xinfoStreamNumGroups :: Integer+ , xinfoStreamLastEntryId :: ByteString+ }+ deriving (Show, Eq) instance RedisResult XInfoStreamResponse where decode = decodeRedis5 <> decodeRedis6 where decodeRedis5 (MultiBulk (Just [+ Bulk (Just "length"),Integer xinfoStreamLength,+ Bulk (Just "radix-tree-keys"),Integer xinfoStreamRadixTreeKeys,+ Bulk (Just "radix-tree-nodes"),Integer xinfoStreamRadixTreeNodes,+ Bulk (Just "groups"),Integer xinfoStreamNumGroups,+ Bulk (Just "last-generated-id"),Bulk (Just xinfoStreamLastEntryId),+ Bulk (Just "first-entry"), Bulk Nothing ,+ Bulk (Just "last-entry"), Bulk Nothing ])) = do+ return XInfoStreamEmptyResponse{..}+ decodeRedis5 (MultiBulk (Just [ Bulk (Just "length"),Integer xinfoStreamLength, Bulk (Just "radix-tree-keys"),Integer xinfoStreamRadixTreeKeys, Bulk (Just "radix-tree-nodes"),Integer xinfoStreamRadixTreeNodes,@@ -1180,6 +1198,15 @@ return XInfoStreamResponse{..} decodeRedis5 a = Left a + decodeRedis6 (MultiBulk (Just [+ Bulk (Just "length"),Integer xinfoStreamLength,+ Bulk (Just "radix-tree-keys"),Integer xinfoStreamRadixTreeKeys,+ Bulk (Just "radix-tree-nodes"),Integer xinfoStreamRadixTreeNodes,+ Bulk (Just "last-generated-id"),Bulk (Just xinfoStreamLastEntryId),+ Bulk (Just "groups"),Integer xinfoStreamNumGroups,+ Bulk (Just "first-entry"), Bulk Nothing ,+ Bulk (Just "last-entry"), Bulk Nothing ])) = do+ return XInfoStreamEmptyResponse{..} decodeRedis6 (MultiBulk (Just [ Bulk (Just "length"),Integer xinfoStreamLength, Bulk (Just "radix-tree-keys"),Integer xinfoStreamRadixTreeKeys,