Kouhei Sutou 2019-02-01 13:00:00 +0900 (Fri, 01 Feb 2019) Revision: 8060bf5379650f432b3375ec6f4a145c53f162a5 https://github.com/groonga/groonga/commit/8060bf5379650f432b3375ec6f4a145c53f162a5 Message: Add support for dumping binary data Added files: test/command/suite/dump/record/binary_key.expected test/command/suite/dump/record/binary_key.test Modified files: lib/str.c Modified: lib/str.c (+12 -1) =================================================================== --- lib/str.c 2019-02-01 12:57:33 +0900 (68afe0d10) +++ lib/str.c 2019-02-01 13:00:00 +0900 (b4fd0963d) @@ -2256,7 +2256,18 @@ grn_text_esc(grn_ctx *ctx, grn_obj *buf, const char *s, unsigned int len) GRN_TEXT_PUTC(ctx, buf, '"'); for (e = s + len; s < e; s += l) { - if (!(l = grn_charlen(ctx, s, e))) { break; } + l = grn_charlen(ctx, s, e); + if (l == 0) { + rc = grn_bulk_write(ctx, buf, "\\u", 2); + if (rc != GRN_SUCCESS) { return rc; } + rc = grn_text_itoh(ctx, buf, (uint8_t)*s, 4); + if (rc != GRN_SUCCESS) { + GRN_BULK_INCR_LEN(buf, -2); + return rc; + } + l = 1; + continue; + } if (l == 1) { switch (*s) { case '"' : Added: test/command/suite/dump/record/binary_key.expected (+15 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/dump/record/binary_key.expected 2019-02-01 13:00:00 +0900 (935dd85c0) @@ -0,0 +1,15 @@ +table_create Data TABLE_HASH_KEY ShortText +[[0,0.0,0.0],true] +load --table Data +[ +{"_key": "\u0000\u0001\u0002"} +] +[[0,0.0,0.0],1] +dump +table_create Data TABLE_HASH_KEY ShortText + +load --table Data +[ +["_key"], +["\u0000\u0001\u0002"] +] Added: test/command/suite/dump/record/binary_key.test (+8 -0) 100644 =================================================================== --- /dev/null +++ test/command/suite/dump/record/binary_key.test 2019-02-01 13:00:00 +0900 (3e8696f55) @@ -0,0 +1,8 @@ +table_create Data TABLE_HASH_KEY ShortText + +load --table Data +[ +{"_key": "\u0000\u0001\u0002"} +] + +dump -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.osdn.me/mailman/archives/groonga-commit/attachments/20190201/4a25b517/attachment-0001.html>