[Maria-developers] alternative for Field_timestamp::get_timestamp etc. ?
Hello, I tried to build mroonga-1.3.0 ( http://mroonga.github.com/ ) with MariaDB 5.3.3 and got the following error:
g++ -DHAVE_CONFIG_H -I. -I/opt/mariadb__compile__/mariadb-5.3.3-rc/sql -I/opt/mariadb__compile__/mariadb-5.3.3-rc/include -I/opt/mariadb__compile__/mariadb-5.3.3-rc/regex -I/opt/mariadb__compile__/mariadb-5.3.3-rc -I/opt/mariadb/include/mysql -I/opt/groonga/include/groonga -I/opt/groonga/include/groonga -I/opt/mariadb/include/mysql -g -DUNIV_LINUX -g -O2 -Wall -Wextra -Wno-unused-parameter -Wno-strict-aliasing -Werror -fno-implicit-templates -fno-exceptions -fno-rtti -felide-constructors -MT libmroonga_a-ha_mroonga.o -MD -MP -MF .deps/libmroonga_a-ha_mroonga.Tpo -c -o libmroonga_a-ha_mroonga.o `test -f 'ha_mroonga.cc' || echo './'`ha_mroonga.cc ha_mroonga.cc: In member function ‘int ha_mroonga::generic_store_bulk_timestamp(Field*, grn_obj*)’: ha_mroonga.cc:6935:63: error: no matching function for call to ‘Field_timestamp::get_timestamp(my_bool*)’ ha_mroonga.cc:6935:63: note: candidate is: /opt/mariadb__compile__/mariadb-5.3.3-rc/sql/field.h:1221:21: note: virtual my_time_t Field_timestamp::get_timestamp(ulong*) const /opt/mariadb__compile__/mariadb-5.3.3-rc/sql/field.h:1221:21: note: no known conversion for argument 1 from ‘my_bool* {aka char*}’ to ‘ulong* {aka long unsigned int*}’ ha_mroonga.cc: In member function ‘void ha_mroonga::storage_store_field_timestamp(Field*, const char*, uint)’: ha_mroonga.cc:7234:20: error: ‘class Field_timestamp’ has no member named ‘store_timestamp’ ha_mroonga.cc: In member function ‘void ha_mroonga::storage_store_field_datetime(Field*, const char*, uint)’: ha_mroonga.cc:7286:67: error: no matching function for call to ‘Field_datetime::store_time(MYSQL_TIME*, enum_mysql_timestamp_type)’ ha_mroonga.cc:7286:67: note: candidate is: /opt/mariadb__compile__/mariadb-5.3.3-rc/sql/field.h:209:7: note: int Field::store_time(MYSQL_TIME*) /opt/mariadb__compile__/mariadb-5.3.3-rc/sql/field.h:209:7: note: candidate expects 1 argument, 2 provided ha_mroonga.cc: In member function ‘void ha_mroonga::storage_store_field_new_date(Field*, const char*, uint)’: ha_mroonga.cc:7306:62: error: no matching function for call to ‘Field_newdate::store_time(MYSQL_TIME*, enum_mysql_timestamp_type)’ ha_mroonga.cc:7306:62: note: candidate is: /opt/mariadb__compile__/mariadb-5.3.3-rc/sql/field.h:209:7: note: int Field::store_time(MYSQL_TIME*) /opt/mariadb__compile__/mariadb-5.3.3-rc/sql/field.h:209:7: note: candidate expects 1 argument, 2 provided make[2]: *** [libmroonga_a-ha_mroonga.o] Error 1
(you can see the code at https://github.com/mroonga/mroonga/blob/master/ha_mroonga.cc ) At a glance, sql/field.h seems much different from MySQL-5.1's one. What can be the alternative for the followings ? * Field_timestamp::get_timestamp(my_bool*) * Field_datetime::store_time(MYSQL_TIME*, enum_mysql_timestamp_type) * Field_newdate::store_time(MYSQL_TIME*, enum_mysql_timestamp_type) Thanks in advance. Kazuhiko
Hi, Kazuhiko! On Jan 30, Kazuhiko wrote:
(you can see the code at https://github.com/mroonga/mroonga/blob/master/ha_mroonga.cc )
At a glance, sql/field.h seems much different from MySQL-5.1's one. What can be the alternative for the followings ?
* Field_timestamp::get_timestamp(my_bool*)
Field_timestamp::get_timestamp(ulong*) const
* Field_datetime::store_time(MYSQL_TIME*, enum_mysql_timestamp_type)
Field_datetime::store_time(MYSQL_TIME*)
* Field_newdate::store_time(MYSQL_TIME*, enum_mysql_timestamp_type)
Field_newdate::store_time(MYSQL_TIME*) Looking at ha_mroonga.cc, you only need to remove the second argument in your calls to store_time() and change the type of the second argument in your call to get_timestamp(). No complex changes are needed. Regards, Sergei
Hi Sergei! On 30/01/2012 11:37, Sergei Golubchik wrote:
* Field_timestamp::get_timestamp(my_bool*)
Field_timestamp::get_timestamp(ulong*) const
* Field_datetime::store_time(MYSQL_TIME*, enum_mysql_timestamp_type)
Field_datetime::store_time(MYSQL_TIME*)
* Field_newdate::store_time(MYSQL_TIME*, enum_mysql_timestamp_type)
Field_newdate::store_time(MYSQL_TIME*)
Looking at ha_mroonga.cc, you only need to remove the second argument in your calls to store_time() and change the type of the second argument in your call to get_timestamp(). No complex changes are needed.
Indeed, these changes were enough, and I confirmed that all test passed with these changes. Thanks !!! Kazuhiko
participants (2)
-
Kazuhiko
-
Sergei Golubchik