[Groonga-mysql-commit] mroonga/mroonga [master] [wrapper] add geo index check.

Back to archive index

null+****@clear***** null+****@clear*****
2011年 10月 3日 (月) 18:49:01 JST


Kouhei Sutou	2011-10-03 09:49:01 +0000 (Mon, 03 Oct 2011)

  New Revision: b5b6a86f022bf2fbf317e897db7cd59070b8c882

  Log:
    [wrapper] add geo index check.

  Modified files:
    ha_mroonga.cc
    ha_mroonga.h

  Modified: ha_mroonga.cc (+9 -8)
===================================================================
--- ha_mroonga.cc    2011-10-03 09:17:13 +0000 (d86016c)
+++ ha_mroonga.cc    2011-10-03 09:49:01 +0000 (a3a440b)
@@ -3065,24 +3065,25 @@ int ha_mroonga::extra_opt(enum ha_extra_function operation, ulong cache_size)
   DBUG_RETURN(error);
 }
 
-bool ha_mroonga::wrapper_have_fulltext_index()
+bool ha_mroonga::wrapper_have_target_index()
 {
   MRN_DBUG_ENTER_METHOD();
 
-  bool have_fulltext_index = FALSE;
+  bool have_target_index = FALSE;
 
   uint i;
   uint n_keys = table->s->keys;
   for (i = 0; i < n_keys; i++) {
     KEY key_info = table->key_info[i];
 
-    if (key_info.algorithm == HA_KEY_ALG_FULLTEXT) {
-      have_fulltext_index = TRUE;
+    if (key_info.algorithm == HA_KEY_ALG_FULLTEXT ||
+        mrn_is_geo_key(&key_info)) {
+      have_target_index = TRUE;
       break;
     }
   }
 
-  DBUG_RETURN(have_fulltext_index);
+  DBUG_RETURN(have_target_index);
 }
 
 int ha_mroonga::wrapper_write_row(uchar *buf)
@@ -3098,7 +3099,7 @@ int ha_mroonga::wrapper_write_row(uchar *buf)
   MRN_SET_BASE_SHARE_KEY(share, table->s);
   MRN_SET_BASE_TABLE_KEY(this, table);
 
-  if (!error && wrapper_have_fulltext_index()) {
+  if (!error && wrapper_have_target_index()) {
     error = wrapper_write_row_index(buf);
   }
 
@@ -3457,7 +3458,7 @@ int ha_mroonga::wrapper_update_row(const uchar *old_data, uchar *new_data)
   MRN_SET_BASE_SHARE_KEY(share, table->s);
   MRN_SET_BASE_TABLE_KEY(this, table);
 
-  if (!error && wrapper_have_fulltext_index()) {
+  if (!error && wrapper_have_target_index()) {
     error = wrapper_update_row_index(old_data, new_data);
   }
 
@@ -3793,7 +3794,7 @@ int ha_mroonga::wrapper_delete_row(const uchar *buf)
   MRN_SET_BASE_SHARE_KEY(share, table->s);
   MRN_SET_BASE_TABLE_KEY(this, table);
 
-  if (!error && wrapper_have_fulltext_index()) {
+  if (!error && wrapper_have_target_index()) {
     error = wrapper_delete_row_index(buf);
   }
 

  Modified: ha_mroonga.h (+1 -1)
===================================================================
--- ha_mroonga.h    2011-10-03 09:17:13 +0000 (a1d9aff)
+++ ha_mroonga.h    2011-10-03 09:49:01 +0000 (49c3fcd)
@@ -401,7 +401,7 @@ private:
   void storage_start_bulk_insert(ha_rows rows);
   int wrapper_end_bulk_insert();
   int storage_end_bulk_insert();
-  bool wrapper_have_fulltext_index();
+  bool wrapper_have_target_index();
   int wrapper_write_row(uchar *buf);
   int wrapper_write_row_index(uchar *buf);
   int storage_write_row(uchar *buf);




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