[groonga-dev,01662] Re: MariaDB 10.0.4でビルドエラー

Back to archive index

yoku ts. yoku0****@gmail*****
2013年 8月 22日 (木) 16:15:45 JST


こんにちは、yokuです。

ざっと確認しましたが、MariaDB10.0.4でバックポートされた「小数点以下の秒数を持つカラム型」対応と
「パーティションごとにSELECT」対応が原因のようです。
MYSQL_TYPE_xxx2やkey_partsの名前変更はMySQL 5.6と同じ定義のされかたなので、↓で回避できました。

*** mrn_mysql_compat.h.org      2013-05-24 12:00:33.299205414 +0900
--- mrn_mysql_compat.h  2013-08-22 15:46:47.932803063 +0900
***************
*** 31,37 ****
  #  define mysql_mutex_unlock(mutex) pthread_mutex_unlock(mutex)
  #endif

! #if MYSQL_VERSION_ID >= 50604 && !defined(MRN_MARIADB_P)
  #  define MRN_HAVE_MYSQL_TYPE_TIMESTAMP2
  #  define MRN_HAVE_MYSQL_TYPE_DATETIME2
  #  define MRN_HAVE_MYSQL_TYPE_TIME2
--- 31,37 ----
  #  define mysql_mutex_unlock(mutex) pthread_mutex_unlock(mutex)
  #endif

! #if (MYSQL_VERSION_ID >= 50604 && !defined(MRN_MARIADB_P)) ||
(defined(MRN_MARIADB_P) && MYSQL_VERSION_ID >= 100004)
  #  define MRN_HAVE_MYSQL_TYPE_TIMESTAMP2
  #  define MRN_HAVE_MYSQL_TYPE_DATETIME2
  #  define MRN_HAVE_MYSQL_TYPE_TIME2
***************
*** 60,66 ****
    typedef char *range_id_t;
  #endif

! #if MYSQL_VERSION_ID >= 50609 && !defined(MRN_MARIADB_P)
  #  define MRN_KEY_HAS_USER_DEFINED_KEYPARTS
  #endif

--- 60,66 ----
    typedef char *range_id_t;
  #endif

! #if (MYSQL_VERSION_ID >= 50609 && !defined(MRN_MARIADB_P)) ||
(defined(MRN_MARIADB_P) && MYSQL_VERSION_ID >= 100004)
  #  define MRN_KEY_HAS_USER_DEFINED_KEYPARTS
  #endif

が、これを通しても「InnoDB ONLINE ALTER TABLE」対応が立ちはだかります。
こっちはすいません、InnoDB(5.6のstorage/innobase)とXtraDB(storage/xtradb)で実装の仕方が結構違うので諦めました。。

libtool: compile:  g++ -DHAVE_CONFIG_H -I.
-I/home/yoku0825/mariadb-10.0.4/include
-I/home/yoku0825/mariadb-10.0.4/sql
-I/home/yoku0825/mariadb-10.0.4/include
-I/home/yoku0825/mariadb-10.0.4/regex -I/home/yoku0825/mariadb-10.0.4
-I/usr/maria/10.0.4/include/mysql -I/usr/maria/10.0.4/include/mysql/..
-I/usr/include/groonga -I./lib -I/usr/maria/10.0.4/include/mysql
-I/usr/maria/10.0.4/include/mysql/.. -Wall -g -DMYSQL_DYNAMIC_PLUGIN
-g -O2 -Wall -Wextra -Wno-unused-parameter -Wno-strict-aliasing
-Wno-deprecated -Werror -fno-implicit-templates -fno-exceptions
-fno-rtti -felide-constructors -MT ha_mroonga_la-ha_mroonga.lo -MD -MP
-MF .deps/ha_mroonga_la-ha_mroonga.Tpo -c ha_mroonga.cpp  -fPIC -DPIC
-o .libs/ha_mroonga_la-ha_mroonga.o
In file included from ha_mroonga.cpp:66:
ha_mroonga.hpp:245: error: ISO C++ forbids declaration of
'handler_add_index' with no type
ha_mroonga.hpp:245: error: expected ';' before '*' token
ha_mroonga.hpp:466: error: 'handler_add_index' has not been declared
ha_mroonga.hpp:467: error: 'handler_add_index' has not been declared
ha_mroonga.hpp:1071: error: 'handler_add_index' has not been declared
ha_mroonga.hpp:1073: error: 'handler_add_index' has not been declared
ha_mroonga.hpp:1079: error: 'handler_add_index' has not been declared
ha_mroonga.hpp:1080: error: 'handler_add_index' has not been declared
ha_mroonga.cpp: In function 'uint mrn_alter_table_flags(uint)':
ha_mroonga.cpp:1742: error: 'ALTER_ADD_INDEX' was not declared in this scope
ha_mroonga.cpp:1742: error: 'ALTER_DROP_INDEX' was not declared in this scope
ha_mroonga.cpp: In function 'int mrn_init(void*)':
ha_mroonga.cpp:1813: error: 'table_def_cache' was not declared in this scope
ha_mroonga.cpp: In constructor 'ha_mroonga::ha_mroonga(handlerton*,
TABLE_SHARE*)':
ha_mroonga.cpp:2381: error: class 'ha_mroonga' does not have any field
named 'hnd_add_index'
ha_mroonga.cpp: In member function 'int
ha_mroonga::storage_encode_key_timestamp2(Field*, const uchar*,
uchar*, uint*)':
ha_mroonga.cpp:10735: error: no matching function for call to
'Time_zone::gmt_sec_to_TIME(MYSQL_TIME*, timeval&)'
/home/yoku0825/mariadb-10.0.4/sql/tztime.h:57: note: candidates are:
virtual void Time_zone::gmt_sec_to_TIME(MYSQL_TIME*, my_time_t) const
ha_mroonga.cpp: At global scope:
ha_mroonga.cpp:13782: error: 'handler_add_index' has not been declared
ha_mroonga.cpp: In member function 'int
ha_mroonga::wrapper_add_index(TABLE*, KEY*, uint, int**)':
ha_mroonga.cpp:13822: error: 'hnd_add_index' was not declared in this scope
ha_mroonga.cpp:13881: error: 'class handler' has no member named 'add_index'
ha_mroonga.cpp:13903: error: expected type-specifier before 'handler_add_index'
ha_mroonga.cpp:13903: error: expected ';' before 'handler_add_index'
ha_mroonga.cpp: At global scope:
ha_mroonga.cpp:13915: error: 'handler_add_index' has not been declared
ha_mroonga.cpp: In member function 'int
ha_mroonga::storage_add_index(TABLE*, KEY*, uint, int**)':
ha_mroonga.cpp:14008: error: expected type-specifier before 'handler_add_index'
ha_mroonga.cpp:14008: error: expected ';' before 'handler_add_index'
ha_mroonga.cpp: At global scope:
ha_mroonga.cpp:14019: error: 'handler_add_index' has not been declared
ha_mroonga.cpp:14048: error: 'int ha_mroonga::wrapper_final_add_index'
is not a static member of 'class ha_mroonga'
ha_mroonga.cpp:14048: error: 'handler_add_index' was not declared in this scope
ha_mroonga.cpp:14048: error: 'add' was not declared in this scope
ha_mroonga.cpp:14048: error: expected primary-expression before 'bool'
ha_mroonga.cpp:14048: error: initializer expression list treated as
compound expression
ha_mroonga.cpp:14049: error: expected ',' or ';' before '{' token
ha_mroonga.cpp:15396: error: expected '}' at end of input
cc1plus: warnings being treated as errors
ha_mroonga.cpp:471: error: 'mrn_action_on_fulltext_query_error'
defined but not used
make[2]: *** [ha_mroonga_la-ha_mroonga.lo] エラー 1
make[2]: ディレクトリ `/home/yoku0825/mroonga-3.06' から出ます
make[1]: *** [all-recursive] エラー 1
make[1]: ディレクトリ `/home/yoku0825/mroonga-3.06' から出ます
make: *** [all] エラー 2


おしらせまで。


yoku ts.

2013/8/22 WING☆ <wings****@wing-*****>:
> WING☆です。
> いつもお世話になっております。
>
> 先日、MariaDB 10.0.4がリリースされましたので、CentOS 6上に
> MariaDB 10.0.4をインストールした上でmroonga-3.06をビルド
> しましたところ以下のようなエラーが発生しましたことをご報告致します。
>
> libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I..
> -I/root/rpmbuild/BUILD/mroonga-3.06/../mariadb-10.0.4/include
> -I/root/rpmbuild/BUILD/mroonga-3.06/../mariadb-10.0.4/sql
> -I/root/rpmbuild/BUILD/mroonga-3.06/../mariadb-10.0.4/include
> -I/root/rpmbuild/BUILD/mroonga-3.06/../mariadb-10.0.4/regex
> -I/root/rpmbuild/BUILD/mroonga-3.06/../mariadb-10.0.4
> -I/usr/include/mysql -I/usr/include/groonga -I.. -I/usr/include/mysql -g
> -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -g
> -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing
> -DMY_PTHREAD_FASTMUTEX=1 -O2 -g -march=i686 -Wall -Wextra
> -Wno-unused-parameter -Wno-strict-aliasing -Wno-deprecated -Werror
> -fno-implicit-templates -fno-exceptions -fno-rtti -felide-constructors
> -MT libmrn_need_mysql_la-mrn_multiple_column_key_codec.lo -MD -MP -MF
> .deps/libmrn_need_mysql_la-mrn_multiple_column_key_codec.Tpo -c
> mrn_multiple_column_key_codec.cpp  -fPIC -DPIC -o
> .libs/libmrn_need_mysql_la-mrn_multiple_column_key_codec.o
> mrn_multiple_column_key_codec.cpp: In member function 'int
> mrn::MultipleColumnKeyCodec::encode(const uchar*, uint, uchar*, uint*)':
> mrn_multiple_column_key_codec.cpp:69: error: 'struct st_key' has no
> member named 'key_parts'
> mrn_multiple_column_key_codec.cpp: In member function 'int
> mrn::MultipleColumnKeyCodec::decode(const uchar*, uint, uchar*, uint*)':
> mrn_multiple_column_key_codec.cpp:167: error: 'struct st_key' has no
> member named 'key_parts'
> mrn_multiple_column_key_codec.cpp: In member function 'uint
> mrn::MultipleColumnKeyCodec::size()':
> mrn_multiple_column_key_codec.cpp:259: error: 'struct st_key' has no
> member named 'key_parts'
> cc1plus: warnings being treated as errors
> mrn_multiple_column_key_codec.cpp: In member function 'void
> mrn::MultipleColumnKeyCodec::get_key_info(KEY_PART_INFO*,
> mrn::MultipleColumnKeyCodec::DataType*, uint*)':
> mrn_multiple_column_key_codec.cpp:294: error: enumeration value
> 'MYSQL_TYPE_TIMESTAMP2' not handled in switch
> mrn_multiple_column_key_codec.cpp:294: error: enumeration value
> 'MYSQL_TYPE_DATETIME2' not handled in switch
> mrn_multiple_column_key_codec.cpp:294: error: enumeration value
> 'MYSQL_TYPE_TIME2' not handled in switch
> make[2]: *** [libmrn_need_mysql_la-mrn_multiple_column_key_codec.lo] Error 1
> make[2]: Leaving directory `/root/rpmbuild/BUILD/mroonga-3.06/lib'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/root/rpmbuild/BUILD/mroonga-3.06'
> make: *** [all] Error 2
>
> 既に把握してらっしゃるかもしれませんが、ご報告させて頂きました。
> どうぞ、宜しくお願い申し上げます。
> --
> ━━━━━━━━━━━━………‥‥‥・・・
> WING☆
> http://wingse.blog57.fc2.com/
> http://sourceforge.jp/projects/wing-repo/
> twitter:wingstars555
> Facebook:http://facebook.com/ason.fukui.5
> ━━━━━━━━━━━━……‥‥・・
>
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev




groonga-dev メーリングリストの案内
Back to archive index