[Groonga-commit] groonga/groonga at 884084d [master] pat: show key

Back to archive index

Kouhei Sutou null+****@clear*****
Mon Nov 2 09:51:31 JST 2015


Kouhei Sutou	2015-11-02 09:51:31 +0900 (Mon, 02 Nov 2015)

  New Revision: 884084d6b6c0d555038ded0f9e61ea2636a2678e
  https://github.com/groonga/groonga/commit/884084d6b6c0d555038ded0f9e61ea2636a2678e

  Message:
    pat: show key

  Modified files:
    lib/pat.c

  Modified: lib/pat.c (+41 -29)
===================================================================
--- lib/pat.c    2015-11-02 09:41:27 +0900 (3fd5f94)
+++ lib/pat.c    2015-11-02 09:51:31 +0900 (59c9df5)
@@ -108,35 +108,6 @@ enum {
 
 /* patricia array operation */
 
-void
-grn_p_pat_node(grn_ctx *ctx, pat_node *node)
-{
-  if (!node) {
-    printf("#<pat_node:(null)>\n");
-    return;
-  }
-
-  printf("#<pat_node:%p "
-         "left:%u "
-         "right:%u "
-         "deleting:%s "
-         "immediate:%s "
-         "length:%u "
-         "nth-byte:%u "
-         "nth-bit:%u "
-         "terminated:%s"
-         ">\n",
-         node,
-         node->lr[0],
-         node->lr[1],
-         PAT_DEL(node) ? "true" : "false",
-         PAT_IMD(node) ? "true" : "false",
-         PAT_LEN(node),
-         PAT_CHK(node) >> 4,
-         (PAT_CHK(node) >> 1) & 0x7,
-         (PAT_CHK(node) & 0x1) ? "true" : "false");
-}
-
 #define PAT_AT(pat,id,n) do {\
   int flags = 0;\
   GRN_IO_ARRAY_AT(pat->io, segment_pat, id, &flags, n);\
@@ -264,6 +235,47 @@ pat_node_set_key(grn_ctx *ctx, grn_pat *pat, pat_node *n, const uint8_t *key, un
   return GRN_SUCCESS;
 }
 
+/* utilities */
+void
+grn_p_pat_node(grn_ctx *ctx, grn_pat *pat, pat_node *node)
+{
+  uint8_t *key = NULL;
+
+  if (!node) {
+    printf("#<pat_node:(null)>\n");
+    return;
+  }
+
+  if (PAT_IMD(node)) {
+    key = (uint8_t *)&(node->key);
+  } else {
+    KEY_AT(pat, node->key, key, 0);
+  }
+
+  printf("#<pat_node:%p "
+         "left:%u "
+         "right:%u "
+         "deleting:%s "
+         "immediate:%s "
+         "length:%u "
+         "nth-byte:%u "
+         "nth-bit:%u "
+         "terminated:%s "
+         "key:<%.*s>"
+         ">\n",
+         node,
+         node->lr[0],
+         node->lr[1],
+         PAT_DEL(node) ? "true" : "false",
+         PAT_IMD(node) ? "true" : "false",
+         PAT_LEN(node),
+         PAT_CHK(node) >> 4,
+         (PAT_CHK(node) >> 1) & 0x7,
+         (PAT_CHK(node) & 0x1) ? "true" : "false",
+         PAT_LEN(node),
+         (char *)key);
+}
+
 /* delinfo operation */
 
 enum {
-------------- next part --------------
HTML����������������������������...
다운로드 



More information about the Groonga-commit mailing list
Back to archive index