[Groonga-commit] groonga/groonga at 8060bf5 [master] Add support for dumping binary data

Zurück zum Archiv-Index
Kouhei Sutou null+****@clear*****
Fri Feb 1 13:00:00 JST 2019


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>


More information about the Groonga-commit mailing list
Zurück zum Archiv-Index