• unknown's avatar
    Applied innodb-5.1-ss1186 · 8ca71550
    unknown authored
    Fixes bugs:
    - Bug #20877: InnoDB data dictionary memory footprint is too big
    - Bug #24741: existing cascade clauses disappear when adding foreign keys
    
    
    mysql-test/r/innodb.result:
      Applied innodb-5.1-ss1186
      
      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.
    mysql-test/t/innodb.test:
      Applied innodb-5.1-ss1186
      
      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.
    storage/innobase/buf/buf0flu.c:
      Applied innodb-5.1-ss1186
      
      Revision r1168:
      buf_flush_batch(): Remove the test page_count != ULINT_UNDEFINED.
      The variable is initialized to zero, and after that it is only added to.
      Maybe the one who introduced the variable srv_buf_pool_flushed overlooked
      that there is a separate return statement for returning ULINT_UNDEFINED?
    storage/innobase/dict/dict0load.c:
      Applied innodb-5.1-ss1186
      
      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.
    storage/innobase/include/ut0ut.h:
      Applied innodb-5.1-ss1186
      
      Revision r1165:
      ut_2_power_up(): Add __attribute__((const)), because otherwise this function
      is repeatedly called in buf_flush_free_margin() due to the definitions
      of BUF_READ_AHEAD_AREA and other macros starting with BUF_READ_AHEAD_.
    storage/innobase/que/que0que.c:
      Applied innodb-5.1-ss1186
      
      Revision r1158:
      Modify que_fork_start_command() to do only one pass over the thread list
      instead of three.
    8ca71550
buf0flu.c 29.1 KB