Bug #36573 myisampack --join does not create destination table .frm file
Submitted: 7 May 2008 17:07 Modified: 7 Mar 2010 18:37
Reporter: Paul DuBois Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: MyISAM storage engine Severity:S4 (Feature request)
Version:all OS:Any
Assigned to: Satya B CPU Architecture:Any

[7 May 2008 17:07] Paul DuBois
Description:
This is a feature request that is a followup to Bug#35906 (Myisampack --join (merge) option doesn't work completely.

The behavior of myisampack that it does not create that .frm file for the destination table has been documented. However, it's not friendly to users that they should have to create the .frm file after the join operation. myisampack itself could itself at least copy the .frm file from one of the source tables to create the destination table .frm file.

If maria_pack has a similar option, and a similar defect, this feature request applies to maria_pack as well.

How to repeat:
N/A
[7 May 2008 17:38] MySQL Verification Team
Thank you for the bug report.
[8 May 2008 17:46] Jim Winstead
because myisampack is specific to MyISAM, I'm re-categorizing this to the MyISAM category.
[6 Nov 2008 8:46] Satya B
Will be fixing this one for MyISAM only.
[6 Nov 2008 12:46] 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/58003

2692 Satya B	2008-11-06
      Fix for Bug#36573 myisampack --join does not create destination table .frm file
      
      Problem:
      ========
      Myisampack --join doesn't create the destination table .frm file. The user has to copy one 
      of the source table .frm file as destination .frm file for mysql server to recognize.
      This is just 'user-friendliness' issue.
      
      How it was solved
      =================
      
      added create_dest_frm(source table, dest table) which copies the "FIRST" tables frm file as 
      the destination frm file.
      
      It is invoked only after the compression succeeds.(after compress(...) )
      
      Note to maintain the existing behaviour of myisampack, the create_dest_frm returns always true,
      which means after the compression,while creating .frm file, if it finds an existing .frm file , it doesn't overwrite it
      and we return command status as success.
      
      Functionality added
      ===================
       ./myisampack --join=/home/satya/WORK/mysql-bin-5.1-bug-36573/var/test/t3  /home/satya/WORK/mysql-bin-5.1-bug-36573/var/test/t2 /home/satya/WORK/mysql-bin-5.1-bug-36573/var/test/t1
       
       creates /home/satya/WORK/mysql-bin-5.1-bug-36573/var/test/t3.frm (which is bascially copied from
      first table's frm  /home/satya/WORK/mysql-bin-5.1-bug-36573/var/test/t2)
[6 Nov 2008 16:31] Ingo Strüwing
Please see comments in email.
[7 Nov 2008 14:48] 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/58190

2902 Satya B	2008-11-07
      Fix for Bug#36573 myisampack --join does not create destination table .frm file
            
      Problem:
      ========
      Myisampack --join doesn't create the destination table .frm file. The user has to copy one 
      of the source table .frm file as destination .frm file for mysql server to recognize.
      This is just 'user-friendliness' issue.
            
      How it was solved
      =================
            
      added create_dest_frm(source table, dest table) which copies the "FIRST" tables frm file  
      as the destination frm file.
            
      It is invoked only after the compression succeeds.(after compress(...) )
            
      Note to maintain the existing behaviour of myisampack, the create_dest_frm returns always
      true, which means after the compression,while creating .frm file, if it finds an existing
      .frm file , it doesn't overwrite it and we return command status as success.
            
      Functionality added
      ===================
      ./myisampack --join=/home/satya/WORK/mysql-bin-5.1-bug-36573/var/test/t3  /home/satya/WORK
      /mysql-bin-5.1-bug-36573/var/test/t2 /home/satya/WORK/mysql-bin-5.1-bug-36573/var/test/t1
      creates /home/satya/WORK/mysql-bin-5.1-bug-36573/var/test/t3.frm (which is bascially 
      copied from first table's frm  /home/satya/WORK/mysql-bin-5.1-bug-36573/var/test/t2)
      
      Tests
      =====
      Modified myisampack.test to test two scenario's
      1. Positive myisampack --join test
         In this case after the join operation is done,we test if the destination table is 
         accessible from the server
      2. Positive myisampack --join test with an existing .frm file.
          We test the above case with an existing .frm file for the destination table. It should
          return success even in this case.
      3. Negative myisampack --join test
         We test myisampack --join existing .MYI,.MDI,.frm files for the destination table.It 
         should fail with exit status 2 in this case.
[7 Nov 2008 19:19] Ingo Strüwing
Please see comments by email.
[11 Nov 2008 14:18] 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/58457

2902 Satya B	2008-11-11
      Fix for Bug#36573 myisampack --join does not create destination 
      table .frm file
            
      Problem:
      ========
      Myisampack --join did not create the destination table .frm file. 
      The user had to copy one of the source table .frm file as destination .frm 
      file for mysql server to recognize.This is just 'user-friendliness' issue.
            
      How it was solved
      =================
      
      After successful join and compression we copy the frm file from the first 
      source table.
      
            
      Functionality added
      ===================
      myisampack --join=/path/t3 /path/t1 /path/t2 creates 
      /path/t3.frm (which is bascially copied from first table's frm /path/t1)
      
      Tests
      =====
      Modified myisampack.test to test two scenario's
      1. Positive myisampack --join test
         In this case after the join operation is done,we test if the destination 
         table is accessible from the server
      2. Positive myisampack --join test with an existing .frm file.
          We test the above case with an existing .frm file for the destination 
          table. It should return success even in this case.
      3. Positive myisampack --join test with no .frm file for source tables
         We test the join operation with no .frm files for source tables.It should
         complete the join operation without any warnings and error messages
      4. Negative myisampack --join test
         We test myisampack --join existing .MYI,.MDI,.frm files for the 
         destination table.It should fail with exit status 2 in this case.
[11 Nov 2008 14: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/58458

2902 Satya B	2008-11-11
      Fix for Bug#36573 myisampack --join does not create destination 
      table .frm file
            
      Problem:
      ========
      Myisampack --join did not create the destination table .frm file. 
      The user had to copy one of the source table .frm file as destination .frm 
      file for mysql server to recognize.This is just 'user-friendliness' issue.
            
      How it was solved
      =================
      
      After successful join and compression we copy the frm file from the first 
      source table.
      
            
      Functionality added
      ===================
      myisampack --join=/path/t3 /path/t1 /path/t2 creates 
      /path/t3.frm (which is bascially copied from first table's frm /path/t1)
      
      Tests
      =====
      Modified myisampack.test to test two scenario's
      1. Positive myisampack --join test
         In this case after the join operation is done,we test if the destination 
         table is accessible from the server
      2. Positive myisampack --join test with an existing .frm file.
          We test the above case with an existing .frm file for the destination 
          table. It should return success even in this case.
      3. Positive myisampack --join test with no .frm file for source tables
         We test the join operation with no .frm files for source tables.It should
         complete the join operation without any warnings and error messages
      4. Negative myisampack --join test
         We test myisampack --join existing .MYI,.MDI,.frm files for the 
         destination table.It should fail with exit status 2 in this case.
[19 Nov 2008 13:29] 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/59225

2936 Satya B	2008-11-19
      Fix for Bug#36573 myisampack --join does not create destination 
      table .frm file
            
      Problem:
      ========
      Myisampack --join did not create the destination table .frm file. 
      The user had to copy one of the source table .frm file as destination .frm 
      file for mysql server to recognize.This is just 'user-friendliness' issue.
            
      How it was solved
      =================
      After successful join and compression we copy the frm file from the first 
      source table.
            
      Functionality added
      ===================
      myisampack --join=/path/t3 /path/t1 /path/t2 creates 
      /path/t3.frm (which is bascially copied from first table's frm /path/t1)
      
      Tests
      =====
      Modified myisampack.test to test two scenario's
      1. Positive myisampack --join test
         In this case after the join operation is done,we test if the destination 
         table is accessible from the server
      2. Positive myisampack --join test with an existing .frm file.
          We test the above case with an existing .frm file for the destination 
          table. It should return success even in this case.
      3. Positive myisampack --join test with no .frm file for source tables
         We test the join operation with no .frm files for source tables.It should
         complete the join operation without any warnings and error messages
      4. Negative myisampack --join test
         We test myisampack --join existing .MYI,.MDI,.frm files for the 
         destination table.It should fail with exit status 2 in this case.
[21 Nov 2008 10:37] 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/59496

2936 Satya B	2008-11-21
      Fix for Bug#36573 myisampack --join does not create destination 
      table .frm file
            
      Problem:
      ========
      Myisampack --join did not create the destination table .frm file. 
      The user had to copy one of the source table .frm file as destination .frm 
      file for mysql server to recognize. This is just 'user-friendliness' issue.
            
      How it was solved
      =================
      After successful join and compression we copy the frm file from the first 
      source table.
            
      Functionality added
      ===================
      myisampack --join=/path/t3 /path/t1 /path/t2 creates 
      /path/t3.frm (which is bascially copied from first table's frm /path/t1)
      
      Tests
      =====
      Modified myisampack.test to test two scenario's
      1. Positive myisampack --join test
         In this case after the join operation is done,we test if the destination 
         table is accessible from the server
      2. Positive myisampack --join test with an existing .frm file.
          We test the above case with an existing .frm file for the destination 
          table. It should return success even in this case.
      3. Positive myisampack --join test with no .frm file for source tables
         We test the join operation with no .frm files for source tables. It should
         complete the join operation without any warnings and error messages
      4. Negative myisampack --join test
         We test myisampack --join with existing .MYI,.MDI,.frm files for the 
         destination table. It should fail with exit status 2 in this case.
[5 Feb 2009 13:03] 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/65331

3020 Satya B	2009-02-05
      Addition to BUG#36573 - myisampack --join does not create destination table .frm file
      
      Added FLUSH TABLES before myisampack --join operation to fix the test warnings or errors
[5 Feb 2009 13:40] 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/65340

3020 Satya B	2009-02-05
      Addition to BUG#36573 - myisampack --join does not create destination table .frm file
      
      Added FLUSH TABLES before myisampack --join operation to fix the test warnings or errors
      Removed unused variable in create_dest_frm() method
[14 Feb 2009 13:00] Bugs System
Pushed into 6.0.10-alpha (revid:matthias.leich@sun.com-20090212211028-y72faag15q3z3szy) (version source revid:alexey.kopytov@sun.com-20090206100220-tkvd9v83791i895x) (merge vers: 6.0.10-alpha) (pib:6)
[18 Feb 2009 20:25] Paul DuBois
Noted in 6.0.10 changelog.

myisampack --join did not create the destination table .frm file.
[25 Nov 2009 19:20] 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/91703

2944 Magne Mahre	2009-11-25
      Fix for Bug#36573 myisampack --join does not create destination 
      table .frm file
                  
      Problem:
      ========
      Myisampack --join did not create the destination table .frm file. 
      The user had to copy one of the source table .frm file as destination .frm 
      file for mysql server to recognize. This is just 'user-friendliness' issue.
                  
      How it was solved
      =================
      After successful join and compression we copy the frm file from the first 
      source table.
                  
      Functionality added
      ===================
      myisampack --join=/path/t3 /path/t1 /path/t2 creates 
      /path/t3.frm (which is bascially copied from first table's frm /path/t1)
            
      Tests
      =====
      Modified myisampack.test to test two scenario's
      1. Positive myisampack --join test
         In this case after the join operation is done,we test if the destination 
         table is accessible from the server
      2. Positive myisampack --join test with an existing .frm file.
         We test the above case with an existing .frm file for the destination 
         table. It should return success even in this case.
      3. Positive myisampack --join test with no .frm file for source tables
         We test the join operation with no .frm files for source tables. It should
         complete the join operation without any warnings and error messages
      4. Negative myisampack --join test
         We test myisampack --join with existing .MYI,.MDI,.frm files for the 
         destination table. It should fail with exit status 2 in this case.
[25 Nov 2009 19:23] 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/91705

2945 Magne Mahre	2009-11-25
      Addition to BUG#36573 - myisampack --join does not create destination table 
                            .frm file
            
      Added FLUSH TABLES before myisampack --join operation to fix the test 
      warnings or errors
      Removed unused variable in create_dest_frm() method
[25 Nov 2009 19:23] Magne Mæhre
Backported to 5.6.0, and pushed to next-mr-runtime
6-0 codebase revid:  2935.1.1  and 3019.2.1
[26 Nov 2009 12:48] 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/91795

2946 Magne Mahre	2009-11-26
      Fix for a bug when backporting/merging Bug#36573
[8 Dec 2009 6:45] Bugs System
Pushed into 6.0.14-alpha (revid:alik@ibmvm-20091208064346-e7bavsqpl86x26dy) (version source revid:alik@ibmvm-20091208064346-e7bavsqpl86x26dy) (merge vers: 6.0.14-alpha) (pib:13)
[8 Dec 2009 6:46] Bugs System
Pushed into 5.6.0-beta (revid:alik@ibmvm-20091207060840-4j0ks51bxwcsln6y) (version source revid:magne.mahre@sun.com-20091126124755-ve7nk9yuge5xmgnv) (merge vers: 5.6.0-beta) (pib:13)
[8 Dec 2009 16:38] Paul DuBois
Noted in 5.6.0 changelog.

Already fixed in 6.0.x.
[6 Mar 2010 10:52] Bugs System
Pushed into 5.5.3-m3 (revid:alik@sun.com-20100306103849-hha31z2enhh7jwt3) (version source revid:vvaintroub@mysql.com-20091210104731-27nl9weemor51ige) (merge vers: 5.6.0-beta) (pib:16)
[7 Mar 2010 18:37] Paul DuBois
Moved 5.6.0 changelog entry to 5.5.3.