[Groonga-mysql-commit] mroonga/mroonga at 1de9553 [master] multiple column key: fix wrong datetime2 conversion

Back to archive index

Kouhei Sutou null+****@clear*****
Fri May 15 12:19:32 JST 2015


Kouhei Sutou	2015-05-15 12:19:32 +0900 (Fri, 15 May 2015)

  New Revision: 1de95536063f128efe5d6a281c04805e5bdf57c5
  https://github.com/mroonga/mroonga/commit/1de95536063f128efe5d6a281c04805e5bdf57c5

  Message:
    multiple column key: fix wrong datetime2 conversion

  Modified files:
    lib/mrn_multiple_column_key_codec.cpp

  Modified: lib/mrn_multiple_column_key_codec.cpp (+16 -9)
===================================================================
--- lib/mrn_multiple_column_key_codec.cpp    2015-05-15 12:08:09 +0900 (d80a364)
+++ lib/mrn_multiple_column_key_codec.cpp    2015-05-15 12:19:32 +0900 (0113a4a)
@@ -164,16 +164,17 @@ namespace mrn {
         {
           Field_datetimef *datetimef_field =
             static_cast<Field_datetimef *>(field);
-          long long int value;
-          value = my_datetime_packed_from_binary(current_mysql_key,
-                                                 datetimef_field->decimals());
+          long long int mysql_datetime_packed =
+            my_datetime_packed_from_binary(current_mysql_key,
+                                           datetimef_field->decimals());
           MYSQL_TIME mysql_time;
-          TIME_from_longlong_datetime_packed(&mysql_time, value);
+          TIME_from_longlong_datetime_packed(&mysql_time, mysql_datetime_packed);
           TimeConverter time_converter;
           bool truncated;
-          value = time_converter.mysql_time_to_grn_time(&mysql_time, &truncated);
+          long long int grn_time =
+            time_converter.mysql_time_to_grn_time(&mysql_time, &truncated);
           grn_key_data_size = 8;
-          encode_long_long_int(value, grn_key_data_size, current_grn_key);
+          encode_long_long_int(grn_time, grn_key_data_size, current_grn_key);
         }
         break;
 #endif
@@ -285,10 +286,16 @@ namespace mrn {
         {
           Field_datetimef *datetimef_field =
             static_cast<Field_datetimef *>(field);
-          long long int value;
+          long long int grn_time;
           grn_key_data_size = 8;
-          decode_long_long_int(current_grn_key, &value, grn_key_data_size);
-          my_datetime_packed_to_binary(value,
+          decode_long_long_int(current_grn_key, &grn_time, grn_key_data_size);
+          TimeConverter time_converter;
+          MYSQL_TIME mysql_time;
+          mysql_time.time_type = MYSQL_TIMESTAMP_DATETIME;
+          time_converter.gtn_time_to_mysql_time(grn_time, &mysql_time);
+          long long int mysql_datetime_packed =
+            TIME_to_longlong_datetime_packed(&mysql_time);
+          my_datetime_packed_to_binary(mysql_datetime_packed,
                                        current_mysql_key,
                                        datetimef_field->decimals());
         }
-------------- next part --------------
HTML����������������������������...
Download 



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