[Groonga-mysql-commit] mroonga/mroonga [fix-for-visual-studio] fix index_read for VARCHAR.

Back to archive index

Tetsuro IKEDA null+****@clear*****
Thu Oct 4 10:29:30 JST 2012


Tetsuro IKEDA	2009-06-01 15:02:11 +0900 (Mon, 01 Jun 2009)

  New Revision: 8724c50835cbb0783bc8de3f561dd5a605537e64
  https://github.com/mroonga/mroonga/commit/8724c50835cbb0783bc8de3f561dd5a605537e64

  Log:
    fix index_read for VARCHAR.

  Modified files:
    src/ha_groonga.cc

  Modified: src/ha_groonga.cc (+19 -3)
===================================================================
--- src/ha_groonga.cc    2009-06-01 14:48:59 +0900 (f38cd37)
+++ src/ha_groonga.cc    2009-06-01 15:02:11 +0900 (99d41c2)
@@ -341,6 +341,7 @@ int ha_groonga::rnd_next(uchar *buf)
       } else {
 	GRN_BULK_REWIND(&obj);
 	grn_obj_get_value(mrn_ctx_tls, (*grn_field)->obj, gid, &obj);
+	/* TODO: refactoring. following can be share with index_read */
 	int *tmp_int;
 	char *tmp_char;
 	switch((*mysql_field)->type()) {
@@ -514,9 +515,24 @@ int ha_groonga::index_read(uchar *buf, const uchar *key,
     MRN_LOG(GRN_LOG_DEBUG, "-> grn_obj_get_value: gid=%d, obj=%p",
 	    gid, (*grn_field)->obj);
     grn_obj_get_value(mrn_ctx_tls, (*grn_field)->obj, gid, &wrapper);
-    int *res;
-    res = (int*) GRN_BULK_HEAD(&wrapper);
-    (*mysql_field)->store(*res);
+    int *tmp_int;
+    char *tmp_char;
+    switch((*mysql_field)->type()) {
+    case (MYSQL_TYPE_LONG) :
+      tmp_int = (int*) GRN_BULK_HEAD(&wrapper);
+      MRN_LOG(GRN_LOG_DEBUG, "-> grn_obj_get_value: gid=%d, obj=%p, val=%d",
+	      gid, (*grn_field)->obj, *tmp_int);
+      (*mysql_field)->set_notnull();
+      (*mysql_field)->store(*tmp_int);
+      break;
+    case (MYSQL_TYPE_VARCHAR) :
+      tmp_char = (char*) GRN_BULK_HEAD(&wrapper);
+      MRN_LOG(GRN_LOG_DEBUG, "-> grn_obj_get_value: gid=%d, obj=%p, val=%s",
+	      gid, (*grn_field)->obj, tmp_char);
+      (*mysql_field)->set_notnull();
+      (*mysql_field)->store(tmp_char,strlen(tmp_char), system_charset_info);
+      break;
+    }
   }
   grn_obj_close(mrn_ctx_tls, &wrapper);
 
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-mysql-commit mailing list
Back to archive index