Bug #40486 Partition support not built in when using --with-plugins=all (or max)
Submitted: 3 Nov 2008 23:09 Modified: 20 Nov 2008 16:28
Reporter: Tim Soderstrom Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:5.1.29 OS:Any (OS X (from vanilla source), Gentoo)
Assigned to: CPU Architecture:Any
Tags: compiling, configure, partitions, SOURCE

[3 Nov 2008 23:09] Tim Soderstrom
Description:
When building MySQL from source, support for partitions is not being built when using './configure --with-plugins=all' or './configure --with-plugins=max' even though './configure --help' implies that this should work.

How to repeat:
./configure --with-plugins=all
-or-
./configure --with-plugins=max
make
make install
...
Start MySQL

mysql> SHOW VARIABLES LIKE 'have_partitioning';

Suggested fix:
Either update the --help documentation or fix the build method to include building partition support when using --with-plugins=all or max. Alternatively, making a better distinction between what is a plugin and what is built-in would be helpful. The Plugins table in the --help documentation lists all items as plugins when, in reality, I would think partition support (which cannot be built as a dynamic plugin) is more of a built-in and should not actually be called a plugin.
[4 Nov 2008 6:28] Sveta Smirnova
Thank you for the report.

But version 5.1.28 is a bit old. Additionally I can not repeat this with current development sources. Please upgrade to current version 5.1.29, try with it and if problem still exists provide error log file.
[4 Nov 2008 14:00] Tim Soderstrom
Confirmed on 5.1.29. Actually I meant to say 5.1.29 initially - not used to the new version yet :) But 5.1.29 is, in fact, when I had my problems (though I bet the issue is also in 5.1.28). As for the error log file, I do not understand what you mean. If you read my original submission, my core problem is BUILDING MySQL. The built version works fine but, as my "How to repeat" section indicates, it doesn't built support for partitions in the way './configure --help' says to build it. There are otherwise no errors.
[4 Nov 2008 16:46] Sveta Smirnova
Thank you for the feedback.

Partition support should be built, but can be disabled, because some error. This is why I ask you about server error log file.
[4 Nov 2008 17:04] Tim Soderstrom
I'm not sure what you mean? I'm speaking specifically to the build process. Namely './configure --with-plugins=max' should build in support for partitions (according to './configure --help', but it does not. There are no errors - MySQL builds and installs fine, but I end up with this:

mysql> SHOW VARIABLES LIKE 'have_partitioning';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| have_partitioning | NO   | 
+-------------------+-------+
1 row in set (0.00 sec)

There are no errors in the servers error log as the result of this. It simply does not build in partioning support where it says it should.

To elaborate further:

office101-95:mysql-5.1.29-rc tim$ ./configure --help
`configure' configures this package to adapt to many kinds of systems.
...

 --with-plugins=PLUGIN[,PLUGIN..]
                          Plugins to include in mysqld. (default is: none)
                          Must be a configuration name or a comma separated
                          list of plugins.
                          Available configurations are: none max max-no-ndb
                          all.
                          Available plugins are: partition daemon_example
                          ftexample archive blackhole csv example federated
                          heap innobase myisam myisammrg ndbcluster.

...

Description of plugins:

   === Partition Support ===
  Plugin Name:      partition
  Description:      MySQL Partitioning Support
  Supports build:   static
  Configurations:   max, max-no-ndb

...

But, if you run './configure --with-plugins=max', support for partitions is not built.
[20 Nov 2008 6:09] Jon Stephens
WFM using the following:

jon@tonfisk:~/bzr/mysql-5.1> BUILD/autorun.sh
jon@tonfisk:~/bzr/mysql-5.1> ./configure --with-plugins=max --prefix=/home/jon/bin/mysql-5.1

jon@tonfisk:~/bzr/mysql-5.1> make

jon@tonfisk:~/bzr/mysql-5.1> make install

have_partitioning value is YES, and it is possible to create partitioned tables.

This is with 5.1 source from bzr, tagged 5.1.31, pulled/built 20081117.
[20 Nov 2008 6:38] Sveta Smirnova
Tim,

please read Jon's comment. This is why I asked about additional information. Please provide it.
[20 Nov 2008 16:28] Tim Soderstrom
Well, I tested this multiple times before filing the bug (using the same steps I provided initially), but it was flawed somehow since now I can't seem to reproduce it:

MacDawgPro:mysql-5.1.29-rc tim$ make clean
...
Making clean in .
rm -rf .libs _libs
rm -f *.lo
MacDawgPro:mysql-5.1.29-rc tim$ ./configure --with-plugins=all --prefix=/usr/local/mysql
...
Thank you for choosing MySQL!
...
MacDawgPro:mysql-5.1.29-rc tim$ make
...
Making all in win
make[1]: Nothing to be done for `all'.
MacDawgPro:mysql-5.1.29-rc tim$ sudo make install
...
Making install in win
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
MacDawgPro:mysql-5.1.29-rc tim$ cd /usr/local/mysql
MacDawgPro:mysql tim$ sudo cp share/mysql/mysql.server bin
MacDawgPro:bin tim$ sudo ./mysql.server start
Starting MySQL
. SUCCESS! 
MacDawgPro:bin tim$ ./mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.29-rc-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show variables like 'have%';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   | 
| have_compress           | YES   | 
| have_crypt              | YES   | 
| have_csv                | YES   | 
| have_dynamic_loading    | YES   | 
| have_geometry           | YES   | 
| have_innodb             | YES   | 
| have_ndbcluster         | NO    | 
| have_openssl            | NO    | 
| have_partitioning       | YES   | 
| have_query_cache        | YES   | 
| have_rtree_keys         | YES   | 
| have_ssl                | NO    | 
| have_symlink            | YES   | 
+-------------------------+-------+
14 rows in set (0.01 sec)

MacDawgPro:mysql-5.1.29-rc tim$ make clean
...
Making clean in .
rm -rf .libs _libs
rm -f *.lo
MacDawgPro:mysql-5.1.29-rc tim$ ./configure --with-plugins=max --prefix=/usr/local/mysql
...
Thank you for choosing MySQL!
...
MacDawgPro:mysql-5.1.29-rc tim$ make
...
Making all in win
make[1]: Nothing to be done for `all'.
MacDawgPro:mysql-5.1.29-rc tim$ sudo make install
...
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
MacDawgPro:mysql-5.1.29-rc tim$ 
MacDawgPro:mysql-5.1.29-rc tim$ cd /usr/local/mysql
MacDawgPro:mysql tim$ sudo cp share/mysql/mysql.server bin
MacDawgPro:mysql tim$ cd bin/
MacDawgPro:bin tim$ sudo ./mysql.server start
Starting MySQL
 SUCCESS! 
MacDawgPro:bin tim$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.29-rc-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show variables like 'have%';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| have_community_features | YES   | 
| have_compress           | YES   | 
| have_crypt              | YES   | 
| have_csv                | YES   | 
| have_dynamic_loading    | YES   | 
| have_geometry           | YES   | 
| have_innodb             | YES   | 
| have_ndbcluster         | NO    | 
| have_openssl            | NO    | 
| have_partitioning       | YES   | 
| have_query_cache        | YES   | 
| have_rtree_keys         | YES   | 
| have_ssl                | NO    | 
| have_symlink            | YES   | 
+-------------------------+-------+
14 rows in set (0.00 sec)

So, I guess I get to eat my hat :) Sorry for the useless bug all! Bugs me to know end (ha-ha, get it?) that I can't reproduce the problem this time around. I ran the same commands, in the same order, before and could not get partitioning built. *shrug*

That said, though this bug should be closed, I do think it's wise to make the ./configure --help documentation more clear - the partitioning support is not pluggable and calling it a plugin is a big stretch.