Bug #50271 Debug output of JOIN structures is garbled
Submitted: 12 Jan 2010 12:32 Modified: 12 Mar 2010 16:27
Reporter: Tor Didriksen Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Optimizer Severity:S3 (Non-critical)
Version: OS:Any
Assigned to: Tor Didriksen CPU Architecture:Any
Triage: Triaged: D4 (Minor)

[12 Jan 2010 12:32] Tor Didriksen
Description:
The debug function TEST_join() outputs a nice tabular overview 
of a join, except for JOIN_TAB.ref.key_parts, which is garbled
by the trace of full_name() which produces more stack trace.

How to repeat:
./mtr --debug subselect

Suggested fix:
Assemble results of all the calls to full_name() first,
in order not to garble the tabular output.
[12 Jan 2010 12:57] 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/96613

2964 Tor Didriksen	2010-01-12
      Bug #50271: Debug output of JOIN structures is garbled
     @ sql/sql_test.cc
        Assemble results of all the calls to full_name() first,
        in order not to garble the tabular.
[15 Jan 2010 7:41] 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/96999

2967 Tor Didriksen	2010-01-12
      Bug #50271: Debug output of JOIN structures is garbled
     @ sql/sql_test.cc
        Assemble results of all the calls to full_name() first,
        in order not to garble the tabular.
[25 Jan 2010 9:36] 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/98019

2974 Tor Didriksen	2010-01-12
      Bug #50271: Debug output of JOIN structures is garbled
     @ sql/sql_test.cc
        Assemble results of all the calls to full_name() first,
        in order not to garble the tabular.
[25 Jan 2010 12:07] Tor Didriksen
Here's a concrete example query (from subselect.test):
create table t1 (a int not null, b int, primary key (a));
create table t2 (a int not null, primary key (a));
create table t3 (a int not null, b int, primary key (a));
insert into t1 values (1,10), (2,20), (3,30),  (4,40);
insert into t2 values (2), (3), (4), (5);
insert into t3 values (10,3), (20,4), (30,5);

explain extended 
select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);

drop table t1, t2, t3;

In my:next-mr-bugfixing the debug output is
=============================================
T@4    : | | | | | | | | | | | >TEST_join

Info about JOIN
t1                type: eq_ref   q_keys: 1  refs: 1  key: 0  len: 4
                  refs: T@4    : | | | | | | | | | | | | >alloc_root
T@4    : | | | | | | | | | | | | | enter: root: 0x1a050e0
T@4    : | | | | | | | | | | | | | exit: ptr: 0x7f823c01c590
T@4    : | | | | | | | | | | | | <alloc_root
<no matter>.<left expr>  
t3                type: eq_ref   q_keys: 1  refs: 1  key: 0  len: 4
                  refs: T@4    : | | | | | | | | | | | | >alloc_root
T@4    : | | | | | | | | | | | | | enter: root: 0x1a050e0
T@4    : | | | | | | | | | | | | | exit: ptr: 0x7f823c01c5a8
T@4    : | | | | | | | | | | | | <alloc_root
test.t1.b  
T@4    : | | | | | | | | | | | <TEST_join
==============================================

with the proposed patch we get:
==============================================
Info about JOIN
t1                type: eq_ref   q_keys: 1  refs: 1  key: 0  len: 4
                  refs:  <no matter>.<left expr>  
t3                type: eq_ref   q_keys: 1  refs: 1  key: 0  len: 4
                  refs:  test.t1.b
[25 Jan 2010 15: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/98064

2974 Tor Didriksen	2010-01-25
      Bug #50271: Debug output of JOIN structures is garbled
     @ sql/sql_test.cc
        Assemble results of all the calls to full_name() first,
        in order not to garble the tabular output.
[28 Jan 2010 11:11] 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/98450

3337 Tor Didriksen	2010-01-28
      Bug #50271: Debug output of JOIN structures is garbled
     @ sql/sql_test.cc
        Assemble results of all the calls to full_name() first,
        in order not to garble the tabular output.
[28 Jan 2010 12:44] 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/98472

3338 Tor Didriksen	2010-01-28
      Bug #50271: Debug output of JOIN structures is garbled
     @ sql/sql_test.cc
        Assemble results of all the calls to full_name() first,
        in order not to garble the tabular output.
[29 Jan 2010 7:26] 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/98537

3339 Tor Didriksen	2010-01-28
      Bug #50271: Debug output of JOIN structures is garbled
     @ sql/sql_test.cc
        Assemble results of all the calls to full_name() first,
        in order not to garble the tabular output.
[29 Jan 2010 11:22] 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/98602

3341 Tor Didriksen	2010-01-28
      Bug #50271: Debug output of JOIN structures is garbled
     @ sql/sql_test.cc
        Assemble results of all the calls to full_name() first,
        in order not to garble the tabular output.
[29 Jan 2010 12:34] 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/98610

3859 Tor Didriksen	2010-01-29 [merge]
      Merge from 5.1-bugteam: 
      Bug #50271: Debug output of JOIN structures is garbled
[29 Jan 2010 12:35] Tor Didriksen
Pushed to
bzr+ssh://bk-internal.mysql.com/bzrroot/server/mysql-5.1-bugteam/
Merged to
bzr+ssh://bk-internal.mysql.com/bzrroot/server/mysql-pe
[4 Feb 2010 10:20] Bugs System
Pushed into 5.1.44 (revid:joro@sun.com-20100204101444-2j32mhqroo0iiio6) (version source revid:tor.didriksen@sun.com-20100128111057-grbxpjx2fkw2mtce) (merge vers: 5.1.43) (pib:16)
[5 Feb 2010 11:50] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100204063540-9czpdmpixi3iw2yb) (version source revid:alik@sun.com-20100130220650-3md8m8w9frcwjj9f) (pib:16)
[5 Feb 2010 11:56] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100205113942-oqovjy0eoqbarn7i) (version source revid:alik@sun.com-20100204064210-ljwanqvrjs83s1gq) (merge vers: 6.0.14-alpha) (pib:16)
[5 Feb 2010 12:01] Bugs System
Pushed into 5.5.2-m2 (revid:alik@sun.com-20100203172258-1n5dsotny40yufxw) (version source revid:alik@sun.com-20100130191336-i53i9wx67n81ridm) (merge vers: 5.5.2-m2) (pib:16)
[10 Feb 2010 18:30] Paul Dubois
Noted in 5.1.44, 5.5.2, 6.0.14 changelogs.

Debug output for join structures was garbled.

Setting report to Need Merge pending push to Celosia.
[12 Mar 2010 14:09] Bugs System
Pushed into 5.1.44-ndb-7.0.14 (revid:jonas@mysql.com-20100312135944-t0z8s1da2orvl66x) (version source revid:jonas@mysql.com-20100312115609-woou0te4a6s4ae9y) (merge vers: 5.1.44-ndb-7.0.14) (pib:16)
[12 Mar 2010 14:25] Bugs System
Pushed into 5.1.44-ndb-6.2.19 (revid:jonas@mysql.com-20100312134846-tuqhd9w3tv4xgl3d) (version source revid:jonas@mysql.com-20100312060623-mx6407w2vx76h3by) (merge vers: 5.1.44-ndb-6.2.19) (pib:16)
[12 Mar 2010 14:39] Bugs System
Pushed into 5.1.44-ndb-6.3.33 (revid:jonas@mysql.com-20100312135724-xcw8vw2lu3mijrhn) (version source revid:jonas@mysql.com-20100312103652-snkltsd197l7q2yg) (merge vers: 5.1.44-ndb-6.3.33) (pib:16)
[12 Mar 2010 16:15] Paul Dubois
Setting report to Need Merge pending push to Celosia.
[12 Mar 2010 16:27] Paul Dubois
Already fixed in earlier 5.1.x, 5.5.x.