[Groonga-mysql-commit] mroonga/mroonga [master] ensure set the default tokenizer length.

Back to archive index

null+****@clear***** null+****@clear*****
2011年 9月 25日 (日) 10:25:24 JST


Kouhei Sutou	2011-09-25 01:25:24 +0000 (Sun, 25 Sep 2011)

  New Revision: ffaa7f88a54a10008fc9768650dbf1fcc965a91b

  Log:
    ensure set the default tokenizer length.
    
    refs #592

  Modified files:
    mrn_sys.h
    mrn_table.cc
    mrn_table.h

  Modified: mrn_sys.h (+1 -0)
===================================================================
--- mrn_sys.h    2011-09-25 00:53:19 +0000 (468c867)
+++ mrn_sys.h    2011-09-25 01:25:24 +0000 (5e5d129)
@@ -36,6 +36,7 @@
 #define MRN_PAT_SUFFIX "_pat"
 #define MRN_COLUMN_NAME_ID "_id"
 #define MRN_COLUMN_NAME_SCORE "_score"
+#define MRN_TOKENIZER_DEFAULT "TokenBigram"
 
 /* functions */
 int mrn_hash_put(grn_ctx *ctx, grn_hash *hash, const char *key, void *value);

  Modified: mrn_table.cc (+14 -12)
===================================================================
--- mrn_table.cc    2011-09-25 00:53:19 +0000 (d3b4406)
+++ mrn_table.cc    2011-09-25 01:25:24 +0000 (aa8ec6d)
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2 -*- */
 /*
   Copyright(C) 2011 Kentoku SHIBA
   Copyright(C) 2011 Kouhei Sutou <kou****@clear*****>
@@ -57,8 +58,6 @@
 #define MRN_DEFAULT_LEN (sizeof(MRN_DEFAULT_STR) - 1)
 #define MRN_GROONGA_STR "GROONGA"
 #define MRN_GROONGA_LEN (sizeof(MRN_GROONGA_STR) - 1)
-#define MRN_DEFAULT_KEY_PARSER_STR "TokenBigram"
-#define MRN_DEFAULT_KEY_PARSER_LEN (sizeof(MRN_DEFAULT_KEY_PARSER_STR) - 1)
 
 extern HASH mrn_open_tables;
 extern pthread_mutex_t mrn_open_tables_mutex;
@@ -488,12 +487,13 @@ int mrn_add_index_param(MRN_SHARE *share, KEY *key_info, int i)
   {
     if (
       !(share->key_parser[i] = mrn_create_string(
-        MRN_DEFAULT_KEY_PARSER_STR,
-        MRN_DEFAULT_KEY_PARSER_LEN))
+        MRN_TOKENIZER_DEFAULT,
+        strlen(MRN_TOKENIZER_DEFAULT)))
     ) {
       error = HA_ERR_OUT_OF_MEM;
       goto error;
     }
+    share->key_parser_length[i] = strlen(share->key_parser[i]);
     DBUG_RETURN(0);
   }
   DBUG_PRINT("info", ("mroonga create comment string"));
@@ -553,14 +553,16 @@ int mrn_add_index_param(MRN_SHARE *share, KEY *key_info, int i)
     }
   }
 #endif
-  if (
-    !share->key_parser[i] &&
-    !(share->key_parser[i] = mrn_create_string(
-      MRN_DEFAULT_KEY_PARSER_STR,
-      MRN_DEFAULT_KEY_PARSER_LEN))
-  ) {
-    error = HA_ERR_OUT_OF_MEM;
-    goto error;
+  if (!share->key_parser[i]) {
+    if (
+      !(share->key_parser[i] = mrn_create_string(
+        MRN_TOKENIZER_DEFAULT,
+        strlen(MRN_TOKENIZER_DEFAULT)))
+    ) {
+      error = HA_ERR_OUT_OF_MEM;
+      goto error;
+    }
+    share->key_parser_length[i] = strlen(share->key_parser[i]);
   }
 
   if (param_string)

  Modified: mrn_table.h (+1 -0)
===================================================================
--- mrn_table.h    2011-09-25 00:53:19 +0000 (dff2b56)
+++ mrn_table.h    2011-09-25 01:25:24 +0000 (a629e44)
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2 -*- */
 /*
   Copyright(C) 2011 Kentoku SHIBA
   Copyright(C) 2011 Kouhei Sutou <kou****@clear*****>




Groonga-mysql-commit メーリングリストの案内
Back to archive index