Bug #44320 InnoDB: missing DB_ROLL_PTR in Table Monitor COLUMNS output
Submitted: 16 Apr 2009 12:57 Modified: 20 Jun 2010 1:03
Reporter: Paul DuBois Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:5.1+ OS:Any
Assigned to: Satya B CPU Architecture:Any

[16 Apr 2009 12:57] Paul DuBois
Description:
InnoDB Table Monitor output includes a section for each InnoDB table. Each section begins with a COLUMNS part that lists table columns, both those defined in the CREATE TABLE statement and those added internally by InnoDB.

Before MySQL 5.1, the COLUMNS part lists the DB_ROLL_PTR column that is added internally by InnoDB. For example:

TABLE: name SYS_FOREIGN, id 0 11, columns 8, indexes 3, appr.rows 1
  COLUMNS: ID: DATA_VARCHAR prtype 1 len 0 prec 0;
           FOR_NAME: DATA_VARCHAR prtype 1 len 0 prec 0;
           REF_NAME: DATA_VARCHAR prtype 1 len 0 prec 0;
           N_COLS: DATA_INT len 4 prec 0;
           DB_ROW_ID: DATA_SYS DATA_ROW_ID len 6 prec 0;
           DB_TRX_ID: DATA_SYS DATA_TRX_ID len 6 prec 0;
           DB_ROLL_PTR: DATA_SYS DATA_ROLL_PTR len 7 prec 0;
  INDEX: name ID_IND, id 0 11, fields 1/6, type 3
   root page 46, appr.key vals 1, leaf pages 1, size pages 1
   FIELDS:  ID DB_TRX_ID DB_ROLL_PTR FOR_NAME REF_NAME N_COLS
...

However, as of MySQL 5.1, DB_ROLL_PTR is missing from COLUMNS, even though it is used (as shown by the definition of the clustered index):

TABLE: name SYS_FOREIGN, id 0 11, columns 7, indexes 3, appr.rows 1
  COLUMNS: ID: DATA_VARCHAR DATA_ENGLISH len 0; 
           FOR_NAME: DATA_VARCHAR DATA_ENGLISH len 0; 
           REF_NAME: DATA_VARCHAR DATA_ENGLISH len 0; 
           N_COLS: DATA_INT len 4;
           DB_ROW_ID: DATA_SYS prtype 256 len 6; 
           DB_TRX_ID: DATA_SYS prtype 257 len 6; 
  INDEX: name ID_IND, id 0 11, fields 1/6, uniq 1, type 3 
   root page 46, appr.key vals 1, leaf pages 1, size pages 1
   FIELDS:  ID DB_TRX_ID DB_ROLL_PTR FOR_NAME REF_NAME N_COLS

How to repeat:
See above.
[16 Apr 2009 14:58] MySQL Verification Team
Thank you for the bug report.
[23 Apr 2009 10:20] Marko Mäkelä
This is an off-by-one error in dict/dict0dict.c, dict_table_print_low():

	for (i = 0; i + 1 < (ulint) table->n_cols; i++) {
		dict_col_print_low(table, dict_table_get_nth_col(table, i));
		fputs("; ", stderr);
	}

The fix is simple: remove the "+ 1" from the loop condition. Then the last column (always DB_ROLL_PTR) will be printed.
[19 May 2009 8:00] 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/74457

2890 Satya B	2009-05-19
      Applying InnoDB snashot 5.1-ss5024, part 2. Fix for BUG#44320
      
      BUG#44320 - InnoDB: missing DB_ROLL_PTR in Table Monitor COLUMNS output
      
      Detailed revision comments:
      
      r4976 | marko | 2009-05-13 15:44:54 +0300 (Wed, 13 May 2009) | 6 lines
      branches/5.1: Display DB_ROLL_PTR in the COLUMNS section of the
      innodb_table_monitor output.  It was accidentally omitted due to an
      off-by-one loop condition.  (Bug #44320)
      
      rb://116 approved by Heikki Tuuri
      modified:
        storage/innobase/dict/dict0dict.c
[19 May 2009 8:47] Satya B
Notes to Docs team:
Patch queued to 5.1-bugteam.  NOT yet in 6.0 (5.1-snapshot-ss5024 is null merged
into 6.0). Please return to "Patch approved" after documenting until 6.0
snapshot is available.
[28 May 2009 8:21] Bugs System
Pushed into 5.1.36 (revid:joro@sun.com-20090528073639-yohsb4q1jzg7ycws) (version source revid:satya.bn@sun.com-20090519075649-nfamhbufn7346ahw) (merge vers: 5.1.36) (pib:6)
[1 Jun 2009 20:09] Paul DuBois
Noted in 5.1.36 changelog.

InnoDB was missing DB_ROLL_PTR information in Table Monitor COLUMNS
output. 

Setting report to Patch Approved pending push into 6.0.x.
[17 Jun 2009 19:27] Bugs System
Pushed into 5.4.4-alpha (revid:alik@sun.com-20090616183122-chjzbaa30qopdra9) (version source revid:satya.bn@sun.com-20090519083733-iksol2m6mcevrsgy) (merge vers: 6.0.12-alpha) (pib:11)
[3 Aug 2009 18:37] Paul DuBois
Noted in 5.4.4 changelog.
[4 Aug 2009 5:36] Satya B
The patch is not really pushed to 5.4. NULL merged the fix.
[4 Aug 2009 15:56] Paul DuBois
Satya, thanks.

Removed entry from 5.4.4 changelog.
[26 Aug 2009 13:46] Bugs System
Pushed into 5.1.37-ndb-7.0.8 (revid:jonas@mysql.com-20090826132541-yablppc59e3yb54l) (version source revid:jonas@mysql.com-20090826132541-yablppc59e3yb54l) (merge vers: 5.1.37-ndb-7.0.8) (pib:11)
[26 Aug 2009 13:46] Bugs System
Pushed into 5.1.37-ndb-6.3.27 (revid:jonas@mysql.com-20090826105955-bkj027t47gfbamnc) (version source revid:jonas@mysql.com-20090826105955-bkj027t47gfbamnc) (merge vers: 5.1.37-ndb-6.3.27) (pib:11)
[26 Aug 2009 13:48] Bugs System
Pushed into 5.1.37-ndb-6.2.19 (revid:jonas@mysql.com-20090825194404-37rtosk049t9koc4) (version source revid:jonas@mysql.com-20090825194404-37rtosk049t9koc4) (merge vers: 5.1.37-ndb-6.2.19) (pib:11)
[27 Aug 2009 16:33] Bugs System
Pushed into 5.1.35-ndb-7.1.0 (revid:magnus.blaudd@sun.com-20090827163030-6o3kk6r2oua159hr) (version source revid:jonas@mysql.com-20090826132541-yablppc59e3yb54l) (merge vers: 5.1.37-ndb-7.0.8) (pib:11)
[5 May 2010 15:24] Bugs System
Pushed into 5.1.47 (revid:joro@sun.com-20100505145753-ivlt4hclbrjy8eye) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[6 May 2010 17:53] Paul DuBois
Push resulted from incorporation of InnoDB tree. No changes pertinent to this bug.
Re-closing.
[28 May 2010 5:58] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100524190136-egaq7e8zgkwb9aqi) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (pib:16)
[28 May 2010 6:27] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100524190941-nuudpx60if25wsvx) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[28 May 2010 6:55] Bugs System
Pushed into 5.5.5-m3 (revid:alik@sun.com-20100524185725-c8k5q7v60i5nix3t) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[29 May 2010 23:08] Paul DuBois
Push resulted from incorporation of InnoDB tree. No changes pertinent to this bug.
Re-closing.
[15 Jun 2010 8:21] Bugs System
Pushed into 5.5.5-m3 (revid:alik@sun.com-20100615080459-smuswd9ooeywcxuc) (version source revid:mmakela@bk-internal.mysql.com-20100415070122-1nxji8ym4mao13ao) (merge vers: 5.1.47) (pib:16)
[15 Jun 2010 8:39] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100615080558-cw01bzdqr1bdmmec) (version source revid:mmakela@bk-internal.mysql.com-20100415070122-1nxji8ym4mao13ao) (pib:16)
[17 Jun 2010 12:01] Bugs System
Pushed into 5.1.47-ndb-7.0.16 (revid:martin.skold@mysql.com-20100617114014-bva0dy24yyd67697) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[17 Jun 2010 12:42] Bugs System
Pushed into 5.1.47-ndb-6.2.19 (revid:martin.skold@mysql.com-20100617115448-idrbic6gbki37h1c) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[17 Jun 2010 13:28] Bugs System
Pushed into 5.1.47-ndb-6.3.35 (revid:martin.skold@mysql.com-20100617114611-61aqbb52j752y116) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)