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);