{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":637728352,"defaultBranch":"main","name":"librdb","ownerLogin":"redis","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-05-08T09:34:25.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1529926?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1683630445.0","currentOid":""},"activityList":{"items":[{"before":"9a20f493f8c040c50f34cfa8de3634f984a7d0cf","after":"2fdfc0c2bc914d643fe3f86e6715aeb843d8966e","ref":"refs/heads/main","pushedAt":"2024-09-10T14:42:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Makefile makes git submodule update if hiredis is missing (#56)\n\nThis PR introduces a Makefile rule that ensures the hiredis dependency\r\nis present before the build process. Specifically, it checks for the existence\r\nof ./deps/hiredis/hiredis.h and, if missing, automatically initializes and\r\nupdates the hiredis submodule by running the command:\r\ngit submodule update --init deps/hiredis","shortMessageHtmlLink":"Makefile makes git submodule update if hiredis is missing (#56)"}},{"before":"efff6b55af846544c5c018327f8f9d1b5eac17f1","after":"9a20f493f8c040c50f34cfa8de3634f984a7d0cf","ref":"refs/heads/main","pushedAt":"2024-08-18T09:29:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Resolve Compilation Errors with ARM GCC on Ubuntu 22.04 (#54)\n\nThe issues were related to cross-platform compatibility of printf format arguments.","shortMessageHtmlLink":"Resolve Compilation Errors with ARM GCC on Ubuntu 22.04 (#54)"}},{"before":"f953088a61ebc4aa9ce1f978dbe996cf6cc6872f","after":"efff6b55af846544c5c018327f8f9d1b5eac17f1","ref":"refs/heads/main","pushedAt":"2024-08-11T08:12:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"RESP2REDIS: Should not fail trying to load empty module (#53)\n\nIf RDB2RESP was configured to \"supportRestoreModuleAux\" and generates\r\nRESTOREMODAUX commands, currently relevant only to Redis enterprise,\r\nthen if RDB was generated by a server with some module, but user didn't\r\nmake any use of that module, attempting to play it to another server that\r\nwasn't loaded with that module, the RDB parser will get fail. This is because\r\nthe module always store something in the AUX field, and the RDB parser will try\r\nto load it.\r\n\r\nIn order to overcome this issue, A module that its AUX payload is less than\r\n15 Bytes (including RDB version and checksum) counted as AUX field of an empty\r\nModule (not in use), then the parser, when restoring the empty module, it\r\nshould ignore returned error: \"-ERR Module X not found...\"\r\n\r\nFew changes were made to support it:\r\n- Propagate restoreSize to RESP2REDIS handlers.\r\n- ReaderResp gets now error-callback which can indicate to mask given error.\r\n- RESP2REDIS indicates to ignore RESTOREMODAUX error message of type \"-ERR Module .. not found ...\"\r\n- Added tests accordingly.\r\n\r\nAdditionally added timeout to recv() from redis to avoid blocking forever. Irrelevant to this fix.","shortMessageHtmlLink":"RESP2REDIS: Should not fail trying to load empty module (#53)"}},{"before":"b401df1e7025501c24f0c852aa32f6900fd888f7","after":"f953088a61ebc4aa9ce1f978dbe996cf6cc6872f","ref":"refs/heads/main","pushedAt":"2024-07-24T20:23:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Support RDB_TYPE_HASH_METADATA relative time optimization (#51)\n\nAdapt librdb to modified layout of RDB_TYPE_HASH_METADATA which \r\nnow store field's relative TTLs instead of absolute expiration time.","shortMessageHtmlLink":"Support RDB_TYPE_HASH_METADATA relative time optimization (#51)"}},{"before":"5e4f7a290b44783794d9d366cbcfbe447f82ec8b","after":"b401df1e7025501c24f0c852aa32f6900fd888f7","ref":"refs/heads/main","pushedAt":"2024-07-21T07:17:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Add `--show-progress` to rdb-cli options (#50)","shortMessageHtmlLink":"Add --show-progress to rdb-cli options (#50)"}},{"before":"08757bf290bfba4435717da11594fda1c684bb1c","after":"5e4f7a290b44783794d9d366cbcfbe447f82ec8b","ref":"refs/heads/main","pushedAt":"2024-07-18T09:40:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Add new handlersToPrint + expiration filter (#49)\n\n* Expand API with RDBX_createHandlersToPrint() that support printout customization via\r\n arguments auxFmt and keyFmt. Can later further refined to printout of valueFmt\r\n by need, etc. Added also to rdb-cli.\r\n* Expand API with RDBX_createHandlersFilterExpired() to filter based whether a given\r\n key is expired. Added also to rdb-cli.","shortMessageHtmlLink":"Add new handlersToPrint + expiration filter (#49)"}},{"before":"9d584ea4c9f27ba36f1a1ff0d9f5862b51911d24","after":"08757bf290bfba4435717da11594fda1c684bb1c","ref":"refs/heads/main","pushedAt":"2024-07-11T11:17:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Add support to hash-field-expiration RDB_TYPE v2 (#48)\n\nRDB serialization of hashes with expiration on fields (aka. HFE) was modified\r\nto write also at the begining the minimum expiration time.\r\n\r\nFollowing this change, the new value will be digested but won't be propagated to\r\nthe callback handlers since it is actually a redundant information since each field\r\nalready \"reports\" its expiration time to handlers (This value will might be\r\nused in the future for optimization in the context of dumping directly\r\nfrom RDB to FLUSH without parsing the object).","shortMessageHtmlLink":"Add support to hash-field-expiration RDB_TYPE v2 (#48)"}},{"before":"46049a1ded849cd0987637f475eba762ae6f5e0b","after":"9d584ea4c9f27ba36f1a1ff0d9f5862b51911d24","ref":"refs/heads/main","pushedAt":"2024-06-17T04:59:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Add support to hash-field-expiration (7.4) (#47)\n\n* RDB_TYPE_HASH_METADATA - While RDB_TYPE_HASH keep key-value pairs to rdb file,\r\n this one keep key-value-expiry tuples such that the value of expiry cannot be \r\n bigger than 2^48-1.\r\n* RDB_TYPE_HASH_LISTPACK_EX - While RDB_TYPE_HASH_LISTPACK_EX keep in listpack \r\n pairs of key-value, this one keep key-value-expiry tuples such that the value \r\n of expiry cannot be bigger than 2^48-1.","shortMessageHtmlLink":"Add support to hash-field-expiration (7.4) (#47)"}},{"before":"581221f8e6cc9411586ae7217a906301ab24451d","after":"46049a1ded849cd0987637f475eba762ae6f5e0b","ref":"refs/heads/main","pushedAt":"2024-06-13T12:51:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Integrate python json parser as a service for testing (#46)\n\nOne of the outputs of librdb is JSON. Until now there was a naive testing code \r\nthat compared two json files, attempting to ignore JSON elements ordering. This \r\ncommit replaces it with a python service, run in the background, read JSON \r\nfilename from its STDIN, generates its signature by ignoring JSON elements order, \r\nand prints SHA256 signature to its STDOUT. test_common.c will fork this service. \r\nThe reason it is running as a service is to avoid the overhead of starting a new \r\nprocess for each evaluation and the intensive use of it.","shortMessageHtmlLink":"Integrate python json parser as a service for testing (#46)"}},{"before":"6c54c27f1c236f4811a89a4074ec3be0931b9207","after":"581221f8e6cc9411586ae7217a906301ab24451d","ref":"refs/heads/main","pushedAt":"2024-04-21T18:31:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Fix RESP parser - Allow Redis return empty array (#45)","shortMessageHtmlLink":"Fix RESP parser - Allow Redis return empty array (#45)"}},{"before":"2ffa3fba925d002156855a748dd16adcd9f5ee54","after":"6c54c27f1c236f4811a89a4074ec3be0931b9207","ref":"refs/heads/main","pushedAt":"2024-04-16T14:34:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Support rdb v12 (#44)\n\nUpdated mapping redis version 7.4 to v12.\r\nAdded tests to verify slot & db info in RDB. Extended also rdb-cli.\r\nSome refinement of json output.\r\nAdded test_not_support_future_rdb_version","shortMessageHtmlLink":"Support rdb v12 (#44)"}},{"before":"942f6f722eaedc63b0ad32c1c5ddc17df6ec3048","after":"2ffa3fba925d002156855a748dd16adcd9f5ee54","ref":"refs/heads/main","pushedAt":"2024-04-16T06:29:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Aggregate reported-errors up to 2kb (#42)","shortMessageHtmlLink":"Aggregate reported-errors up to 2kb (#42)"}},{"before":"3db691a924dab1c2416b0dcb44540b2edb1b0dd6","after":"942f6f722eaedc63b0ad32c1c5ddc17df6ec3048","ref":"refs/heads/main","pushedAt":"2024-04-09T13:14:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"rdb-cli - Close log file also on error (#41)\n\nAdded atexit(closeLogFileOnExit);","shortMessageHtmlLink":"rdb-cli - Close log file also on error (#41)"}},{"before":"26d0c4821b9aa19368a6c0bbac92bdfe3ef18899","after":"3db691a924dab1c2416b0dcb44540b2edb1b0dd6","ref":"refs/heads/main","pushedAt":"2024-04-09T13:14:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"On Send fail report Received error; Add MSG_NOSIGNAL (#43)\n\nIf error occurred while writing to the server. In this case the function\r\nwill try to read replies from the server. Maybe one of the replies will\r\ncontain an error message that explains why write got failed.\r\n\r\nIgnore SIGPIPE signal on write. Replaced writev() with sendmsg().","shortMessageHtmlLink":"On Send fail report Received error; Add MSG_NOSIGNAL (#43)"}},{"before":"df07dbc7914eced446c77afbdd4b7c6f3479681e","after":"26d0c4821b9aa19368a6c0bbac92bdfe3ef18899","ref":"refs/heads/main","pushedAt":"2024-01-04T09:06:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Run ci weekly (#38)\n\nConfigure CI to run weekly\r\nSimplify finalizeConfig() by letting the caller makes the state update of the parser.","shortMessageHtmlLink":"Run ci weekly (#38)"}},{"before":"46a463e2ad49f7d76fdb53a63e5ff97d0ffa6e99","after":"df07dbc7914eced446c77afbdd4b7c6f3479681e","ref":"refs/heads/main","pushedAt":"2023-12-11T15:37:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"fread() instead of read() + Add GNUC format validator (#37)\n\nThis commit attempts to reflect also part of the work from previous messy commit:\r\n1. Add GNUC format validator for RDB_log() and RDB_reportError()\r\n2. fread() instead of read() to improve performance.\r\n\r\n>> Add GNUC format validator for RDB_log() and RDB_reportError()**\r\nIn case of GNUC compiplation add attribute((format(printf, X, Y)))\r\nTo verify during compilation correctness of the provided FORMAT\r\nversus variadic arguments that follows.\r\n\r\n>> fread() instead of read() to improve performance**\r\nFollowing a preliminary benchmark that involved reading from a\r\nfile-descriptor (fd) I have found out that assisting openfd()\r\noutperform around ~50% better than using lower level read().\r\nThis is because when using bare read(), it makes multiple\r\nsystem-calls to read a small amount of data whereas fread()\r\nattempts to read a big chunk of data to user-space, even if\r\nrequested a small amount. I also tested using bare read() with\r\na buffer that i managed inside readerFileDesc.c and it reached\r\nSimilar results to fread().\r\n\r\nNote, the benchmark relied on librdb library that is integrated\r\ninto another utility (rl_rdbloader), the adjustment is relatively\r\nself-contained and provides a reliable indication of its\r\neffectiveness.","shortMessageHtmlLink":"fread() instead of read() + Add GNUC format validator (#37)"}},{"before":"22d52767ed979c2c89f2f904b3111864b66bc1b5","after":"46a463e2ad49f7d76fdb53a63e5ff97d0ffa6e99","ref":"refs/heads/main","pushedAt":"2023-12-11T12:36:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"open fd with fdopen() to improve performance (#36)\n\nOptimize reading from fd by using fdopen()","shortMessageHtmlLink":"open fd with fdopen() to improve performance (#36)"}},{"before":"22630eaa047b809711be25c201af1b01e2536d3f","after":"22d52767ed979c2c89f2f904b3111864b66bc1b5","ref":"refs/heads/main","pushedAt":"2023-12-07T09:07:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Fix WAIT_MORE_DATA during stream (#35)\n\nRequired to flush cache in the iterations of the loop that read global PEL as well.","shortMessageHtmlLink":"Fix WAIT_MORE_DATA during stream (#35)"}},{"before":"20f5f6483280d13f4befc999bfa4304875c4d474","after":"22630eaa047b809711be25c201af1b01e2536d3f","ref":"refs/heads/main","pushedAt":"2023-12-04T13:10:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Fix FD partial read (#34)\n\nIn case readFileDesc() read less than requested then required to continue to another iteration rather break.","shortMessageHtmlLink":"Fix FD partial read (#34)"}},{"before":"739bdfda18b9eda0adf611f3f4110adcba41e8f1","after":"20f5f6483280d13f4befc999bfa4304875c4d474","ref":"refs/heads/main","pushedAt":"2023-12-04T10:37:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Fix filedesc + Fix state transition of stream (#33)\n\n- Fix file descriptor reader. Was written naively without checking what happen if not all the data was read or for EINTR.\r\n- Fix wrong fall-through in the states of stream element.\r\nI will add tests on another commit.","shortMessageHtmlLink":"Fix filedesc + Fix state transition of stream (#33)"}},{"before":"dd1f828b20dedf69263af030b229fdf434b10c38","after":"739bdfda18b9eda0adf611f3f4110adcba41e8f1","ref":"refs/heads/main","pushedAt":"2023-11-26T12:59:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"RDB2RESP: Fix functions registration (#32)\n\nIn case of multiple levels registration of callbacks, RDB2RESP need to take\r\ncare to enforce that functions will be handled only by data-level (To simplify\r\nimplementation we avoid using FUNCTION RESTORE command and Instead, \r\nalways use FUNCTION LOAD command. It is expected that there won't be \r\nmany functions in the RDB file in which requires optimization).","shortMessageHtmlLink":"RDB2RESP: Fix functions registration (#32)"}},{"before":"c67456d762f6ef9fe49b5730ed53dd2a373bdfc8","after":"dd1f828b20dedf69263af030b229fdf434b10c38","ref":"refs/heads/main","pushedAt":"2023-11-13T12:52:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Adding valgrind to rdb-cli tests (#31)\n\nExtend tests that execute rdb-cli the option to run as well with valgrind.","shortMessageHtmlLink":"Adding valgrind to rdb-cli tests (#31)"}},{"before":"dbc2c24e19b94b361b4a01728a819572fb994e7f","after":"c67456d762f6ef9fe49b5730ed53dd2a373bdfc8","ref":"refs/heads/main","pushedAt":"2023-11-05T12:03:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"RDB2RESP: Fix memory PEXPIREAT leak (#30)","shortMessageHtmlLink":"RDB2RESP: Fix memory PEXPIREAT leak (#30)"}},{"before":"0c6c4ae3ce2245c7f078d840554d5ad201f713d7","after":"dbc2c24e19b94b361b4a01728a819572fb994e7f","ref":"refs/heads/main","pushedAt":"2023-11-05T09:06:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Fix XGROUP CREATE MKSTREAM dummyCG (#29)","shortMessageHtmlLink":"Fix XGROUP CREATE MKSTREAM dummyCG (#29)"}},{"before":"274ad8f5f0968341a4277783006e53000bbd69ee","after":"0c6c4ae3ce2245c7f078d840554d5ad201f713d7","ref":"refs/heads/main","pushedAt":"2023-11-02T08:25:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Fix module-Aux handling (#28)\n\n- parserRaw.c didn't init appropriately aggregation of bulks for module-aux. Refactor and call to aggReset().\r\n- module-aux could wrongly include REPLACE, ABSTTL, IDLETIME or FREQ flags.","shortMessageHtmlLink":"Fix module-Aux handling (#28)"}},{"before":"bc44cc2d446d233d73c3a9c4a859d8f711bb5ecf","after":"274ad8f5f0968341a4277783006e53000bbd69ee","ref":"refs/heads/main","pushedAt":"2023-11-01T13:02:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"RDB2RESP: Add single-db flag (#27)\n\nOn RDB2RESP, add singleDb flag. i.e., avoid using the SELECT command.\r\nIn turn all keys and data in the RDB will be stored in the default DB (index 0).\r\nThis approach can be helpful when dealing with scenarios such as data partitioned\r\ninto multiple DBs where you need to merge them into a single DB. Be cautious of\r\npotential key conflicts in such cases.\r\n\r\nAdd also makefile dependency for CLI to rebuild on each static librdb modification.","shortMessageHtmlLink":"RDB2RESP: Add single-db flag (#27)"}},{"before":"8d916c48020a316274fe8795dc4e31a02af2d70b","after":"bc44cc2d446d233d73c3a9c4a859d8f711bb5ecf","ref":"refs/heads/main","pushedAt":"2023-10-30T12:14:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tezc","name":"Ozan Tezcan","path":"/tezc","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17865367?s=80&v=4"},"commit":{"message":"Add SONAME, pkgconfig and fix makefile issues (#26)\n\nAdd SONAME, pkgconfig and fix makefile issues","shortMessageHtmlLink":"Add SONAME, pkgconfig and fix makefile issues (#26)"}},{"before":"dcc1eff17bf06e52f9981f1aaf89686551ef5fc4","after":"8d916c48020a316274fe8795dc4e31a02af2d70b","ref":"refs/heads/main","pushedAt":"2023-10-26T13:57:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"RESP2REDIS: Refine error reporting from server (#25)\n\nThe api of RESP writer (which attached to RDB2RESP) is rather simple as it expects a plain iovec. It is not sufficient when it comes to play the RESP against live server such as the case of respToRedisLoader. In case of an error from the server it is desired to report an informative message to the user of the problematic command and key. librdb does have mechanism to report on the problematic command even in case of pipeline of commands but it reports the entire command as a raw data with not distinction down to command and key.\r\n\r\nExtend API to pass as well command and key to RESP writer on start of a new RESP command.\r\n(Another motivation to this change is to be aligned with RE Syncer code that expects specific formatted errors)\r\nRefine and optimize ignoreChecksum flag.","shortMessageHtmlLink":"RESP2REDIS: Refine error reporting from server (#25)"}},{"before":"c212c7fe13ee3110361915bfd60db75d9b639b69","after":"dcc1eff17bf06e52f9981f1aaf89686551ef5fc4","ref":"refs/heads/main","pushedAt":"2023-10-19T10:30:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Fix crc64_init_thread_safe() (#24)\n\n* Fix crc64_init_thread_safe()\r\n* Have more accurate maxRawSize check\r\n* Update usage in README","shortMessageHtmlLink":"Fix crc64_init_thread_safe() (#24)"}},{"before":"22ce5222925a187f25f4b99c9e75051c31c1dc7b","after":"c212c7fe13ee3110361915bfd60db75d9b639b69","ref":"refs/heads/main","pushedAt":"2023-10-18T06:25:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"moticless","name":"Moti Cohen","path":"/moticless","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24944278?s=80&v=4"},"commit":{"message":"Support: stream, v12, -fvisibility, CI 5.0 6.0 6.2, make debug. Fix json enc (#22)\n\n- Support stream\r\n- Extend readerResp to be able reading bulk array (for Stream).\r\n- RDB2JSON: Fix encoding from \\x## to standard \\u00##\r\n- Make \"-fvisibility=hidden\" and static link rdb-cli with librdb\r\n- Run CI against redis 5.0,6.0,6.2 and unstable\r\n- Fix Module RESTORE for earlier redis versions\r\n- Added makefile rule \"debug\" to build with -O0\r\n- Make iovec macros more clear.\r\n- Support latest rdbversion 12.","shortMessageHtmlLink":"Support: stream, v12, -fvisibility, CI 5.0 6.0 6.2, make debug. Fix j…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEsi65XgA","startCursor":null,"endCursor":null}},"title":"Activity · redis/librdb"}