[Groonga-mysql-commit] mroonga/mroonga [fix-for-visual-studio] upgrade impl of TIME data type.

Back to archive index

Tetsuro IKEDA null+****@clear*****
Thu Oct 4 10:20:19 JST 2012


Tetsuro IKEDA	2010-03-30 18:47:17 +0900 (Tue, 30 Mar 2010)

  New Revision: a5a6f03720ffd387ab03fe2b20e320b692c5adb3
  https://github.com/mroonga/mroonga/commit/a5a6f03720ffd387ab03fe2b20e320b692c5adb3

  Log:
    upgrade impl of TIME data type.

  Modified files:
    ha_mroonga.cc

  Modified: ha_mroonga.cc (+29 -2)
===================================================================
--- ha_mroonga.cc    2010-03-30 16:37:14 +0900 (5ab7ae1)
+++ ha_mroonga.cc    2010-03-30 18:47:17 +0900 (2278094)
@@ -501,8 +501,21 @@ int ha_mroonga::rnd_next(uchar *buf)
         case (MYSQL_TYPE_DOUBLE) :
           (*field)->store(GRN_FLOAT_VALUE(value));
           break;
-        case (MYSQL_TYPE_DATE) :
         case (MYSQL_TYPE_TIME) :
+          {
+            long long int hh, mm, ss, hhmmss, gval;
+            gval = GRN_TIME_VALUE(value);
+            gval /= (1000000);
+            ss = gval % 60;
+            gval /= 60;
+            mm = gval % 60;
+            gval /= 60;
+            hh = gval;
+            hhmmss = hh * 10000 + mm * 100 + ss;
+            (*field)->store((int) hhmmss);
+            break;
+          }
+        case (MYSQL_TYPE_DATE) :
         case (MYSQL_TYPE_YEAR) :
         case (MYSQL_TYPE_DATETIME) :
           (*field)->store(GRN_TIME_VALUE(value));
@@ -625,9 +638,23 @@ int ha_mroonga::write_row(uchar *buf)
           GRN_FLOAT_SET(ctx, record->value[j], (*field)->val_real());
           break;
         }
-      case MYSQL_TYPE_DATE:
       case MYSQL_TYPE_TIME:
+        {
+          long long int hh, mm, ss, mval, gval;
+          mval = (*field)->val_int();
+          ss = mval % 100;
+          mm = mval / 100 % 100;
+          hh = mval / 10000;
+          gval = (hh * 60 * 60 + mm * 60 + ss) * 1000000;
+          GRN_TIME_SET(ctx, record->value[j], gval);
+          break;
+        }
       case MYSQL_TYPE_YEAR:
+        {
+          long long int yyyy, mval, gval;
+          yyyy = (*field)->val_int();
+        }
+      case MYSQL_TYPE_DATE:
       case MYSQL_TYPE_DATETIME:
         {
           GRN_TIME_SET(ctx, record->value[j], (*field)->val_int());
-------------- next part --------------
HTML����������������������������...
Download 



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