[Groonga-commit] groonga/groonga at ae98718 [master] schema: extract key type output code as a function

Back to archive index

Kouhei Sutou null+****@clear*****
Tue Oct 20 11:00:03 JST 2015


Kouhei Sutou	2015-10-20 11:00:03 +0900 (Tue, 20 Oct 2015)

  New Revision: ae98718c9310d7ec839a9525210509682cfbb858
  https://github.com/groonga/groonga/commit/ae98718c9310d7ec839a9525210509682cfbb858

  Message:
    schema: extract key type output code as a function

  Modified files:
    lib/proc.c

  Modified: lib/proc.c (+31 -23)
===================================================================
--- lib/proc.c    2015-10-20 10:57:41 +0900 (7206d6c)
+++ lib/proc.c    2015-10-20 11:00:03 +0900 (f908c3a)
@@ -7467,6 +7467,35 @@ proc_schema_table_type_name(grn_ctx *ctx, grn_obj *table)
 }
 
 static void
+proc_schema_table_output_key_type(grn_ctx *ctx, grn_obj *table)
+{
+  grn_obj *key_type = NULL;
+
+  if (table->header.type != GRN_TABLE_NO_KEY &&
+      table->header.domain != GRN_ID_NIL) {
+    key_type = grn_ctx_at(ctx, table->header.domain);
+  }
+  if (!key_type) {
+    GRN_OUTPUT_NULL();
+    return;
+  }
+
+  GRN_OUTPUT_MAP_OPEN("key_type", 2);
+
+  GRN_OUTPUT_CSTR("name");
+  proc_schema_output_name(ctx, key_type);
+
+  GRN_OUTPUT_CSTR("type");
+  if (grn_obj_is_table(ctx, key_type)) {
+    GRN_OUTPUT_CSTR("reference");
+  } else {
+    GRN_OUTPUT_CSTR("type");
+  }
+
+  GRN_OUTPUT_MAP_CLOSE();
+}
+
+static void
 proc_schema_tables(grn_ctx *ctx)
 {
   grn_obj tables;
@@ -7482,13 +7511,12 @@ proc_schema_tables(grn_ctx *ctx)
   GRN_OUTPUT_MAP_OPEN("tables", n);
   for (i = 0; i < n; i++) {
     grn_obj *table;
-    grn_obj *key_type = NULL;
 
     table = GRN_PTR_VALUE_AT(&tables, i);
 
     proc_schema_output_name(ctx, table);
 
-    GRN_OUTPUT_MAP_OPEN("table", 2);
+    GRN_OUTPUT_MAP_OPEN("table", 3);
 
     GRN_OUTPUT_CSTR("name");
     proc_schema_output_name(ctx, table);
@@ -7497,27 +7525,7 @@ proc_schema_tables(grn_ctx *ctx)
     GRN_OUTPUT_CSTR(proc_schema_table_type_name(ctx, table));
 
     GRN_OUTPUT_CSTR("key_type");
-    if (table->header.type != GRN_TABLE_NO_KEY &&
-        table->header.domain != GRN_ID_NIL) {
-      key_type = grn_ctx_at(ctx, table->header.domain);
-    }
-    if (key_type) {
-      GRN_OUTPUT_MAP_OPEN("key_type", 2);
-
-      GRN_OUTPUT_CSTR("name");
-      proc_schema_output_name(ctx, key_type);
-
-      GRN_OUTPUT_CSTR("type");
-      if (grn_obj_is_table(ctx, key_type)) {
-        GRN_OUTPUT_CSTR("reference");
-      } else {
-        GRN_OUTPUT_CSTR("type");
-      }
-
-      GRN_OUTPUT_MAP_CLOSE();
-    } else {
-      GRN_OUTPUT_NULL();
-    }
+    proc_schema_table_output_key_type(ctx, table);
 
     GRN_OUTPUT_MAP_CLOSE();
   }
-------------- next part --------------
HTML����������������������������...
下载 



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