1. 24 Jul, 2009 2 commits
    • Alexey Kopytov's avatar
      Manual merge. · 498dc4d3
      Alexey Kopytov authored
      498dc4d3
    • Alexey Kopytov's avatar
      Bug #46075: Assertion failed: 0, file .\protocol.cc, line 416 · 885292e4
      Alexey Kopytov authored
      In create_myisam_from_heap() mark all errors as fatal except 
      HA_ERR_RECORD_FILE_FULL for a HEAP table.
      
      Not doing so could lead to problems, e.g. in a case when a
      temporary MyISAM table gets overrun due to its MAX_ROWS limit
      while executing INSERT/REPLACE IGNORE ... SELECT. 
      The SELECT execution was aborted, but the error was 
      converted to a warning due to IGNORE clause, so neither 'ok' 
      nor 'error' packet could be sent back to the client. This 
      condition led to hanging client when using 5.0 server, or 
      assertion failure in 5.1.
      
      
      mysql-test/r/insert_select.result:
        Added a test case for bug #46075.
      mysql-test/t/insert_select.test:
        Added a test case for bug #46075.
      sql/sql_select.cc:
        In create_myisam_from_heap() mark all errors as fatal except 
        HA_ERR_RECORD_FILE_FULL for a HEAP table.
      885292e4
  2. 12 Jul, 2009 1 commit
  3. 11 Jul, 2009 1 commit
    • Gleb Shchepa's avatar
      Bug #41156: List of derived tables acts like a chain of · 8b278847
      Gleb Shchepa authored
                  mutually-nested subqueries
      
      Queries of the form
      
        SELECT * FROM (SELECT 1) AS t1,
                      (SELECT 2) AS t2,...
                      (SELECT 32) AS t32
      
      caused the "Too high level of nesting for select" error
      as if the query has a form
      
        SELECT * FROM (SELECT 1 FROM (SELECT 2 FROM (SELECT 3 FROM...
      
      
      The table_factor parser rule has been modified to adjust
      the LEX::nest_level variable value after every derived table.
      
      
      mysql-test/r/derived.result:
        Added test case for bug #41156.
      mysql-test/t/derived.test:
        Added test case for bug #41156.
      sql/sql_yacc.yy:
        Bug #41156: List of derived tables acts like a chain of
                    mutually-nested subqueries
        
        The select_derived2 parser rule calls mysql_new_select()
        calls push_context() and nest_level++, however only
        the pop_context() was called at the end of derived table
        parsing at the table_factor rule.
        
        The table_factor parser rule has been modified to adjust
        the LEX::nest_level variable value after every derived table.
      8b278847
  4. 10 Jul, 2009 15 commits
    • Staale Smedseng's avatar
      Merge from 5.1-bugteam · 03793f4c
      Staale Smedseng authored
      03793f4c
    • Georgi Kodinov's avatar
      automerge · 9752d4c8
      Georgi Kodinov authored
      9752d4c8
    • Georgi Kodinov's avatar
      automerge · e5ecb481
      Georgi Kodinov authored
      e5ecb481
    • Georgi Kodinov's avatar
      924c8c5b
    • Georgi Kodinov's avatar
      merge 5.1-main -> 5.1 · 7c510559
      Georgi Kodinov authored
      7c510559
    • Georgi Kodinov's avatar
      merged 5.0-bugteam->5.1-bugteam · 2b4ec292
      Georgi Kodinov authored
      2b4ec292
    • Georgi Kodinov's avatar
      fixed the CPU checking code. · 55f514ad
      Georgi Kodinov authored
      55f514ad
    • Georgi Kodinov's avatar
      merge 5.0-main -> 5.0-bugteam · af7d0595
      Georgi Kodinov authored
      af7d0595
    • Davi Arnaut's avatar
      Bug#21704: Renaming column does not update FK definition · 3e642d15
      Davi Arnaut authored
      Remove commented-out test case. It has been moved to innodb_bug21704.test
      3e642d15
    • Georgi Kodinov's avatar
      Bug #46080: group_concat(... order by) crashes server when · 5beae1f8
      Georgi Kodinov authored
        sort_buffer_size cannot allocate
      
      The NULL return from tree_insert() (on low memory) was not
      checked for in Item_func_group_concat::add(). As a result
      on low memory conditions a crash happens.
      
      Fixed by properly checking the return code.
      5beae1f8
    • Satya B's avatar
      Applying InnoDB snapshot 5.1-ss5488,part 4. Fixes BUG#21704 · 526a42e2
      Satya B authored
      1. BUG#21704 - Renaming column does not update FK definition
      
      2. Changes in mysql-test/include/mtr_warnings.sql so that the testcase
         for BUG#21704 doesn't fail because of the warnings generated.
      
      Detailed revision comments:
      
      r5488 | vasil | 2009-07-09 19:16:44 +0300 (Thu, 09 Jul 2009) | 13 lines
      branches/5.1:
      
      Fix Bug#21704 Renaming column does not update FK definition
      
      by checking whether a column that participates in a FK definition is being
      renamed and denying the ALTER in this case.
      
      The patch was originally developed by Davi Arnaut <Davi.Arnaut@Sun.COM>:
      http://lists.mysql.com/commits/77714
      and was later adjusted to conform to InnoDB coding style by me (Vasil),
      I also added some more comments and moved the bug specific mysql-test to
      a separate file to make it more manageable and flexible.
      
      526a42e2
    • Alexey Kopytov's avatar
      Bug #45796: invalid memory reads and writes when altering merge · 2b26729e
      Alexey Kopytov authored
                  and base tables 
      
      myrg_attach_children() could reuse a buffer that was allocated 
      previously based on a definition of a child table. The problem 
      was that the child's definition might have been changed, so 
      reusing the buffer could lead to crashes or valgrind errors 
      under some circumstances. 
       
      Fixed by changing myrg_attach_children() so that the 
      rec_per_key_part buffer is reused only when the child table
      have not changed, and reallocated otherwise (the old buffer is 
      deallocated if necessary).
      
      
      include/myisammrg.h:
        Added a pointer to need_compat_check as an argument to
        myrg_attach_children().
      mysql-test/r/merge.result:
        Added a test case for bug #45796.
      mysql-test/t/merge.test:
        Added a test case for bug #45796.
      storage/myisammrg/ha_myisammrg.cc:
        Pass a pointer to need_compat_check to myrg_attach_children().
      storage/myisammrg/myrg_open.c:
        Changed myrg_attach_children() so that the 
        rec_per_key_part buffer is reused only when the child table
        have not changed, and reallocated otherwise (the old buffer 
        is deallocated if necessary).
      2b26729e
    • Satya B's avatar
      Applying InnoDB snapshot 5.1-ss5488 part3,Fixes BUG#45814 · 38d9fa89
      Satya B authored
      Detailed revision comments:
      
      r5440 | vasil | 2009-06-30 13:04:29 +0300 (Tue, 30 Jun 2009) | 8 lines
      branches/5.1:
      
      Fix Bug#45814 URL reference in InnoDB server errors needs adjusting to match documentation
      
      by changing the URL from
      http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting.html to
      http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting-datadict.html
      
      38d9fa89
    • Satya B's avatar
      Applying InnoDB snapshot 5.1-ss5488,part 2. Fixes BUG#45749 · c64b76ed
      Satya B authored
      BUG#45749 - Race condition in SET GLOBAL innodb_commit_concurrency=DEFAULT
      
      Detailed revision comments:
      
      r5419 | marko | 2009-06-25 16:11:57 +0300 (Thu, 25 Jun 2009) | 18 lines
      branches/5.1: Merge r5418 from branches/zip:
      
        ------------------------------------------------------------------------
        r5418 | marko | 2009-06-25 15:55:52 +0300 (Thu, 25 Jun 2009) | 5 lines
        Changed paths:
           M /branches/zip/ChangeLog
           M /branches/zip/handler/ha_innodb.cc
           M /branches/zip/mysql-test/innodb_bug42101-nonzero.result
           M /branches/zip/mysql-test/innodb_bug42101-nonzero.test
           M /branches/zip/mysql-test/innodb_bug42101.result
           M /branches/zip/mysql-test/innodb_bug42101.test
        
        branches/zip: Fix a race condition caused by
        SET GLOBAL innodb_commit_concurrency=DEFAULT. (Bug #45749)
        When innodb_commit_concurrency is initially set nonzero,
        DEFAULT would change it back to 0, triggering Bug #42101.
        rb://139 approved by Heikki Tuuri.
        ------------------------------------------------------------------------
      c64b76ed
    • Satya B's avatar
      Applying InnoDB snashot 5.1-ss5488, part 1 · bb4778b5
      Satya B authored
      1. Fixes build warnings caused by applying snapshot 5.1-ss5282
      
      2. Fix the Makefile.am in storage/innobase to remove the header file
         'fsp0types.h' which was added twice to fix build warning generated 
         after applying the 5.1-ss5282 snapshot
      
      Detailed revision comments:
      
      r5410 | marko | 2009-06-24 22:26:34 +0300 (Wed, 24 Jun 2009) | 2 lines
      branches/5.1: Add missing #include "mtr0log.h" to avoid warnings
      when compiling with -DUNIV_MUST_NOT_INLINE.
      bb4778b5
  5. 08 Jul, 2009 4 commits
    • Staale Smedseng's avatar
      Bug #43397 mysql headers redefine pthread_mutex_init · ab2f3dd2
      Staale Smedseng authored
      unnecessarily
            
      The problem is that libmysqlclient.so is built with THREAD
      undefined, while a client compiling against the same header
      files will see THREAD as defined and definitions in
      my_pthread.h will be included, possibly resulting in undefined
      symbols that cannot be resolved with libmysqlclient.so.
            
      The suggested solution is to require that clients wanting to
      link with libmysqlclient.so should be built with
      MYSQL_CLIENT_NO_THREADS defined. This requires a documentation
      change, and more details for this will be supplied if this
      patch is approved.
            
      The MYSQL_CLIENT_NO_THREADS define was renamed from
      UNDEF_THREADS_HACK, to get a more suitable (less suspicious)
      name for the define. (The UNDEF_THREADS_HACK is retained for
      backwards compatibility, though.)
            
      This patch is also in anticipation of WL#4958, which will
      remove this problem altogether by dropping the building of
      libmysqlclient.
      ab2f3dd2
    • Georgi Kodinov's avatar
      automerge · 88430260
      Georgi Kodinov authored
      88430260
    • Georgi Kodinov's avatar
      Addendum to the fix for bug 45807 : initialize a member needed in · ead1ce94
      Georgi Kodinov authored
      Item_field::fix_fields()
      ead1ce94
    • Georgi Kodinov's avatar
  6. 07 Jul, 2009 10 commits
  7. 09 Jul, 2009 4 commits
  8. 08 Jul, 2009 3 commits
    • Davi Arnaut's avatar
      Fix warnings generated by SunStudio and GCC. · a56ab623
      Davi Arnaut authored
      Based upon patch contributed by Stewart Smith
      
      mysql-test/lib/My/SafeProcess/safe_process.cc:
        Fix style -- remove unneeded spaces.
        Specify C linkage for the signal handling functions.
        Check return value from read()/write().
      a56ab623
    • Satya B's avatar
      Bug#35111 - Truncate a MyISAM partitioned table does not reset · 02e70f16
      Satya B authored
      the auto_increment value
            
      This is an alternative patch that instead of allowing RECREATE TABLE
      on TRUNCATE TABLE it implements reset_auto_increment that is called
      after delete_all_rows.
      
      Note: this bug was fixed by Mattias Jonsson:
      Pusing this patch: http://lists.mysql.com/commits/70370
      
      
      mysql-test/suite/parts/r/partition_auto_increment_memory.result:
        Bug#35111: Truncate a MyISAM partitioned table does not reset
        the auto_increment value
      mysql-test/suite/parts/r/partition_auto_increment_myisam.result:
        Bug#35111: Truncate a MyISAM partitioned table does not reset
        the auto_increment value
      sql/ha_partition.cc:
        Bug#35111: Truncate a MyISAM partitioned table does not reset
        the auto_increment value
        
        Added reset_auto_increment, to be used after delete_all_rows
        to simulate truncate.
      storage/heap/ha_heap.cc:
        Bug#35111: Truncate a MyISAM partitioned table does not reset
        the auto_increment value
        
        Added reset_auto_increment, to be used after delete_all_rows
        to simulate truncate
      storage/heap/ha_heap.h:
        Bug#35111: Truncate a MyISAM partitioned table does not reset
        the auto_increment value
        
        Added reset_auto_increment, to be used after delete_all_rows
        to simulate truncate
      storage/myisam/ha_myisam.cc:
        Bug#35111: Truncate a MyISAM partitioned table does not reset
        the auto_increment value
        
        Added reset_auto_increment, to be used after delete_all_rows
        to simulate truncate.
      storage/myisam/ha_myisam.h:
        Bug#35111: Truncate a MyISAM partitioned table does not reset
        the auto_increment value
        
        Added reset_auto_increment, to be used after delete_all_rows
        to simulate truncate.
      02e70f16
    • V Narayanan's avatar
      Bug#45983 ibmdb2i_create_index_option=1 not working for primary key · 2e8eb6ce
      V Narayanan authored
      With ibmdb2i_create_index_option set to 1, creating an IBMDB2I table
      with a primary key should produce an additional index that uses EBCDIC
      hexadecimal sorting. However, this does not work. Adding indexes that
      are not primary keys does work. The ibmdb2i_create_index_option should
      be honoured when creating a table with a primary key.
      
      This patch adds code to the create() function to check for the value
      of the ibmdb2i_create_index_option variable and, when appropriate, to 
      generate a *HEX-based shadow index in DB2 for the primary key. Previously 
      this behavior was limited to secondary indexes.
      
      Additionally, this patch restricts the creation of shadow indexes to
      cases in which a non-*HEX sort sequence is used, as the documentation
      for ibmdb2i_create_index_option describes. Previously, the shadow index
      would in some cases be created even when the MySQL-specific index used
      *HEX sorting, leading to redundant indexes.
      
      Finally, the code used to generate the list of fields for indexes 
      and the code used to generate the SQL statement for the shadow
      indexes has been refactored into individual functions.
      
      mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_45983.result:
        Bug#45983 ibmdb2i_create_index_option=1 not working for primary key
        
        Result file for the test case.
      mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_45983.test:
        Bug#45983 ibmdb2i_create_index_option=1 not working for primary key
        
        Add tests to verify that the ibmdb2i_create_index_option is being honoured
        when creating a table with a primary key.
      storage/ibmdb2i/ha_ibmdb2i.cc:
        Bug#45983 ibmdb2i_create_index_option=1 not working for primary key
        
        - Add code to the create() function to check for the value of the
          ibmdb2i_create_index_option variable and, when appropriate, to 
          generate a *HEX-based shadow index in DB2 for the primary key.
        
        - Restrict the creation of shadow indexes to cases in which a
          non-*HEX sort sequence is used.
        
        - Refractor code used to generate the list of fields for indexes
          and the code used to generate the SQL statement for the shadow
          indexes into individual functions.
      storage/ibmdb2i/ha_ibmdb2i.h:
        Bug#45983 ibmdb2i_create_index_option=1 not working for primary key
        
        Add function prototypes for the functions that.
        
        - Generate the list of fields for indexes
        - Generate the SQL statement for the shadow
          indexes
      2e8eb6ce