Bug #18176 make test fails if server built with --without-innodb
Submitted: 13 Mar 2006 1:58 Modified: 19 May 2009 20:01
Reporter: Paul Rivers (Candidate Quality Contributor) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:5.0.19 OS:Linux (Redhat Linux)
Assigned to: Hartmut Holzgraefe CPU Architecture:Any

[13 Mar 2006 1:58] Paul Rivers
Description:

make test seems unaware innodb storage engine is not available when server is compiled with --without-innodb option.  make test fails on the create test with:

create                         [ fail ]

Errors are (from /apps/mysql/mysqlprod-5.0.19/src/mysql-5.0.19/mysql-test/var/log/mysqltest-time) :
mysqltest: Result length mismatch
(the last lines may be the most important ones)
Below are the diffs between actual and expected results:
-------------------------------------------------------
*** r/create.result     2006-03-04 23:45:40.000000000 +0300
--- r/create.reject     2006-03-13 04:52:12.000000000 +0300
***************
*** 768,773 ****
  create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb 
  character set utf8 collate utf8_general_ci;
  Warnings:
! Warning       1071    Specified key was too long; max key length is 765 bytes
  insert into t1 values('aaa');
  drop table t1;
--- 768,774 ----
  create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb 
  character set utf8 collate utf8_general_ci;
  Warnings:
! Warning       1266    Using storage engine MyISAM for table 't1'
! Warning       1071    Specified key was too long; max key length is 999 bytes
  insert into t1 values('aaa');
  drop table t1;

How to repeat:

Build mysql-5.0.19 server from source.
Specify --without-innodb during the ./configure

Suggested fix:

Split storage engine tests out by type.
[9 Apr 2006 3:04] Baron Schwartz
On Gentoo / AMD64,

mysql> create table test(c varchar(500) not null primary key);
ERROR 1071 (42000): Specified key was too long; max key length is 999 bytes
mysql> create table test(c varchar(255), d varchar(255),primary key(c,d));
ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes

mysql> status;
--------------
mysql  Ver 14.12 Distrib 5.0.19, for pc-linux-gnu (x86_64) using readline 5.1

Connection id:          3
Current database:       money
Current user:           me@localhost
SSL:                    Not in use
Current pager:          /usr/bin/less
Using outfile:          ''
Using delimiter:        ;
Server version:         5.0.19-log
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    latin1
Conn.  characterset:    latin1
UNIX socket:            /var/run/mysqld/mysqld.sock

Is the max key length 999 or 1000 bytes?  It seems to depend on the number of columns I try to add.
[25 Oct 2006 9:57] Antony Curtis
If a column is NULLable, it adds a byte to the key length.
[25 Oct 2006 14:33] 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/14361

ChangeSet@1.2291, 2006-10-25 07:04:13-07:00, acurtis@xiphis.org +8 -0
  Bug#18176
    "make test fails if server built with --without-innodb"
    fix tests