[Groonga-mysql-commit] mroonga/mroonga [master] [storage] support TEXT type in REPLACE. fixes #1153

Back to archive index

null+****@clear***** null+****@clear*****
2011年 11月 2日 (水) 19:36:23 JST


Kouhei Sutou	2011-11-02 10:36:23 +0000 (Wed, 02 Nov 2011)

  New Revision: 3d39e3c32c8dc5cebdd6b249454386f6c8354a18

  Log:
    [storage] support TEXT type in REPLACE. fixes #1153
    
    Reported by Kazuhiki Shiozaki. Thanks!!!

  Modified files:
    ha_mroonga.cc

  Modified: ha_mroonga.cc (+12 -0)
===================================================================
--- ha_mroonga.cc    2011-11-02 02:50:46 +0000 (9fab20b)
+++ ha_mroonga.cc    2011-11-02 10:36:23 +0000 (87b6c44)
@@ -77,6 +77,9 @@ static const char *index_column_name = "index";
 extern "C" {
 #endif
 
+/* groonga's internal functions */
+const char *grn_obj_get_value_(grn_ctx *ctx, grn_obj *obj, grn_id id, uint32 *size);
+
 /* global variables */
 pthread_mutex_t mrn_db_mutex;
 pthread_mutex_t mrn_log_mutex;
@@ -906,6 +909,15 @@ static void mrn_store_field(grn_ctx *ctx, Field *field, grn_obj *col, grn_id id)
                    field->charset());
       break;
     }
+  case MYSQL_TYPE_BLOB:
+    {
+      GRN_VOID_INIT(&buf);
+      uint32 len;
+      const char *val = grn_obj_get_value_(ctx, col, id, &len);
+      Field_blob *blob = (Field_blob *)field;
+      blob->set_ptr((uchar *)&len, (uchar *)val);
+      break;
+    }
   default: //strings etc..
     {
       GRN_TEXT_INIT(&buf,0);




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