ver5.0.37をソースからビルドする際の注意点
このバージョンから"SHOW PROFILE"コマンドが実装されていますが、これを処理するためのパーサのコードが、Bison 1.75に対応していないようです。
mir@t43:/hoge/tritonn/dev/mysql-5.0.37.senna/sql$ bison --version bison (GNU Bison) 1.75 Written by Robert Corbett and Richard Stallman. Copyright (C) 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. mir@t43:/hoge/tritonn/dev/mysql-5.0.37.senna/sql$ mir@t43:/hoge/tritonn/dev/mysql-5.0.37.senna/sql$ touch sql_yacc.yy mir@t43:/hoge/tritonn/dev/mysql-5.0.37.senna/sql$ mir@t43:/hoge/tritonn/dev/mysql-5.0.37.senna/sql$ make bison -y -p MYSQL -d --debug --verbose sql_yacc.yy sql_yacc.yy:6793.13: parse error, unexpected ":", expecting ";" or "|"
Bison 2.3だとパースエラーにならないので、Bisonのバージョンをあげることで回避可能です。
mir@t43:/hoge/tritonn/dev/mysql-5.0.37.senna/sql$ bison --version bison (GNU Bison) 2.3 Written by Robert Corbett and Richard Stallman. Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. mir@t43:/hoge/tritonn/dev/mysql-5.0.37.senna/sql$ mir@t43:/hoge/tritonn/dev/mysql-5.0.37.senna/sql$ mir@t43:/hoge/tritonn/dev/mysql-5.0.37.senna/sql$ touch sql_yacc.yy mir@t43:/hoge/tritonn/dev/mysql-5.0.37.senna/sql$ mir@t43:/hoge/tritonn/dev/mysql-5.0.37.senna/sql$ mir@t43:/hoge/tritonn/dev/mysql-5.0.37.senna/sql$ make bison -y -p MYSQL -d --debug --verbose sql_yacc.yy conflicts: 250 shift/reduce
あるいは、某Sさんがパッチを公開しているので、Bisonのバージョンアップができない方はそれを使うと良いかもしれません。
http://yu.irx.jp/dev/senna/files/t101.m5037.s103.fixyacc1.diff
一応、bugレポートをあげてみました。
どきどき。