Bug #56537 | parse error in sql_yacc.cc in next-mr (compile-pentium-debug, configure+make) | ||
---|---|---|---|
Submitted: | 3 Sep 2010 13:14 | Modified: | 14 Nov 2010 3:01 |
Reporter: | Sven Sandberg | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Compiling | Severity: | S1 (Critical) |
Version: | next-mr, next-mr-bugfixing | OS: | Linux |
Assigned to: | Mattias Jonsson | CPU Architecture: | Any |
[3 Sep 2010 13:14]
Sven Sandberg
[3 Sep 2010 15:27]
Valeriy Kravchuk
I do not see this problem on Mac OS X: ... make[1]: warning: -jN forced in submake: disabling jobserver mode. make[1]: Nothing to be done for `all'. Making all in packaging make[1]: warning: -jN forced in submake: disabling jobserver mode. make[1]: Nothing to be done for `all'. Making all in cmake make[1]: warning: -jN forced in submake: disabling jobserver mode. make[1]: Nothing to be done for `all'. real 12m21.294s user 13m6.725s sys 3m13.630s macbook-pro:mysql-next-mr-work openxs$ bzr log --show-ids -l1 ------------------------------------------------------------ revno: 3192 [merge] revision-id: alik@sun.com-20100901130614-pgop3m80rmutewxn parent: alik@sun.com-20100901130033-8k19cjn6n2blm3py parent: alik@sun.com-20100901130501-4g2k86dub29auj8y committer: Alexander Nozdrin <alik@sun.com> branch nick: mysql-next-mr timestamp: Wed 2010-09-01 17:06:14 +0400 It builds successfully with BUILD/compile-pentium-debug-max. What gcc version do you have?
[3 Sep 2010 15:35]
Sven Sandberg
$ gcc -v Using built-in specs. Target: i486-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.1-4ubuntu9' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu Thread model: posix gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu9)
[6 Sep 2010 9:07]
Valeriy Kravchuk
I've just build next-mr on Ubuntu 10.04 using: openxs@ubuntu:/home2/openxs/bzr2/mysql-5.1$ gcc --version gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3 Copyright (C) 2009 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. openxs@ubuntu:/home2/openxs/bzr2/mysql-next-mr$ uname -a Linux ubuntu 2.6.32-24-generic #42-Ubuntu SMP Fri Aug 20 14:24:04 UTC 2010 i686 GNU/Linux openxs@ubuntu:/home2/openxs/bzr2/mysql-next-mr$ make --version GNU Make 3.81 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. This program built for i486-pc-linux-gnu and BUILD/compile-pentium-debug-max --prefix=/home2/openxs/dbs/next-mr. This is revno: openxs@ubuntu:/home2/openxs/bzr2/mysql-next-mr$ bzr log --show-ids -l1 ------------------------------------------------------------ revno: 3192 [merge] revision-id: alik@sun.com-20100901130614-pgop3m80rmutewxn parent: alik@sun.com-20100901130033-8k19cjn6n2blm3py parent: alik@sun.com-20100901130501-4g2k86dub29auj8y committer: Alexander Nozdrin <alik@sun.com> branch nick: mysql-next-mr timestamp: Wed 2010-09-01 17:06:14 +0400 message: Auto-merge from mysql-trunk. ------------------------------------------------------------ Use --include-merges or -n0 to see merged revisions.
[6 Sep 2010 9:43]
Mattias Jonsson
I can verify this on a ubuntu box: Linux diske 2.6.32-24-server #41-Ubuntu SMP Thu Aug 19 02:47:08 UTC 2010 x86_64 GNU/Linux on the latest mysql-next-mr (revid:alik@sun.com-20100901130614-pgop3m80rmutewxn) compiled with: mkdir b ; cd b cmake -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=Debug -DFEATURE_SET=large -DWITH_EXAMPLE_STORAGE_ENGINE=ON -DWITH_DEBUG=ON .. make -j5 The fix is this: === modified file 'sql/sql_partition_admin.h' --- sql/sql_partition_admin.h 2010-08-24 10:52:32 +0000 +++ sql/sql_partition_admin.h 2010-09-06 09:39:53 +0000 @@ -44,6 +44,11 @@ ~Sql_cmd_alter_table_exchange_partition() {} + + virtual enum_sql_command sql_command_code() const + { + return SQLCOM_ALTER_TABLE; + } }; @@ -56,6 +61,11 @@ ~Sql_cmd_alter_table_analyze_partition() {} + + virtual enum_sql_command sql_command_code() const + { + return SQLCOM_ALTER_TABLE; + } }; @@ -68,6 +78,11 @@ ~Sql_cmd_alter_table_check_partition() {} + + virtual enum_sql_command sql_command_code() const + { + return SQLCOM_ALTER_TABLE; + } }; @@ -80,6 +95,11 @@ ~Sql_cmd_alter_table_optimize_partition() {} + + virtual enum_sql_command sql_command_code() const + { + return SQLCOM_ALTER_TABLE; + } }; @@ -92,6 +112,11 @@ ~Sql_cmd_alter_table_repair_partition() {} + + virtual enum_sql_command sql_command_code() const + { + return SQLCOM_ALTER_TABLE; + } }; @@ -104,6 +129,11 @@ ~Sql_cmd_alter_table_truncate_partition() {} + + virtual enum_sql_command sql_command_code() const + { + return SQLCOM_ALTER_TABLE; + } }; #else
[6 Sep 2010 11:57]
Valeriy Kravchuk
Indeed, with compile-pentium-debug I've got an error: gcc -DMYSQL_SERVER -DDEFAULT_MYSQL_HOME="\"/home/openxs/dbs/next-mr\"" -DMYSQL_DATADIR="\"/home/openxs/dbs/next-mr/var\"" -DSHAREDIR="\"/home/openxs/dbs/next-mr/share/mysql\"" -DPLUGINDIR="\"/home/openxs/dbs/next-mr/lib/mysql/plugin\"" -DHAVE_EVENT_SCHEDULER -DHAVE_CONFIG_H -I. -I../include -I../zlib -I../include -I../include -I../regex -I. -g -DSAFE_MUTEX -Wall -Wextra -Wunused -Wwrite-strings -Wno-unused-parameter -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -mtune=native -DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS -DSAFE_MUTEX -O0 -g3 -gdwarf-2 -fno-implicit-templates -fno-exceptions -fno-rtti -MT table.o -MD -MP -MF .deps/table.Tpo -c -o table.o table.cc sql_yacc.yy: In function ‘int MYSQLparse(void*)’: sql_yacc.yy:6516: error: cannot allocate an object of abstract type ‘Sql_cmd_alter_table_optimize_partition’ sql_partition_admin.h:76: note: because the following virtual functions are pure within ‘Sql_cmd_alter_table_optimize_partition’: sql_cmd.h:132: note: virtual enum_sql_command Sql_cmd::sql_command_code() const sql_yacc.yy:6530: error: cannot allocate an object of abstract type ‘Sql_cmd_alter_table_analyze_partition’ sql_partition_admin.h:52: note: because the following virtual functions are pure within ‘Sql_cmd_alter_table_analyze_partition’: sql_cmd.h:132: note: virtual enum_sql_command Sql_cmd::sql_command_code() const sql_yacc.yy:6541: error: cannot allocate an object of abstract type ‘Sql_cmd_alter_table_check_partition’ sql_partition_admin.h:64: note: because the following virtual functions are pure within ‘Sql_cmd_alter_table_check_partition’: sql_cmd.h:132: note: virtual enum_sql_command Sql_cmd::sql_command_code() const sql_yacc.yy:6555: error: cannot allocate an object of abstract type ‘Sql_cmd_alter_table_repair_partition’ sql_partition_admin.h:88: note: because the following virtual functions are pure within ‘Sql_cmd_alter_table_repair_partition’: sql_cmd.h:132: note: virtual enum_sql_command Sql_cmd::sql_command_code() const sql_yacc.yy:6574: error: cannot allocate an object of abstract type ‘Sql_cmd_alter_table_truncate_partition’ sql_partition_admin.h:100: note: because the following virtual functions are pure within ‘Sql_cmd_alter_table_truncate_partition’: sql_cmd.h:132: note: virtual enum_sql_command Sql_cmd::sql_command_code() const sql_yacc.yy:6600: error: cannot allocate an object of abstract type ‘Sql_cmd_alter_table_exchange_partition’ sql_partition_admin.h:40: note: because the following virtual functions are pure within ‘Sql_cmd_alter_table_exchange_partition’: sql_cmd.h:132: note: virtual enum_sql_command Sql_cmd::sql_command_code() const make[3]: *** [sql_yacc.o] Error 1
[5 Oct 2010 8:57]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/119962 3313 Mattias Jonsson 2010-10-05 Bug#56537: parse error in sql_yacc.cc in next-mr (compile-pentium-debug, configure+make) Sql_cmd changed in mysql-next-mr, requiring a sql_command_code function that was missing when compiling without support for partitioning. Added it also when compiling without partitioning @ mysql-test/r/not_partition.result Updated result @ sql/sql_partition_admin.h Added sql_command_code() also if compiling without partitioning support
[5 Oct 2010 10:59]
Mattias Jonsson
pushed into mysql-next-mr-bugfixing
[13 Nov 2010 16:05]
Bugs System
Pushed into mysql-trunk 5.6.99-m5 (revid:alexander.nozdrin@oracle.com-20101113155825-czmva9kg4n31anmu) (version source revid:vasil.dimov@oracle.com-20100629074804-359l9m9gniauxr94) (merge vers: 5.6.99-m4) (pib:21)
[13 Nov 2010 16:33]
Bugs System
Pushed into mysql-next-mr (revid:alexander.nozdrin@oracle.com-20101113160336-atmtmfb3mzm4pz4i) (version source revid:jimmy.yang@oracle.com-20100804103744-vbpeghipkz6pyc9z) (pib:21)
[14 Nov 2010 3:01]
Paul DuBois
Does not appear in any released version. No changelog entry needed.