Bug #38175 example storage engine missing
Submitted: 16 Jul 2008 15:33 Modified: 5 Dec 2008 23:01
Reporter: Chuck Bell Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Backup Severity:S3 (Non-critical)
Version:6.0 OS:Any
Assigned to: Hema Sridharan CPU Architecture:Any
Triage: Triaged: D3 (Medium)

[16 Jul 2008 15:33] Chuck Bell
Description:
The backup_nodata_driver test is written to use the example storage engine. This is protected using 'have_exampledb' but no PB machines seem to build that storage engine. 

When the build does include the example storage engine, the test will fail with:

mysqltest: At line 130: query 'RESTORE FROM 'bup_nodata.bak'' failed: 1146: Tabl
e 'bup_data.myisam1' doesn't exist

It is possible the code to open the merge table (which is in the bup_nodata database) is attempting to open the merged tables (which are in bup_data database) which has been dropped prior to restore:

...

DROP DATABASE bup_data;

# Show the data
--echo show data
SHOW FULL TABLES FROM bup_nodata;

# The merge and federated tables should have errors since data is missing.
--error ER_NO_SUCH_TABLE
SELECT * FROM bup_nodata.merge1;
--error ER_CONNECT_TO_FOREIGN_DATA_SOURCE,ER_QUERY_ON_FOREIGN_DATA_SOURCE
SELECT * FROM bup_nodata.f1;
SELECT * FROM bup_nodata.b1;
SELECT * FROM bup_nodata.e1;

DROP DATABASE bup_nodata;

# Now restore the nodata database and see if it is the same as above.
--echo Restoring nodata database.
--replace_column 1 #
RESTORE FROM 'bup_nodata.bak';

How to repeat:
Compile the server with the example storage engine.

Windows:

win\configure ... WITH_EXAMPLE_STORAGE_ENGINE ...

Linux:

./configure ... --with-plugins=example,...

Suggested fix:
There are two things that need to be done:

1) Either change the test to not use the example storage engine or add the example storage engine to pushbuild builds. If the later, I would suggest doing so only for the backup tree.

2) Investigate the way tables are opened and see if it is possible to open the merge table without having the merged tables. If so, make the change. If not, create a new error condition where the code either throws an error and stops or warns the user and continues. Seek Peter and Robin's consensus on this issue.
[9 Oct 2008 18:56] Manyi Lu
According to SergeiG, the decision remains the same: example storage engine is not compiled into production binaries in 6.0. This is a test bug.
[5 Dec 2008 23:01] Hema Sridharan
After having email chat with Chuck, I get the implication that example SE will not work with windows.  It's missing because plugins do not work on Windows. So even if example engine is built on windows, the test will still fail  because the example engine is missing.
It is unfortunate that the original error has (almost) nothing to do with the real problem. Therefore closing this bug report.