Bug #3094 SHOW TABLE STATUS can report Dynamic for MEMORY tables
Submitted: 7 Mar 2004 12:09 Modified: 10 Aug 2005 19:41
Reporter: Paul Dubois Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:3.23 OS:
Assigned to: Jim Winstead CPU Architecture:Any

[7 Mar 2004 12:09] Paul Dubois
Description:
The manual indicates that MEMORY tables use
fixed-length row format. However, under certain circumstances,
SHOW TABLE STATUS will report that the table has
Dynamic format.  I'll quote the relevant mail message
here:

From: Michael Widenius <monty@mysql.com>
Date: Sun, 7 Mar 2004 08:04:04 +0200
To: Sergei Golubchik <serg@mysql.com>, Paul DuBois <paul@mysql.com>
Cc: dev-public@mysql.com
Subject: Re: MERGE/MEMORY/BDB

Hi!

>>>>> "Sergei" == Sergei Golubchik <serg@mysql.com> writes:

Sergei> Hi!
Sergei> On Mar 03, Paul DuBois wrote:

<cut>

>> >@code{MEMORY} tables use a fixed record length format.
>> 
>> Always?  If I use a VARCHAR column, I get this:
>> 
mysql> CREATE TABLE mem (c VARCHAR(10)) ENGINE=MEMORY;
>> Query OK, 0 rows affected (0.00 sec)
>> 
mysql> SHOW TABLE STATUS LIKE 'mem'\G
>> *************************** 1. row ***************************
>> Name: mem
>> Type: HEAP
>> Row_format: Dynamic

<cut>

Sergei> Don't believe it. Try to insert few empty strings. Avg_row_length will
Sergei> still be 11.

Sergei> I would consider "Dynamic" above as a bug.
Sergei> (but I'm not 100% sure about it)
 
Yes, this is a bug.  HEAP tables uses internall always fixed size rows
(even if this should be fixed in the future)

Regards,
Monty

How to repeat:
See above.
[5 Aug 2005 20:19] 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/internals/27938
[8 Aug 2005 19:11] Jim Winstead
Fixed in 5.0.12.
[10 Aug 2005 19:41] Paul Dubois
Noted in 5.0.12 changelog.