| 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: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) | 
| Version: | 3.23 | OS: | |
| Assigned to: | Jim Winstead | CPU Architecture: | Any | 
   [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.


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.