1. 29 Sep, 2009 4 commits
    • Martin Hansson's avatar
      Merge of Bug#35996. · 4a56df93
      Martin Hansson authored
      4a56df93
    • Davi Arnaut's avatar
      Bug#45567: Fast ALTER TABLE broken for enum and set · 8d3d35ea
      Davi Arnaut authored
      The problem was that appending values to the end of an existing
      ENUM or SET column was being treated as table data modification,
      preventing a immediately (fast) table alteration that occurs when
      only table metadata is being modified.
      
      The cause was twofold: adding a enumeration or set members to the 
      end of the list of valid member values was not being considered
      a "compatible" table alteration, and for SET columns, the check
      was being done upon the max display length and not the underlying
      (pack) length of the field.
      
      The solution is to augment the function that checks wether two ENUM
      or SET fields are compatible -- by comparing the pack lengths and
      performing a limited comparison of the member values.
      
      mysql-test/r/alter_table.result:
        Add test case result for Bug#45567
      mysql-test/t/alter_table.test:
        Add test case for Bug#45567
      sql/field.cc:
        Check whether two fields can be considered 'equal' for table
        alteration purposes. Fields are equal if they retain the same
        pack length and if new members are added to the end of the list.
      sql/field.h:
        Add comment and remove method.
      8d3d35ea
    • Mattias Jonsson's avatar
      merge · 1d1a293b
      Mattias Jonsson authored
      1d1a293b
    • Sergey Glukhov's avatar
      Bug#47150 Assertion in Field_long::val_int() on MERGE + TRIGGER + multi-table UPDATE · 5f8bb5c5
      Sergey Glukhov authored
      The bug is not related to MERGE table or TRIGGER. More correct description
      would be 'assertion on multi-table UPDATE + NATURAL JOIN + MERGEABLE VIEW'.
      On PREPARE stage(see test case) we call mark_common_columns() func which
      creates ON condition for NATURAL JOIN and sets appropriate
      table read_set bitmaps for fields which are used in ON condition.
      On EXECUTE stage mark_common_columns() is not called, we set
      necessary read_set bitmaps in setup_conds(). But 'B.f1' field
      is already processed and related item alredy fixed before
      setup_conds() as updated field and setup_conds can not set
      read_set bitmap because of that.
      The fix is to set read_set bitmap for appropriate table field even
      if Item_direct_view_ref item which represents a refernce to this field
      is fixed.
      
      
      
      mysql-test/r/join.result:
        test result
      mysql-test/t/join.test:
        test case
      sql/item.cc:
        The bug is not related to MERGE table or TRIGGER. More correct description
        would be 'assertion on multi-table UPDATE + NATURAL JOIN + MERGEABLE VIEW'.
        On PREPARE stage(see test case) we call mark_common_columns() func which
        creates ON condition for NATURAL JOIN and sets appropriate
        table read_set bitmaps for fields which are used in ON condition.
        On EXECUTE stage mark_common_columns() is not called, we set
        necessary read_set bitmaps in setup_conds(). But 'B.f1' field
        is already processed and related item alredy fixed before
        setup_conds() as updated field and setup_conds can not set
        read_set bitmap because of that.
        The fix is to set read_set bitmap for appropriate table field even
        if Item_direct_view_ref item which represents a refernce to this field
        is fixed.
      5f8bb5c5
  2. 28 Sep, 2009 12 commits
    • Jonathan Perkin's avatar
      Merge up to mysql-5.1-bugteam · 54631d61
      Jonathan Perkin authored
      54631d61
    • Jonathan Perkin's avatar
      Merge to mysql-5.0-bugteam · f4d20df9
      Jonathan Perkin authored
      f4d20df9
    • Jonathan Perkin's avatar
      ea295c23
    • Georgi Kodinov's avatar
      13444134
    • Georgi Kodinov's avatar
      merge · 7aece82c
      Georgi Kodinov authored
      7aece82c
    • Magnus Blåudd's avatar
      Merge · 41a2f90b
      Magnus Blåudd authored
      41a2f90b
    • Magnus Blåudd's avatar
      Merge bug#42850 to 5.1 · 0b8953ba
      Magnus Blåudd authored
      0b8953ba
    • Magnus Blåudd's avatar
      Merge bug#42850 to 5.0 · c4318b56
      Magnus Blåudd authored
      c4318b56
    • Martin Hansson's avatar
      · e86f08d0
      Martin Hansson authored
      Bug#35996: SELECT + SHOW VIEW should be enough to display
      view definition
      
      During SHOW CREATE VIEW there is no reason to 'anonymize'
      errors that name objects that a user does not have access
      to. Moreover it was inconsistently implemented. For example
      base tables being referenced from a view appear to be ok,
      but not views. The manual on the other hand is clear: If a
      user has the privileges SELECT and SHOW VIEW, the view
      definition is available to that user, period. The fix
      changes the behavior to support the manual.
      
      
      mysql-test/r/information_schema_db.result:
        Bug#35996: Changed warnings.
      mysql-test/r/view_grant.result:
        Bug#35996: Changed warnings, test result.
      mysql-test/t/information_schema_db.test:
        Bug#35996: Changed test case to reflect new behavior.
      mysql-test/t/view_grant.test:
        Bug#35996: Test case.
      sql/sql_acl.cc:
        Bug#35996: Code no longer necessary, we may as well exempt 
        SHOW CREATE VIEW from this check.
      sql/sql_show.cc:
        Bug#35996: The fix: An Internal_error_handler that hides
        most errors raised by access checking as they are not
        relevant to SHOW CREATE VIEW.
      sql/table.cc:
        Bug#35996: Restricting this hack to act only when there is 
        no Internal_error_handler.
      e86f08d0
    • Martin Hansson's avatar
      · 2dbe095c
      Martin Hansson authored
      Bug#46958: Assertion in Diagnostics_area::set_ok_status, 
      trigger, merge table
                  
      The problem with break statements is that they have very
      local effects. Hence a break statement within the inner loop
      of a nested-loops join caused execution to proceed to the
      next table even though a serious error occurred. The problem
      was fixed by breaking out the inner loop into its own
      method. The change empowers all errors to terminate the
      execution.
                  
      The errors that will now halt multi-DELETE execution
      altogether are 
        - triggers returning errors
        - handler errors
        - server being killed
      
      
      mysql-test/r/delete.result:
        Bug#46958: Test result.
      mysql-test/t/delete.test:
        Bug#46958: Test case.
      sql/sql_class.h:
        Bug#46958: New method declaration.
      sql/sql_delete.cc:
        Bug#46958: New method implementation.
      2dbe095c
    • unknown's avatar
      BUG#43579 mysql_upgrade tries to alter log tables on replicated database · 96665fd9
      unknown authored
      All statements executed by mysql_upgrade are binlogged and then are replicated to slave.
      This will result in some errors. The report of this bug has demonstrated some examples.
      
      Master and slave should be upgraded separately. All statements executed by
      mysql_upgrade will not be binlogged. 
      --write-binlog and --skip-write-binlog options are added into mysql_upgrade. 
      These options control whether sql statements are binlogged or not. 
      96665fd9
    • unknown's avatar
      BUG #46572 DROP TEMPORARY table IF EXISTS does not have a consistent behavior in ROW mode · c6186a25
      unknown authored
            
      In RBR, 'DROP TEMPORARY TABLE IF EXISTS...' statement is binlogged when the table
      does not exist.
            
      In fact, 'DROP TEMPORARY TABLE ...' statement should never be binlogged in RBR
      no matter if the table exists or not. 
      This patch addresses this by checking whether we are dropping a
      temporary table or not, when building the custom drop statement.
      
      c6186a25
  3. 27 Sep, 2009 3 commits
    • Luis Soares's avatar
      BUG#47312: RBR: Disabling key on slave breaks replication: · 3d211f39
      Luis Soares authored
      HA_ERR_WRONG_INDEX
            
      In RBR, disabling keys on slave table will break replication when
      updating or deleting a record. When the slave thread tries to
      find the row, by searching in the storage engine, it checks
      whether the table has a key or not. If it has one, then the slave
      thread uses it to search the record.
            
      Nonetheless, the slave only checks whether the key exists or not,
      it does not verify if it is active. Should the key be
      disabled (eg, DBA has issued an ALTER TABLE ... DISABLE KEYS)
      then it will result in error: HA_ERR_WRONG_INDEX.
            
      This patch addresses this issue by making the slave thread also
      check whether the key is active or not before actually using it.
      3d211f39
    • unknown's avatar
      Bug #43913 rpl_cross_version can't pass on conflicts complainig clash with --slave-load-tm · 6368919f
      unknown authored
      The failure is not reproduced on 5.1, so enable the 'rpl_cross_version' test.
      
      mysql-test/suite/rpl/t/disabled.def:
        Got rid of the line for enabling 'rpl_cross_version' test.
      6368919f
    • unknown's avatar
      Bug #46931 rpl.rpl_get_master_version_and_clock fails on hpux11.31 · 09efe92a
      unknown authored
      Network error happened here, but it can be caused by CR_CONNECTION_ERROR, 
      CR_CONN_HOST_ERROR, CR_SERVER_GONE_ERROR, CR_SERVER_LOST, ER_CON_COUNT_ERROR, 
      and ER_SERVER_SHUTDOWN. We just check CR_SERVER_LOST here, so the test fails.
      
      To fix the problem, check all errors that can be cause by the master shutdown.
      
      mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test:
        Added a 'if' sentence to check all errors that can be cause by the master shutdown.
      mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result:
        Test result is updated duo to the patch of bug#46931
      09efe92a
  4. 25 Sep, 2009 5 commits
    • Omer BarNir's avatar
      Checking in new version of 'mysql-stress-test.pl that was used for the last few month · 78b3f824
      Omer BarNir authored
      from test-extra tree.
      
      Changes include improvements to error handling and are based on WL#4685
      78b3f824
    • Georgi Kodinov's avatar
      fixed a typo in valgrind.supp · 5dc38584
      Georgi Kodinov authored
      5dc38584
    • Georgi Kodinov's avatar
      merge · 252c2954
      Georgi Kodinov authored
      252c2954
    • Mattias Jonsson's avatar
      Bug#32430: 'show innodb status' causes errors · 43e6919d
      Mattias Jonsson authored
      Invalid (old?) table or database name in logs
      
      Problem was still not completely fixed, due to
      qouting.
      
      This is the server side only fix (in explain_filename),
      the change from filename_to_tablename to use explain_filename
      in the InnoDB code must be done before the bug is
      fixed.
      
      
      mysql-test/include/have_not_innodb_plugin.inc:
        Bug#32430: 'show innodb status' causes errors
        Invalid (old?) table or database name in logs
        
        Added include file to allow test for only the
        'old' built-in innodb engine
      mysql-test/r/not_true.require:
        Bug#32430: 'show innodb status' causes errors
        Invalid (old?) table or database name in logs
        
        Added require to match 'not' TRUE
      mysql-test/r/partition_innodb_builtin.result:
        Bug#32430: 'show innodb status' causes errors
        Invalid (old?) table or database name in logs
        
        New result file for partitioning specific to
        the 'old' built-in innodb engine
      mysql-test/r/partition_innodb_plugin.result:
        Bug#32430: 'show innodb status' causes errors
        Invalid (old?) table or database name in logs
        
        New result file for partitioning specific to
        the new plugin innodb engine
      mysql-test/t/disabled.def:
        Bug#32430: 'show innodb status' causes errors
        Invalid (old?) table or database name in logs
        
        Disabling the new test until the fix is
        included in the InnoDB source too.
      mysql-test/t/partition_innodb_builtin.test:
        Bug#32430: 'show innodb status' causes errors
        Invalid (old?) table or database name in logs
        
        New test file for partitioning specific to
        the 'old' built-in innodb engine
      mysql-test/t/partition_innodb_plugin.test:
        Bug#32430: 'show innodb status' causes errors
        Invalid (old?) table or database name in logs
        
        New test file for partitioning specific to
        the new plugin innodb engine
      sql/mysql_priv.h:
        Bug#32430: 'show innodb status' causes errors
        Invalid (old?) table or database name in logs
        
        Added thd as a parameter to explain_filename
        to be able to use the correct quote character
      sql/sql_table.cc:
        Bug#32430: 'show innodb status' causes errors
        Invalid (old?) table or database name in logs
        
        Changed explain_filename, so that it does qouting
        correctly according to the sessions qoute char.
      43e6919d
    • Georgi Kodinov's avatar
      3787988c
  5. 24 Sep, 2009 5 commits
  6. 23 Sep, 2009 9 commits
    • Staale Smedseng's avatar
      Bug #43414 Parenthesis (and other) warnings compiling MySQL · 6a89842e
      Staale Smedseng authored
      with gcc 4.3.2
      
      Cleaning up warnings not present in 5.0.
      6a89842e
    • Alexander Nozdrin's avatar
      A patch for Bug#47474 (mysqld hits Dbug_violation_helper assert · d4991387
      Alexander Nozdrin authored
      when compiled with Sun Studio compiler).
      
      The thing is that Sun Studio compiler calls destructor of stack
      objects when pthread_exit() is called. That triggered an assertion
      in DBUG_ENTER()/DBUG_RETURN() validation logic (if DBUG_ENTER() is
      used in the beginning of function, all returns should be replaced
      by DBUG_RETURN/DBUG_VOID_RETURN macros).
      
      A fix is to explicitly use DBUG_LEAVE macro.
      d4991387
    • Satya B's avatar
      merge to mysql-5.1-bugteam · e6afad88
      Satya B authored
      e6afad88
    • Satya B's avatar
      Additional Fix for BUG#44030 - Error: (1500) Couldn't read the MAX(ID) autoinc · 1eef7665
      Satya B authored
                                     value from the index (PRIMARY)
      
      
      With the fix for BUG#46760, we correctly flag the presence of row_type 
      only when it's actually changed and enables the FAST ALTER TABLE which was
      disabled with the BUG#39200.
      
      So the changes made by BUG#46760 makes MySQL data dictionaries to be out of 
      sync but they are handled already by InnoDB with this BUG#44030.
      
      The test was originally written to handle this but we requested Innodb to
      update the test as the data dictionaries were in sync after the fix for 
      BUG#39200.
      
      Adjusting the innodb-autoinc testcase as mentioned in the comments.
      
      mysql-test/lib/mtr_cases.pm:
        Re-enable the innodb-autoinc test case for plugin as we have a common
        result file.
      mysql-test/r/innodb-autoinc.result:
        Additional Fix for BUG#44030 - Error: (1500) Couldn't read the MAX(ID) autoinc 
                                       value from the index (PRIMARY)
        
        Adjust the innodb-autoinc testcase as the patch for BUG#46760 enables the 
        FAST ALTER TABLE and makes the data dictonaries go out of sync. This is 
        expected in the testcase.
      mysql-test/t/innodb-autoinc.test:
        Additional Fix for BUG#44030 - Error: (1500) Couldn't read the MAX(ID) autoinc 
                                       value from the index (PRIMARY)
        
        Adjust the innodb-autoinc testcase as the patch for BUG#46760 enables the 
        FAST ALTER TABLE and makes the data dictonaries go out of sync. This is 
        expected in the testcase.
      1eef7665
    • Georgi Kodinov's avatar
      automerge · 9a42d81f
      Georgi Kodinov authored
      9a42d81f
    • Sergey Glukhov's avatar
      Bug#45989 memory leak after explain encounters an error in the query · beb519e3
      Sergey Glukhov authored
      the fix is reverted from 5.1, mysql-pe as 
      unnecessary(no valgrind warnings there).
      
      sql/sql_select.cc:
        the fix is reverted from 5.1, mysql-pe as 
        unnecessary(no valgrind warnings there).
      beb519e3
    • Georgi Kodinov's avatar
      automerge · 9910148c
      Georgi Kodinov authored
      9910148c
    • Georgi Kodinov's avatar
      automerge · 4f2949b8
      Georgi Kodinov authored
      4f2949b8
    • Georgi Kodinov's avatar
      automerge · 8705b0e1
      Georgi Kodinov authored
      8705b0e1
  7. 22 Sep, 2009 2 commits
    • Davi Arnaut's avatar
      Bug#45498: Socket variable not available on Windows · 83bc7980
      Davi Arnaut authored
      The "socket" variable is not available on Windows even though
      the --socket option can be used to specify the pipe name for
      local connections that use a named pipe.
      
      The solution is to ensure that the variable is always defined.
      
      
      mysql-test/r/windows.result:
        Add test case result for Bug#45498
      mysql-test/t/windows.test:
        Add test case for Bug#45498
      sql/set_var.cc:
        socket variable must always be present.
      83bc7980
    • Anurag Shekhar's avatar
      merged with local branch. · fe0437d3
      Anurag Shekhar authored
      fe0437d3