[Groonga-commit] groonga/groonga [master] table_create: add --normalizer option

Back to archive index

Kouhei Sutou null+****@clear*****
Mon Dec 17 13:56:57 JST 2012


Kouhei Sutou	2012-12-17 13:56:57 +0900 (Mon, 17 Dec 2012)

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

  Log:
    table_create: add --normalizer option
    
    dump command also supports --normalizer option.
    
    TODO: grndump in rroonga should also support --normalizer option.

  Added files:
    test/command/suite/table_create/normalizer/auto/utf8.expected
    test/command/suite/table_create/normalizer/auto/utf8.test
    test/command/suite/table_create/normalizer/nfkc51/utf8.expected
    test/command/suite/table_create/normalizer/nfkc51/utf8.test
    test/command/suite/table_create/normalizer/nonexistent.expected
    test/command/suite/table_create/normalizer/nonexistent.test
  Modified files:
    lib/proc.c

  Modified: lib/proc.c (+13 -1)
===================================================================
--- lib/proc.c    2012-12-14 21:44:57 +0900 (981ec58)
+++ lib/proc.c    2012-12-17 13:56:57 +0900 (13fe1ce)
@@ -1104,6 +1104,11 @@ proc_table_create(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_d
                        GRN_INFO_DEFAULT_TOKENIZER,
                        grn_ctx_get(ctx, GRN_TEXT_VALUE(VAR(4)),
                                    GRN_TEXT_LEN(VAR(4))));
+      grn_obj_set_info(ctx, table,
+                       GRN_INFO_NORMALIZER,
+                       grn_ctx_get(ctx,
+                                   GRN_TEXT_VALUE(VAR(5)),
+                                   GRN_TEXT_LEN(VAR(5))));
       grn_obj_unlink(ctx, table);
     }
   } else {
@@ -2344,6 +2349,7 @@ dump_table(grn_ctx *ctx, grn_obj *outbuf, grn_obj *table,
   grn_obj *domain = NULL, *range = NULL;
   grn_obj_flags default_flags = GRN_OBJ_PERSISTENT;
   grn_obj *default_tokenizer;
+  grn_obj *normalizer;
   grn_obj buf;
 
   switch (table->header.type) {
@@ -2390,6 +2396,11 @@ dump_table(grn_ctx *ctx, grn_obj *outbuf, grn_obj *table,
     GRN_TEXT_PUTS(ctx, outbuf, " --default_tokenizer ");
     dump_obj_name(ctx, outbuf, default_tokenizer);
   }
+  normalizer = grn_obj_get_info(ctx, table, GRN_INFO_NORMALIZER, NULL);
+  if (normalizer) {
+    GRN_TEXT_PUTS(ctx, outbuf, " --normalizer ");
+    dump_obj_name(ctx, outbuf, normalizer);
+  }
 
   GRN_TEXT_PUTC(ctx, outbuf, '\n');
 
@@ -3376,7 +3387,8 @@ grn_db_init_builtin_query(grn_ctx *ctx)
   DEF_VAR(vars[2], "key_type");
   DEF_VAR(vars[3], "value_type");
   DEF_VAR(vars[4], "default_tokenizer");
-  DEF_COMMAND("table_create", proc_table_create, 5, vars);
+  DEF_VAR(vars[5], "normalizer");
+  DEF_COMMAND("table_create", proc_table_create, 6, vars);
 
   DEF_VAR(vars[0], "name");
   DEF_COMMAND("table_remove", proc_table_remove, 1, vars);

  Added: test/command/suite/table_create/normalizer/auto/utf8.expected (+61 -0) 100644
===================================================================
--- /dev/null
+++ test/command/suite/table_create/normalizer/auto/utf8.expected    2012-12-17 13:56:57 +0900 (d06bbbc)
@@ -0,0 +1,61 @@
+table_create Terms TABLE_PAT_KEY ShortText   --normalizer NormalizerAuto
+[[0,0.0,0.0],true]
+table_create Movies TABLE_NO_KEY
+[[0,0.0,0.0],true]
+column_create Movies name COLUMN_SCALAR ShortText
+[[0,0.0,0.0],true]
+column_create Terms movies_name COLUMN_INDEX Movies name
+[[0,0.0,0.0],true]
+load --table Movies
+[
+{"name": "Seven Samurai"},
+{"name": "The Last Samurai"}
+]
+[[0,0.0,0.0],2]
+select Movies --match_columns name --query seven
+[
+  [
+    0,
+    0.0,
+    0.0
+  ],
+  [
+    [
+      [
+        1
+      ],
+      [
+        [
+          "_id",
+          "UInt32"
+        ],
+        [
+          "name",
+          "ShortText"
+        ]
+      ],
+      [
+        1,
+        "Seven Samurai"
+      ]
+    ]
+  ]
+]
+dump
+table_create Terms TABLE_PAT_KEY ShortText --normalizer NormalizerAuto
+table_create Movies TABLE_NO_KEY
+column_create Movies name COLUMN_SCALAR ShortText
+column_create Terms movies_name COLUMN_INDEX Movies name
+load --table Terms
+[
+["_key"],
+["seven samurai"],
+["the last samurai"]
+]
+load --table Movies
+[
+["_id","name"],
+[1,"Seven Samurai"],
+[2,"The Last Samurai"]
+]
+

  Added: test/command/suite/table_create/normalizer/auto/utf8.test (+17 -0) 100644
===================================================================
--- /dev/null
+++ test/command/suite/table_create/normalizer/auto/utf8.test    2012-12-17 13:56:57 +0900 (78434b6)
@@ -0,0 +1,17 @@
+table_create Terms TABLE_PAT_KEY ShortText \
+  --normalizer NormalizerAuto
+
+table_create Movies TABLE_NO_KEY
+column_create Movies name COLUMN_SCALAR ShortText
+
+column_create Terms movies_name COLUMN_INDEX Movies name
+
+load --table Movies
+[
+{"name": "Seven Samurai"},
+{"name": "The Last Samurai"}
+]
+
+select Movies --match_columns name --query seven
+
+dump

  Added: test/command/suite/table_create/normalizer/nfkc51/utf8.expected (+61 -0) 100644
===================================================================
--- /dev/null
+++ test/command/suite/table_create/normalizer/nfkc51/utf8.expected    2012-12-17 13:56:57 +0900 (d454184)
@@ -0,0 +1,61 @@
+table_create Terms TABLE_PAT_KEY ShortText   --normalizer NormalizerNFKC51
+[[0,0.0,0.0],true]
+table_create Movies TABLE_NO_KEY
+[[0,0.0,0.0],true]
+column_create Movies name COLUMN_SCALAR ShortText
+[[0,0.0,0.0],true]
+column_create Terms movies_name COLUMN_INDEX Movies name
+[[0,0.0,0.0],true]
+load --table Movies
+[
+{"name": "Seven Samurai"},
+{"name": "The Last Samurai"}
+]
+[[0,0.0,0.0],2]
+select Movies --match_columns name --query seven
+[
+  [
+    0,
+    0.0,
+    0.0
+  ],
+  [
+    [
+      [
+        1
+      ],
+      [
+        [
+          "_id",
+          "UInt32"
+        ],
+        [
+          "name",
+          "ShortText"
+        ]
+      ],
+      [
+        1,
+        "Seven Samurai"
+      ]
+    ]
+  ]
+]
+dump
+table_create Terms TABLE_PAT_KEY ShortText --normalizer NormalizerNFKC51
+table_create Movies TABLE_NO_KEY
+column_create Movies name COLUMN_SCALAR ShortText
+column_create Terms movies_name COLUMN_INDEX Movies name
+load --table Terms
+[
+["_key"],
+["seven samurai"],
+["the last samurai"]
+]
+load --table Movies
+[
+["_id","name"],
+[1,"Seven Samurai"],
+[2,"The Last Samurai"]
+]
+

  Added: test/command/suite/table_create/normalizer/nfkc51/utf8.test (+17 -0) 100644
===================================================================
--- /dev/null
+++ test/command/suite/table_create/normalizer/nfkc51/utf8.test    2012-12-17 13:56:57 +0900 (c4771fa)
@@ -0,0 +1,17 @@
+table_create Terms TABLE_PAT_KEY ShortText \
+  --normalizer NormalizerNFKC51
+
+table_create Movies TABLE_NO_KEY
+column_create Movies name COLUMN_SCALAR ShortText
+
+column_create Terms movies_name COLUMN_INDEX Movies name
+
+load --table Movies
+[
+{"name": "Seven Samurai"},
+{"name": "The Last Samurai"}
+]
+
+select Movies --match_columns name --query seven
+
+dump

  Added: test/command/suite/table_create/normalizer/nonexistent.expected (+61 -0) 100644
===================================================================
--- /dev/null
+++ test/command/suite/table_create/normalizer/nonexistent.expected    2012-12-17 13:56:57 +0900 (d97e89e)
@@ -0,0 +1,61 @@
+table_create Terms TABLE_PAT_KEY ShortText   --normalizer NormalizerNonexistent
+[[0,0.0,0.0],true]
+table_create Movies TABLE_NO_KEY
+[[0,0.0,0.0],true]
+column_create Movies name COLUMN_SCALAR ShortText
+[[0,0.0,0.0],true]
+column_create Terms movies_name COLUMN_INDEX Movies name
+[[0,0.0,0.0],true]
+load --table Movies
+[
+{"name": "Seven Samurai"},
+{"name": "The Last Samurai"}
+]
+[[0,0.0,0.0],2]
+select Terms --output_columns _key --limit -1
+[
+  [
+    0,
+    0.0,
+    0.0
+  ],
+  [
+    [
+      [
+        2
+      ],
+      [
+        [
+          "_key",
+          "ShortText"
+        ]
+      ],
+      [
+        "Seven Samurai"
+      ],
+      [
+        "The Last Samurai"
+      ]
+    ]
+  ]
+]
+select Movies --match_columns name --query seven
+[[0,0.0,0.0],[[[0],[["_id","UInt32"],["name","ShortText"]]]]]
+dump
+table_create Terms TABLE_PAT_KEY ShortText
+table_create Movies TABLE_NO_KEY
+column_create Movies name COLUMN_SCALAR ShortText
+column_create Terms movies_name COLUMN_INDEX Movies name
+load --table Terms
+[
+["_key"],
+["Seven Samurai"],
+["The Last Samurai"]
+]
+load --table Movies
+[
+["_id","name"],
+[1,"Seven Samurai"],
+[2,"The Last Samurai"]
+]
+

  Added: test/command/suite/table_create/normalizer/nonexistent.test (+19 -0) 100644
===================================================================
--- /dev/null
+++ test/command/suite/table_create/normalizer/nonexistent.test    2012-12-17 13:56:57 +0900 (4cb12a4)
@@ -0,0 +1,19 @@
+table_create Terms TABLE_PAT_KEY ShortText \
+  --normalizer NormalizerNonexistent
+
+table_create Movies TABLE_NO_KEY
+column_create Movies name COLUMN_SCALAR ShortText
+
+column_create Terms movies_name COLUMN_INDEX Movies name
+
+load --table Movies
+[
+{"name": "Seven Samurai"},
+{"name": "The Last Samurai"}
+]
+
+select Terms --output_columns _key --limit -1
+
+select Movies --match_columns name --query seven
+
+dump
-------------- next part --------------
HTML����������������������������...
Download 



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