1. 30 Jun, 2007 2 commits
  2. 29 Jun, 2007 11 commits
  3. 28 Jun, 2007 5 commits
    • unknown's avatar
      Bug#25513 · dba70720
      unknown authored
        "Federared Transactions Failure"
        Bug occurs when the user performs an operation which inserts more than 
        one row into the federated table and the federated table references a 
        remote table stored within a transactional storage engine. When the
        insert operation for any one row in the statement fails due to 
        constraint violation, the federated engine is unable to perform 
        statement rollback and so the remote table contains a partial commit. 
        The user would expect a statement to perform the same so a statement 
        rollback is expected.
        This bug was fixed by implementing  bulk-insert handling into the
        federated storage engine. This will relieve the bug for most common
        situations by enabling the generation of a multi-row insert into the
        remote table and thus permitting the remote table to perform 
        statement rollback when neccessary.
        The multi-row insert is limited to the maximum packet size between 
        servers and should the size overflow, more than one insert statement 
        will be sent and this bug will reappear. Multi-row insert is disabled
        when an "INSERT...ON DUPLICATE KEY UPDATE" is being performed.
        The bulk-insert handling will offer a significant performance boost 
        when inserting a large number of small rows.
      This patch builds on Bug29019 and Bug25511
      
      
      sql/ha_federated.cc:
        bug25513
          new member methods:
            start_bulk_insert() - initializes memory for bulk insert
            end_bulk_insert() - sends any remaining bulk insert and frees memory
            append_stmt_insert() - create the INSERT statement
      sql/ha_federated.h:
        bug25513
          new member value:
            bulk_insert
          new member methods:
            start_bulk_insert(), end_bulk_insert(), append_stmt_insert()
          make member methods private:
            read_next(), index_read_idx_with_result_set()
      mysql-test/r/federated_innodb.result:
        New BitKeeper file ``mysql-test/r/federated_innodb.result''
      mysql-test/t/federated_innodb-slave.opt:
        New BitKeeper file ``mysql-test/t/federated_innodb-slave.opt''
      mysql-test/t/federated_innodb.test:
        New BitKeeper file ``mysql-test/t/federated_innodb.test''
      dba70720
    • unknown's avatar
      Bug#25511 · 94beb7cd
      unknown authored
        "Federated INSERT failures"
        Federated does not correctly handle "INSERT...ON DUPLICATE KEY UPDATE"
        However, implementing such support is not reasonably possible without
        increasing complexity of the storage engine: checking that constraints
        on remote server match local server and parsing error messages.
        This patch causes 'ON DUPLICATE KEY' to fail with ER_DUP_KEY message
        if a conflict occurs and not to fail silently.
      
      
      include/my_base.h:
        bug25511
          new storage engine hint: HA_EXTRA_INSERT_WITH_UPDATE
      mysql-test/r/federated.result:
        test for bug25511
      mysql-test/t/federated.test:
        test for bug25511
      sql/ha_federated.cc:
        bug25511
          implement support for handling HA_EXTRA_INSERT_WITH_UPDATE hint
      sql/ha_federated.h:
        bug25511
          new property: insert_dup_update
      sql/sql_insert.cc:
        bug25511
          implement support for HA_EXTRA_INSERT_WITH_UPDATE
          When checking duplicates flag, if it is DUP_UPDATE, send hint
          to the storage engine.
      94beb7cd
    • unknown's avatar
      BUG#29207 - archive table reported as corrupt by check table · c69012d3
      unknown authored
      After merge fix.
      
      
      mysql-test/r/archive.result:
        After merge fix.
      c69012d3
    • unknown's avatar
      Bug#29019 · 0e5e884b
      unknown authored
        "REPLACE/INSERT IGNORE/UPDATE IGNORE doesn't work"
        Federated does not record neccessary HA_EXTRA flags in order to
        support REPLACE/INSERT IGNORE/UPDATE IGNORE.
        Implement ::extra() to capture flags neccessary for functionality.
      New function append_ident() to better escape identifiers consistantly.
      
      
      mysql-test/r/federated.result:
        test for bug29019
      mysql-test/t/federated.test:
        test for bug29019
      sql/ha_federated.cc:
        Bug29019
          Federated does not record neccessary HA_EXTRA flags in order to
          support REPLACE/INSERT IGNORE/UPDATE IGNORE.
          Implement ::extra() to capture flags neccessary for functionality.
        New function append_ident() to better escape identifiers consistantly.
      sql/ha_federated.h:
        bug29019
          add 2 member values to ha_federated class
            ignore_duplicates and replace_duplicates.
          add 1 member method to ha_federated class
            extra()
      0e5e884b
    • unknown's avatar
      Merge mysql.com:/home/svoj/devel/mysql/BUG29250/mysql-5.0-engines · 8671dbd4
      unknown authored
      into  mysql.com:/home/svoj/devel/mysql/BUG29250/mysql-5.1-engines
      
      
      mysql-test/t/archive.test:
        Auto merged
      mysql-test/r/archive.result:
        Use local.
      storage/archive/ha_archive.cc:
        Manual merge.
      8671dbd4
  4. 27 Jun, 2007 1 commit
    • unknown's avatar
      BUG#29207 - archive table reported as corrupt by check table (P1) · a38b1ae7
      unknown authored
      CHECK TABLE against ARCHIVE table may falsely report table corruption,
      or cause server crash.
      
      Fixed by using proper buffer for CHECK TABLE.
      
      Affects both 5.0 and 5.1.
      
      
      mysql-test/r/archive.result:
        A test case for BUG#28916.
      mysql-test/t/archive.test:
        A test case for BUG#28916.
      sql/ha_archive.cc:
        We call Field::get_length() from get_row(). Field::get_length() assumes
        that the row was read into table->record[0] buffer, which is not the
        case when we check a table. As a result we get wrongly initialized
        blob length.
        
        Use table->record[0] as record buffer for check table instead.
      a38b1ae7
  5. 26 Jun, 2007 1 commit
    • unknown's avatar
      Bug #29245: Bad Merge Caused Error Codes Conflict between 5.0/5.1 · ae398d99
      unknown authored
      Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      
      
      mysql-test/r/backup.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/events_bugs.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/events_trans.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/ndb_dd_basic.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/ndb_dd_ddl.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/ndb_gis.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/ndb_row_format.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/rpl_extraCol_innodb.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/rpl_extraCol_myisam.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/rpl_incident.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/rpl_ndb_extraCol.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/rpl_row_tabledefs_2myisam.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/rpl_row_tabledefs_3innodb.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/rpl_sp.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/select.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/show_check.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/sp.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/sp_gis.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/sp_trans.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/type_timestamp.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/warnings.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/xml.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/t/grant.test:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/t/partition_grant.test:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      sql/mysql_priv.h:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      sql/share/errmsg.txt:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      ae398d99
  6. 25 Jun, 2007 13 commits
  7. 24 Jun, 2007 7 commits