• unknown's avatar
    NULL MERGE this to 5.1 · 805c2d52
    unknown authored
    Apply the following InnoDB snapshots:
    innodb-5.0-ss1319
    innodb-5.0-ss1331
    innodb-5.0-ss1333
    innodb-5.0-ss1341
    
    Fixes:
    - Bug #21409: Incorrect result returned when in READ-COMMITTED with query_cache ON
      At low transaction isolation levels we let each consistent read set
      its own snapshot.
    - Bug #23666: strange Innodb_row_lock_time_% values in show status; also millisecs wrong
      On Windows ut_usectime returns secs and usecs relative to the UNIX
      epoch (which is Jan, 1 1970).
    
    - Bug #25494: LATEST DEADLOCK INFORMATION is not always cleared
      lock_deadlock_recursive(): When the search depth or length is exceeded,
      rewind lock_latest_err_file and display the two transactions at the
      point of aborting the search.
    
    - Bug #25927: Foreign key with ON DELETE SET NULL on NOT NULL can crash server
      Prevent ALTER TABLE ... MODIFY ... NOT NULL on columns for which
      there is a foreign key constraint ON ... SET NULL.
    
    - Bug #26835: Repeatable corruption of utf8-enabled tables inside InnoDB
      The bug could be reproduced as follows:
    
      Define a table so that the first column of the clustered index is
      a VARCHAR or a UTF-8 CHAR in a collation where sequences of bytes
      of differing length are considered equivalent.
    
      Insert and delete a record.  Before the delete-marked record is
      purged, insert another record whose first column is of different
      length but equivalent to the first record.  Under certain conditions,
      the insertion can be incorrectly performed as update-in-place.
    
      Likewise, an operation that could be done as update-in-place can
      unnecessarily be performed as delete and insert, but that would not
      cause corruption but merely degraded performance.
    
    
    innobase/dict/dict0dict.c:
      NULL MERGE this to 5.1
      
      Apply the following InnoDB snapshots:
      innodb-5.0-ss1319
      innodb-5.0-ss1331
      innodb-5.0-ss1333
      innodb-5.0-ss1341
      
      Revision r1317:
      branches/5.0: Port r1316 from trunk:
      
      Prevent ALTER TABLE ... MODIFY ... NOT NULL on columns for which
      there is a foreign key constraint ON ... SET NULL.  (Bug #25927)
      
      dict_foreign_find_index(): Add paramettter check_null.
      
      dict_foreign_add_to_cache(): Do not allow ON DELETE SET NULL
      or ON UPDATE SET NULL if any of the referencing columns are declared NOT NULL.
    innobase/include/rem0rec.ic:
      NULL MERGE this to 5.1
      
      Apply the following InnoDB snapshots:
      innodb-5.0-ss1319
      innodb-5.0-ss1331
      innodb-5.0-ss1333
      innodb-5.0-ss1341
      
      Revision r1339:
      branches/5.0: Merge r1338 from trunk:
      
      rec_offs_nth_size(): Treat n==0 as a special case.  (Bug #26835)
    innobase/include/sync0sync.ic:
      NULL MERGE this to 5.1
      
      Apply the following InnoDB snapshots:
      innodb-5.0-ss1319
      innodb-5.0-ss1331
      innodb-5.0-ss1333
      innodb-5.0-ss1341
      
      Revision r1293:
      branches/5.0: Fixed inline asm code, it didn't work with GCC > ver 3.x.
    innobase/lock/lock0lock.c:
      NULL MERGE this to 5.1
      
      Apply the following InnoDB snapshots:
      innodb-5.0-ss1319
      innodb-5.0-ss1331
      innodb-5.0-ss1333
      innodb-5.0-ss1341
      
      Revision r1331:
      branches/5.0: Merge r1330 from trunk:
      
      lock_deadlock_recursive(): When the search depth or length is exceeded,
      rewind lock_latest_err_file and display the two transactions at the
      point of aborting the search.  (Bug #25494)
      
      
      Revision r1333:
      branches/5.0: Merge r1332 from trunk:
      
      lock_deadlock_recursive(): When aborting the search, display a note
      regardless of start->undo_no.  Otherwise, aborted searches may show
      up as genuine deadlocks.  This mistake was made in r1330.
    innobase/srv/srv0srv.c:
      NULL MERGE this to 5.1
      
      Apply the following InnoDB snapshots:
      innodb-5.0-ss1319
      innodb-5.0-ss1331
      innodb-5.0-ss1333
      innodb-5.0-ss1341
      
      Revision r1261:
      branches/5.0: Fix for Bug# 23666. On Windows ut_usectime returns secs 
      and usecs relative to the UNIX epoch (which is Jan, 1 1970).
    innobase/ut/ut0ut.c:
      NULL MERGE this to 5.1
      
      Apply the following InnoDB snapshots:
      innodb-5.0-ss1319
      innodb-5.0-ss1331
      innodb-5.0-ss1333
      innodb-5.0-ss1341
      
      Revision r1261:
      branches/5.0: Fix for Bug# 23666. On Windows ut_usectime returns secs 
      and usecs relative to the UNIX epoch (which is Jan, 1 1970).
    mysql-test/r/innodb.result:
      NULL MERGE this to 5.1
      
      Apply the following InnoDB snapshots:
      innodb-5.0-ss1319
      innodb-5.0-ss1331
      innodb-5.0-ss1333
      innodb-5.0-ss1341
      
      Revision r1319:
      branches/5.0: Port r1318 from trunk:
      
      Add a test case for r1316 (Bug #25927).
      
      
      Revision r1328:
      branches/5.0: mysql-test: Merge changes from MySQL AB.
      
      
      Revision r1341:
      branches/5.0: Merge r1340 from trunk:
      
      innodb.test, innodb.result: Add test case for Bug #26835.
      The bug could be reproduced as follows:
      
      Define a table so that the first column of the clustered index is
      a VARCHAR or a UTF-8 CHAR in a collation where sequences of bytes
      of differing length are considered equivalent.
      
      Insert and delete a record.  Before the delete-marked record is
      purged, insert another record whose first column is of different
      length but equivalent to the first record.  Under certain conditions,
      the insertion can be incorrectly performed as update-in-place.
      
      Likewise, an operation that could be done as update-in-place can
      unnecessarily be performed as delete and insert, but that would not
      cause corruption but merely degraded performance.
      
      Revision r1284:
      Merge changes from MySQL AB:
      
      ChangeSet
        2007/01/24 14:49:36+04:00 holyfoot@mysql.com 
        bug #22682 Test fails --without-geometry
        geometry dependent parts moved to proper .test files
      
      mysql-test/r/innodb.result
        2007/01/24 14:49:34+04:00 holyfoot@mysql.com +0 -2
        result fixed
      
      mysql-test/r/innodb_gis.result
        2007/01/24 14:49:34+04:00 holyfoot@mysql.com +2 -0
        result fixed
      
      mysql-test/t/innodb.test
        2007/01/24 14:49:34+04:00 holyfoot@mysql.com +0 -6
        HAVE_GEOMETRY dependent part moved to innodb_gis.test
      
      mysql-test/t/innodb_gis.test
        2007/01/24 14:49:35+04:00 holyfoot@mysql.com +6 -0
        HAVE_GEOMETRY dependent part moved here from innodb.test
      
      
      Revision r1186:
      dict_load_foreign(): Use a local variable instead of the 10-bit field
      foreign->n_fields in order to preserve ON UPDATE CASCADE and
      ON DELETE CASCADE flags.  For some reason, gcc does not warn about
      shifting a 10-bit field to right by 24 bits.  (Bug #24741)
      
      This bug was introduced while reducing the memory footprint of the
      InnoDB data dictionary (Bug #20877).
      
      innodb.test, innodb.result: Add a test case.
      
      
      Revision r1318:
      Add a test case for r1316 (Bug #25927).
      
      
      Revision r1340:
      innodb.test, innodb.result: Add test case for Bug #26835.
      The bug could be reproduced as follows:
      
      Define a table so that the first column of the clustered index is
      a VARCHAR or a UTF-8 CHAR in a collation where sequences of bytes
      of differing length are considered equivalent.
      
      Insert and delete a record.  Before the delete-marked record is
      purged, insert another record whose first column is of different
      length but equivalent to the first record.  Under certain conditions,
      the insertion can be incorrectly performed as update-in-place.
      
      Likewise, an operation that could be done as update-in-place can
      unnecessarily be performed as delete and insert, but that would not
      cause corruption but merely degraded performance.
    mysql-test/t/innodb.test:
      NULL MERGE this to 5.1
      
      Apply the following InnoDB snapshots:
      innodb-5.0-ss1319
      innodb-5.0-ss1331
      innodb-5.0-ss1333
      innodb-5.0-ss1341
      
      Revision r1279:
      branches/5.0: Merge changes from MySQL AB:
      
      ChangeSet
        2006/11/20 22:42:06+02:00 monty@mysql.com 
        Remove compiler warnings
        (Mostly in DBUG_PRINT() and unused arguments)
        Fixed bug in query cache when used with traceing (--with-debug)
        Fixed memory leak in mysqldump
        Removed warnings from mysqltest scripts (replaced -- with #)
      
      mysql-test/t/innodb.test
        2006/11/20 22:41:41+02:00 monty@mysql.com +1 -1
        Remove mysqltest warnings
      
      sql/ha_innodb.cc
        2006/11/20 22:41:51+02:00 monty@mysql.com +2 -2
        Fixed compiler warning
      
      
      Revision r1319:
      branches/5.0: Port r1318 from trunk:
      
      Add a test case for r1316 (Bug #25927).
      
      
      Revision r1328:
      branches/5.0: mysql-test: Merge changes from MySQL AB.
      
      
      Revision r1341:
      branches/5.0: Merge r1340 from trunk:
      
      innodb.test, innodb.result: Add test case for Bug #26835.
      The bug could be reproduced as follows:
      
      Define a table so that the first column of the clustered index is
      a VARCHAR or a UTF-8 CHAR in a collation where sequences of bytes
      of differing length are considered equivalent.
      
      Insert and delete a record.  Before the delete-marked record is
      purged, insert another record whose first column is of different
      length but equivalent to the first record.  Under certain conditions,
      the insertion can be incorrectly performed as update-in-place.
      
      Likewise, an operation that could be done as update-in-place can
      unnecessarily be performed as delete and insert, but that would not
      cause corruption but merely degraded performance.
      
      Revision r1284:
      Merge changes from MySQL AB:
      
      ChangeSet
        2007/01/24 14:49:36+04:00 holyfoot@mysql.com 
        bug #22682 Test fails --without-geometry
        geometry dependent parts moved to proper .test files
      
      mysql-test/r/innodb.result
        2007/01/24 14:49:34+04:00 holyfoot@mysql.com +0 -2
        result fixed
      
      mysql-test/r/innodb_gis.result
        2007/01/24 14:49:34+04:00 holyfoot@mysql.com +2 -0
        result fixed
      
      mysql-test/t/innodb.test
        2007/01/24 14:49:34+04:00 holyfoot@mysql.com +0 -6
        HAVE_GEOMETRY dependent part moved to innodb_gis.test
      
      mysql-test/t/innodb_gis.test
        2007/01/24 14:49:35+04:00 holyfoot@mysql.com +6 -0
        HAVE_GEOMETRY dependent part moved here from innodb.test
      
      
      Revision r1283:
      Merge changes from MySQL AB:
      
      ChangeSet
        2007/01/22 18:42:52+02:00 monty@mysql.com 
        Give warnings for unused objects
        Changed error message to be compatible with old error file
        Added new error message for new DUP_ENTRY syntax
      
      mysql-test/t/innodb.test
        2007/01/22 18:42:49+02:00 monty@mysql.com +14 -14
        Changed to use new error message
      
      
      Revision r1186:
      dict_load_foreign(): Use a local variable instead of the 10-bit field
      foreign->n_fields in order to preserve ON UPDATE CASCADE and
      ON DELETE CASCADE flags.  For some reason, gcc does not warn about
      shifting a 10-bit field to right by 24 bits.  (Bug #24741)
      
      This bug was introduced while reducing the memory footprint of the
      InnoDB data dictionary (Bug #20877).
      
      innodb.test, innodb.result: Add a test case.
      
      
      Revision r1318:
      Add a test case for r1316 (Bug #25927).
      
      
      Revision r1329:
      Merge changes from MySQL AB to mysql-test directives.
      The results are not affected.
      
      
      Revision r1340:
      innodb.test, innodb.result: Add test case for Bug #26835.
      The bug could be reproduced as follows:
      
      Define a table so that the first column of the clustered index is
      a VARCHAR or a UTF-8 CHAR in a collation where sequences of bytes
      of differing length are considered equivalent.
      
      Insert and delete a record.  Before the delete-marked record is
      purged, insert another record whose first column is of different
      length but equivalent to the first record.  Under certain conditions,
      the insertion can be incorrectly performed as update-in-place.
      
      Likewise, an operation that could be done as update-in-place can
      unnecessarily be performed as delete and insert, but that would not
      cause corruption but merely degraded performance.
    sql/ha_innodb.cc:
      NULL MERGE this to 5.1
      
      Apply the following InnoDB snapshots:
      innodb-5.0-ss1319
      innodb-5.0-ss1331
      innodb-5.0-ss1333
      innodb-5.0-ss1341
      
      Revision r1279:
      branches/5.0: Merge changes from MySQL AB:
      
      ChangeSet
        2006/11/20 22:42:06+02:00 monty@mysql.com 
        Remove compiler warnings
        (Mostly in DBUG_PRINT() and unused arguments)
        Fixed bug in query cache when used with traceing (--with-debug)
        Fixed memory leak in mysqldump
        Removed warnings from mysqltest scripts (replaced -- with #)
      
      mysql-test/t/innodb.test
        2006/11/20 22:41:41+02:00 monty@mysql.com +1 -1
        Remove mysqltest warnings
      
      sql/ha_innodb.cc
        2006/11/20 22:41:51+02:00 monty@mysql.com +2 -2
        Fixed compiler warning
      
      
      Revision r1280:
      branches/5.0: Merge a change from MySQL AB:
      
      ChangeSet
        2006/11/30 18:25:05+02:00 monty@mysql.com 
        Fixed portability issue in my_thr_init.c (was added in my last push)
        
        Fixed compiler warnings (detected by VC++):
        - Removed not used variables
        - Added casts
        - Fixed wrong assignments to bool
        - Fixed wrong calls with bool arguments
        - Added missing argument to store(longlong), which caused wrong store
        method to be called.
      
      sql/ha_innodb.cc
        2006/11/30 18:24:53+02:00 monty@mysql.com +0 -1
        Removed not used variable
      
      
      Revision r1260:
      branches/5.0: Fix for Bug# 21409. At low transaction isolation levels
      we let each consistent read set its own snapshot.
      
      
      Revision r1326:
      branches/5.0: Merge code from MySQL AB:
      
      ChangeSet@1.2417.3.1  2007-02-22 16:59:57+02:00  monty@mysql.fi
      
      Fixed compiler warnings (for linux and win32 and win64)
    805c2d52
ha_innodb.cc 214 KB