[Groonga-mysql-commit] mroonga/mroonga [master] [wrapper][multiple-column-index] remove max key parts limitation. refs #1031

アーカイブの一覧に戻る

null+****@clear***** null+****@clear*****
2011年 7月 14日 (木) 18:11:06 JST


Kouhei Sutou	2011-07-14 09:11:06 +0000 (Thu, 14 Jul 2011)

  New Revision: 6fdbd9eeccd4a6dea1e2070446249338a687fc2a

  Log:
    [wrapper][multiple-column-index] remove max key parts limitation. refs #1031
    
    But it's not worked yet.

  Modified files:
    ha_mroonga.cc
    ha_mroonga.h

  Modified: ha_mroonga.cc (+25 -0)
===================================================================
--- ha_mroonga.cc    2011-07-13 10:42:54 +0000 (c2569f7)
+++ ha_mroonga.cc    2011-07-14 09:11:06 +0000 (6e34b53)
@@ -3229,6 +3229,31 @@ int ha_mroonga::delete_row(const uchar *buf)
   DBUG_RETURN(error);
 }
 
+uint ha_mroonga::wrapper_max_supported_key_parts()
+{
+  MRN_DBUG_ENTER_METHOD();
+  DBUG_RETURN(MAX_REF_PARTS);
+}
+
+uint ha_mroonga::storage_max_supported_key_parts()
+{
+  MRN_DBUG_ENTER_METHOD();
+  DBUG_RETURN(1);
+}
+
+uint ha_mroonga::max_supported_key_parts()
+{
+  MRN_DBUG_ENTER_METHOD();
+  uint parts;
+  if (share->wrapper_mode)
+  {
+    parts = wrapper_max_supported_key_parts();
+  } else {
+    parts = storage_max_supported_key_parts();
+  }
+  DBUG_RETURN(parts);
+}
+
 ha_rows ha_mroonga::wrapper_records_in_range(uint key_nr, key_range *range_min,
                                              key_range *range_max)
 {

  Modified: ha_mroonga.h (+3 -1)
===================================================================
--- ha_mroonga.h    2011-07-13 10:42:54 +0000 (cfa041d)
+++ ha_mroonga.h    2011-07-14 09:11:06 +0000 (22294e0)
@@ -152,7 +152,7 @@ public:
 
   uint max_supported_record_length() const { return HA_MAX_REC_LENGTH; }
   uint max_supported_keys()          const { return 100; }
-  uint max_supported_key_parts()     const { return 1; }
+  uint max_supported_key_parts();
   uint max_supported_key_length()    const { return MAX_KEY_LENGTH; }
 
   ha_rows records_in_range(uint inx, key_range *min_key, key_range *max_key);
@@ -281,6 +281,8 @@ private:
   int wrapper_delete_row(const uchar *buf);
   int wrapper_delete_row_index(const uchar *buf);
   int storage_delete_row(const uchar *buf);
+  uint wrapper_max_supported_key_parts();
+  uint storage_max_supported_key_parts();
   ulonglong wrapper_table_flags() const;
   ulonglong storage_table_flags() const;
   ulong wrapper_index_flags(uint idx, uint part, bool all_parts) const;




Groonga-mysql-commit メーリングリストの案内
アーカイブの一覧に戻る