[Groonga-commit] groonga/groonga at 741ff14 [master] schema: support outputting value type

Back to archive index

Kouhei Sutou null+****@clear*****
Tue Oct 20 11:17:57 JST 2015


Kouhei Sutou	2015-10-20 11:17:57 +0900 (Tue, 20 Oct 2015)

  New Revision: 741ff14407657a745091ddda39ee6b44f7a255e7
  https://github.com/groonga/groonga/commit/741ff14407657a745091ddda39ee6b44f7a255e7

  Message:
    schema: support outputting value type

  Added files:
    test/command/suite/schema/tables/value_type/type.test
  Copied files:
    test/command/suite/schema/tables/array.expected
      (from test/command/suite/schema/array.expected)
    test/command/suite/schema/tables/hash_table.expected
      (from test/command/suite/schema/hash_table.expected)
    test/command/suite/schema/tables/hash_table.test
      (from test/command/suite/schema/hash_table.test)
  Modified files:
    lib/proc.c
  Renamed files:
    test/command/suite/schema/tables/array.test
      (from test/command/suite/schema/array.test)
    test/command/suite/schema/tables/value_type/reference.expected
      (from test/command/suite/schema/hash_table.expected)
    test/command/suite/schema/tables/value_type/reference.test
      (from test/command/suite/schema/hash_table.test)
    test/command/suite/schema/tables/value_type/type.expected
      (from test/command/suite/schema/array.expected)

  Modified: lib/proc.c (+36 -1)
===================================================================
--- lib/proc.c    2015-10-20 11:00:03 +0900 (f908c3a)
+++ lib/proc.c    2015-10-20 11:17:57 +0900 (d12ac8f)
@@ -7496,6 +7496,38 @@ proc_schema_table_output_key_type(grn_ctx *ctx, grn_obj *table)
 }
 
 static void
+proc_schema_table_output_value_type(grn_ctx *ctx, grn_obj *table)
+{
+  grn_obj *value_type = NULL;
+  grn_id range = GRN_ID_NIL;
+
+  if (table->header.type != GRN_TABLE_DAT_KEY) {
+    range = grn_obj_get_range(ctx, table);
+  }
+  if (range != GRN_ID_NIL) {
+    value_type = grn_ctx_at(ctx, range);
+  }
+  if (!value_type) {
+    GRN_OUTPUT_NULL();
+    return;
+  }
+
+  GRN_OUTPUT_MAP_OPEN("value_type", 2);
+
+  GRN_OUTPUT_CSTR("name");
+  proc_schema_output_name(ctx, value_type);
+
+  GRN_OUTPUT_CSTR("type");
+  if (grn_obj_is_table(ctx, value_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;
@@ -7516,7 +7548,7 @@ proc_schema_tables(grn_ctx *ctx)
 
     proc_schema_output_name(ctx, table);
 
-    GRN_OUTPUT_MAP_OPEN("table", 3);
+    GRN_OUTPUT_MAP_OPEN("table", 4);
 
     GRN_OUTPUT_CSTR("name");
     proc_schema_output_name(ctx, table);
@@ -7527,6 +7559,9 @@ proc_schema_tables(grn_ctx *ctx)
     GRN_OUTPUT_CSTR("key_type");
     proc_schema_table_output_key_type(ctx, table);
 
+    GRN_OUTPUT_CSTR("value_type");
+    proc_schema_table_output_value_type(ctx, table);
+
     GRN_OUTPUT_MAP_CLOSE();
   }
   GRN_OUTPUT_MAP_CLOSE();

  Copied: test/command/suite/schema/tables/array.expected (+2 -1) 98%
===================================================================
--- test/command/suite/schema/array.expected    2015-10-20 11:00:03 +0900 (316d7e9)
+++ test/command/suite/schema/tables/array.expected    2015-10-20 11:17:57 +0900 (247bc89)
@@ -153,7 +153,8 @@ schema
       "Logs": {
         "name": "Logs",
         "type": "array",
-        "key_type": null
+        "key_type": null,
+        "value_type": null
       }
     }
   }

  Renamed: test/command/suite/schema/tables/array.test (+0 -0) 100%
===================================================================

  Copied: test/command/suite/schema/tables/hash_table.expected (+2 -1) 98%
===================================================================
--- test/command/suite/schema/hash_table.expected    2015-10-20 11:00:03 +0900 (8cc1c85)
+++ test/command/suite/schema/tables/hash_table.expected    2015-10-20 11:17:57 +0900 (992fd83)
@@ -156,7 +156,8 @@ schema
         "key_type": {
           "name": "ShortText",
           "type": "type"
-        }
+        },
+        "value_type": null
       }
     }
   }

  Copied: test/command/suite/schema/tables/hash_table.test (+0 -0) 100%
===================================================================

  Renamed: test/command/suite/schema/tables/value_type/reference.expected (+13 -1) 92%
===================================================================
--- test/command/suite/schema/hash_table.expected    2015-10-20 11:00:03 +0900 (8cc1c85)
+++ test/command/suite/schema/tables/value_type/reference.expected    2015-10-20 11:17:57 +0900 (7e6689a)
@@ -1,5 +1,7 @@
 table_create Users TABLE_HASH_KEY ShortText
 [[0,0.0,0.0],true]
+table_create Logs TABLE_NO_KEY --value_type Users
+[[0,0.0,0.0],true]
 schema
 [
   [
@@ -150,13 +152,23 @@ schema
       }
     },
     "tables": {
+      "Logs": {
+        "name": "Logs",
+        "type": "array",
+        "key_type": null,
+        "value_type": {
+          "name": "Users",
+          "type": "reference"
+        }
+      },
       "Users": {
         "name": "Users",
         "type": "hash table",
         "key_type": {
           "name": "ShortText",
           "type": "type"
-        }
+        },
+        "value_type": null
       }
     }
   }

  Renamed: test/command/suite/schema/tables/value_type/reference.test (+2 -0) 50%
===================================================================
--- test/command/suite/schema/hash_table.test    2015-10-20 11:00:03 +0900 (c96decf)
+++ test/command/suite/schema/tables/value_type/reference.test    2015-10-20 11:17:57 +0900 (afdda72)
@@ -1,3 +1,5 @@
 table_create Users TABLE_HASH_KEY ShortText
 
+table_create Logs TABLE_NO_KEY --value_type Users
+
 schema

  Renamed: test/command/suite/schema/tables/value_type/type.expected (+6 -2) 95%
===================================================================
--- test/command/suite/schema/array.expected    2015-10-20 11:00:03 +0900 (316d7e9)
+++ test/command/suite/schema/tables/value_type/type.expected    2015-10-20 11:17:57 +0900 (b216de7)
@@ -1,4 +1,4 @@
-table_create Logs TABLE_NO_KEY
+table_create Logs TABLE_NO_KEY --value_type Int32
 [[0,0.0,0.0],true]
 schema
 [
@@ -153,7 +153,11 @@ schema
       "Logs": {
         "name": "Logs",
         "type": "array",
-        "key_type": null
+        "key_type": null,
+        "value_type": {
+          "name": "Int32",
+          "type": "type"
+        }
       }
     }
   }

  Added: test/command/suite/schema/tables/value_type/type.test (+3 -0) 100644
===================================================================
--- /dev/null
+++ test/command/suite/schema/tables/value_type/type.test    2015-10-20 11:17:57 +0900 (6738174)
@@ -0,0 +1,3 @@
+table_create Logs TABLE_NO_KEY --value_type Int32
+
+schema
-------------- next part --------------
HTML����������������������������...
Download 



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