Bug #30438 "{memory,myisam,ndb}__datadict" tests fail: Use "InnoDB" without checking
Submitted: 15 Aug 2007 14:38 Modified: 26 Sep 2007 13:42
Reporter: Joerg Bruehe Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Tests Severity:S3 (Non-critical)
Version:5.1.21 OS:Any
Assigned to: Matthias Leich CPU Architecture:Any

[15 Aug 2007 14:38] Joerg Bruehe
Description:
Detected in the 5.1.21 release builds.

Tests "memory__datadict" and "ndb__datadict" use InnoDB as a table handler without checking whether it is configured, so with a "classic" or "cluster" build we get these differences:

-------------------------------------------------------
*** /PATH/mysql-test/suite/funcs_1/r/memory__datadict.result
--- /PATH/mysql-test/suite/funcs_1/r/memory__datadict.reject
***************
*** 8021,8026
--- 8021,8028
  use db_datadict;
  alter table res_t_401014 change f1 ff1 int;
  alter table res_t_401014 engine = innodb;
+ Warnings:
+ Warning       1286    Unknown table engine 'innodb'
  alter table res_t_401014 change f3 f3_new bigint;
  alter view res_v_401014 as select ff1 from res_t_401014;
  alter procedure sp_6_401014 sql security invoker;
***************
*** 8038,8044
  from information_schema.tables
  where table_schema like 'db_datadict%';
  table_catalog table_schema    engine
! NULL  db_datadict     InnoDB
  NULL  db_datadict     NULL
  select *
  from information_schema.columns
--- 8040,8046
  from information_schema.tables
  where table_schema like 'db_datadict%';
  table_catalog table_schema    engine
! NULL  db_datadict     MyISAM
  NULL  db_datadict     NULL
  select *
  from information_schema.columns
-------------------------------------------------------

(similar in "ndb__datadict")

How to repeat:
Run this test on a "classic" or "cluster" build.

Suggested fix:
Either do without InnoDB,

or add an appropriate "require" line so that these tests are not taken in a build without InnoDB.
[15 Aug 2007 15:36] Joerg Bruehe
Noticed later:  "myisam__datadict" is affected as well.
[24 Aug 2007 18:58] Matthias Leich
Solution:
   1. Use a storage engine which is all time available
      (MEMORY, MyISAM) instead of InnoDB
   2. Assign this storage engine to a variable
      ($OTHER_ENGINE_TYPE) within the toplevel script,
      because it might be necessary to change this storage
      engine in future.
   3. Replace the column data type TEXT(25) with varchar(25)
      because
      - the column data type is not the test target
        (test target is the content of some
         INFORMATION_SCHEMA tables)
      - MEMORY does not support the column data type TEXT
[27 Aug 2007 18:03] Matthias Leich
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/33110

ChangeSet@1.2489, 2007-08-25 21:14:52+02:00, mleich@four.local.lan +13 -0
  Fixes for
     Bug#30418 "datadict" tests (all engines) fail:
                Dependency on the host name for ordering
     Bug#30420 "datadict" tests (all engines) fail:
                Release build has help tables loaded
     Bug#30438 "{memory,myisam,ndb}__datadict" tests fail:
                Use "InnoDB" without checking
     Bug#30440 "datadict" tests (all engines) fail:
                Character sets depend on configuration
  Attention: Only the build team can check if Bug#30440 is really fixed.
[27 Aug 2007 18:21] Trudy Pelzer
Note that the patch (http://lists.mysql.com/commits/33110)
is for 5.0 only; it does not fix the tests for 5.1 and up
due to differences between 5.0 and 5.1+. This patch will 
be pushed to 5.0 and null-merged upward, then a new patch
will be written to fix the tests for 5.1 and up.
[30 Aug 2007 14:31] Matthias Leich
Sorry for confusing commit emails which were sent to partially
wrong email lists.
ChangeSet@1.1810.2871.68, 2007-08-28
    (http://lists.mysql.com/commits/33239)
fixes this bug for MySQL 5.0.
Fix is pushed.

ChangeSet@1.2545, 2007-08-28   
ChangeSet@1.2546, 2007-08-28
    (http://lists.mysql.com/commits/33248)
ChangeSet@1.2547, 2007-08-29
    (http://lists.mysql.com/commits/33397)
fix this bug for MySQL 5.1.
Attention:
   The test ndb__datadict fails because
   of reasons outside of the scope of this bug fix.
Fix is pushed.

There is no documentation needed.
[26 Sep 2007 13:08] Bugs System
Pushed into 5.0.50
[26 Sep 2007 13:21] Bugs System
Pushed into 5.1.23-beta
[26 Sep 2007 13:42] Paul DuBois
Test case changes. No changelog entry needed.