An error occurred fetching the project authors.
  1. 25 May, 2011 1 commit
  2. 02 Apr, 2011 1 commit
    • Sergey Petrunya's avatar
      Make EXPLAIN better at displaying MRR/BKA: · c90d7dda
      Sergey Petrunya authored
      - "Using MRR" is no longer shown with range access.
      - Instead, both range and BKA accesses will show one of the following:
        = "Rowid-ordered scan"
        = "Key-ordered scan"
        = "Key-ordered Rowid-ordered scan"
      depending on whether DS-MRR implementation will do scan keys in order, rowids in order,
      or both.
      - The patch also introduces a way for other storage engines/MRR implementations to
        pass information to EXPLAIN output about the properties of employed MRR scans.
      c90d7dda
  3. 12 Apr, 2010 1 commit
  4. 27 Dec, 2009 1 commit
    • Michael Widenius's avatar
      Fix test suite so that it works when doing configure --without-uca · 308a5b29
      Michael Widenius authored
      Simplify testing of needed characterset
      Remove ndb from --with-plugins=max build
      mysqlbug now sends email to maria-developers@lists.launchpad.net
      
      client/mysqltest.cc:
        SKIP now expands variables (for better error messages)
      mysql-test/include/have_big5.inc:
        Simplify by using have_collation.inc
      mysql-test/include/have_collation.inc:
        Test if '$collation' is supported
      mysql-test/include/have_cp1250_ch.inc:
        Simplify by using have_collation.inc
      mysql-test/include/have_cp1251.inc:
        Simplify by using have_collation.inc
      mysql-test/include/have_cp866.inc:
        Simplify by using have_collation.inc
      mysql-test/include/have_cp932.inc:
        Simplify by using have_collation.inc
      mysql-test/include/have_eucjpms.inc:
        Simplify by using have_collation.inc
      mysql-test/include/have_euckr.inc:
        Simplify by using have_collation.inc
      mysql-test/include/have_gb2312.inc:
        Simplify by using have_collation.inc
      mysql-test/include/have_gbk.inc:
        Simplify by using have_collation.inc
      mysql-test/include/have_koi8r.inc:
        Simplify by using have_collation.inc
      mysql-test/include/have_latin2_ch.inc:
        Simplify by using have_collation.inc
      mysql-test/include/have_sjis.inc:
        Simplify by using have_collation.inc
      mysql-test/include/have_tis620.inc:
        Simplify by using have_collation.inc
      mysql-test/include/have_ucs2.inc:
        Simplify by using have_collation.inc
      mysql-test/include/have_ujis.inc:
        Simplify by using have_collation.inc
      mysql-test/include/have_utf8.inc:
        Simplify by using have_collation.inc
      mysql-test/r/create-uca.result:
        Create tests that uses unicode
      mysql-test/r/create.result:
        Move test with unicode to create-uca.test
      mysql-test/r/have_big5.require:
        Not needed anymore
      mysql-test/r/have_cp1250_ch.require:
        Not needed anymore
      mysql-test/r/have_cp1251.require:
        Not needed anymore
      mysql-test/r/have_cp866.require:
        Not needed anymore
      mysql-test/r/have_cp932.require:
        Not needed anymore
      mysql-test/r/have_eucjpms.require:
        Not needed anymore
      mysql-test/r/have_euckr.require:
        Not needed anymore
      mysql-test/r/have_gb2312.require:
        Not needed anymore
      mysql-test/r/have_gbk.require:
        Not needed anymore
      mysql-test/r/have_koi8r.require:
        Not needed anymore
      mysql-test/r/have_latin2_ch.require:
        Not needed anymore
      mysql-test/r/have_sjis.require:
        Not needed anymore
      mysql-test/r/have_tis620.require:
        Not needed anymore
      mysql-test/r/have_ucs2.require:
        Not needed anymore
      mysql-test/r/have_ujis.require:
        Not needed anymore
      mysql-test/r/have_utf8.require:
        Not needed anymore
      mysql-test/r/innodb.result:
        Move tests that depends on unicode to innodb_utf8.test
      mysql-test/r/innodb_utf8.result:
        Test moved from innodb.test
      mysql-test/suite/rpl/t/rpl_ignore_table.test:
        Test for required collations
      mysql-test/t/create-uca.test:
        Create tests that uses unicode
      mysql-test/t/create.test:
        Move test with unicode to create-uca.test
      mysql-test/t/ctype_utf8.test:
        Test that require unicode
      mysql-test/t/ddl_i18n_koi8r.test:
        Test for required collations
      mysql-test/t/ddl_i18n_utf8.test:
        Test for required collations
      mysql-test/t/fulltext.test:
        Test for required collations
      mysql-test/t/fulltext2.test:
        Test for required collations
      mysql-test/t/innodb.test:
        Move tests that depends on unicode to innodb_utf8.test
      mysql-test/t/innodb_utf8.test:
        Tests that uses unicode
      mysql-test/t/query_cache_ps_no_prot.test:
        Test for required collations
      mysql-test/t/query_cache_ps_ps_prot.test:
        Test for required collations
      scripts/mysqlbug.sh:
        Send emails to maria-developers@lists.launchpad.net
      storage/ndb/plug.in:
        Don't include ndb in 'max' builds
      308a5b29
  5. 15 Dec, 2009 1 commit
    • Sergey Petrunya's avatar
      Backport into MariaDB-5.2 the following: · 3bb037aa
      Sergey Petrunya authored
      WL#2474 "Multi Range Read: Change the default MRR implementation to implement new MRR interface"
      WL#2475 "Batched range read functions for MyISAM/InnoDb"
              "Index condition pushdown for MyISAM/InnoDB"
      Igor's fix from sp1r-igor@olga.mysql.com-20080330055902-07614:
        There could be observed the following problems:
        1. EXPLAIN did not mention pushdown conditions from on expressions in the 
        'extra' column.  As a result if a query had no where conditions pushed 
        down to a table, but had on conditions pushed to this table the 'extra' 
        column in the EXPLAIN for the table missed 'using where'.
        2. Conditions for ref access were not eliminated from on expressions 
        though such conditions were eliminated from the where condition.
      3bb037aa
  6. 11 Sep, 2009 1 commit
    • unknown's avatar
      After-merge fixes for merge of MySQL-5.1.38. · 2b440ba3
      unknown authored
      mysql-test/r/innodb.result:
        Fix wrong merge of result file conflicts.
      mysql-test/t/bug46080-master.opt:
        Fix memory limit to take into account extra storage engines in MariaDB.
      mysql-test/t/innodb.test:
        Add comment clarifying tricky --replace_result.
      sql/sql_select.cc:
        Restore fix of Bug#34374, accudentally lost during MySQL 5.1.38 merge.
      support-files/build-tags:
        Fix missing -R option for bzr, accidentally lost in MySQL-5.1.38 merge.
      2b440ba3
  7. 18 Jun, 2009 1 commit
    • unknown's avatar
      Fix test cases after merge of XtraDB into MariaDB. · 2c6535d2
      unknown authored
      Manually merge some InnoDB changes into XtraDB.
      Fix ALTER TABLE bug in XtraDB with wrong comparison of row type.
      
      mysql-test/include/varchar.inc:
        Fix in test case that which of several duplicate keys triggers an error is not
        deterministic.
      mysql-test/mysql-test-run.pl:
        InnoDB does not bother to free resources individually during shutdown, but due to using
        its own memory tracking it nevertheless can free everything at exit. But XtraDB adds an
        option, on by default, to skip this extra tracking. This causes lots of Valgrind
        warnings, so needs to be disabled for Valgrind testing.
      mysql-test/r/innodb.result:
        Fix in test case that which of several duplicate keys triggers an error is not
        deterministic.
      mysql-test/t/innodb-use-sys-malloc.test:
        InnoDB does not bother to free resources individually during shutdown, but due to using
        its own memory tracking it nevertheless can free everything at exit. But XtraDB adds an
        option, on by default, to skip this extra tracking. This causes lots of Valgrind
        warnings, so needs to be disabled for Valgrind testing.
      sql/sql_table.cc:
        Add some useful DBUG while debugging alter table.
      storage/xtradb/handler/ha_innodb.cc:
        Fix that check_if_incompatible_data did not realise that ROW_TYPE_DEFAULT is identical
        to the default row format ROW_TYPE_COMPACT, causing excessive table copying in
        ALTER TABLE
        Add some useful DBUG while debugging alter table.
        Manually merge into XtraDB a few small changes for InnoDB from upstream MySQL.
      storage/xtradb/include/pars0pars.h:
        Manually merge into XtraDB a few small changes for InnoDB from upstream MySQL.
      storage/xtradb/include/univ.i:
        Manually merge a MariaDB fix in InnoDB into XtraDB.
      2c6535d2
  8. 09 Jun, 2009 2 commits
    • unknown's avatar
      XtraDB after-merge fixes. · 322c777b
      unknown authored
      Fixes to get the test suite to run without failures.
      
      mysql-test/r/information_schema.result:
        Additional variables available now.
        Sort output to avoid depending on engine order.
      mysql-test/r/information_schema_all_engines.result:
        More variables now.
      mysql-test/r/innodb-autoinc.result:
        Avoid picking up pbxt variables in result
      mysql-test/r/innodb-index.result:
        Save state to not corrupt following testcases.
        Suppress an expected warning.
      mysql-test/r/innodb-zip.result:
        Work around a problem with dependency on zlib version
      mysql-test/r/innodb.result:
        Checksums have changed in Maria.
        Save and restore server state to not corrupt following testcases.
      mysql-test/r/innodb_bug36169.result:
        Save and restore server state to not corrupt following testcases.
      mysql-test/r/innodb_xtradb_bug317074.result:
        Save and restore server state to not corrupt following testcases.
      mysql-test/r/row-checksum-old.result:
        Update result file
      mysql-test/r/row-checksum.result:
        Update result file
      mysql-test/t/information_schema.test:
        Sort output to avoid depending on engine order.
      mysql-test/t/innodb-analyze.test:
        Save and restore server state to not corrupt following testcases.
      mysql-test/t/innodb-autoinc.test:
        Save and restore server state to not corrupt following testcases.
      mysql-test/t/innodb-index.test:
        Save state to not corrupt following testcases.
        Suppress an expected warning.
      mysql-test/t/innodb-zip.test:
        Work around a problem with dependency on zlib version
      mysql-test/t/innodb.test:
        Save and restore server state to not corrupt following testcases.
        Update --replace statements for new mysql-test-run
      mysql-test/t/innodb_bug34300.test:
        Save and restore server state to not corrupt following testcases.
      mysql-test/t/innodb_bug36169.test:
        Save and restore server state to not corrupt following testcases.
      mysql-test/t/innodb_bug36172.test:
        Save and restore server state to not corrupt following testcases.
      mysql-test/t/innodb_xtradb_bug317074.test:
        Save and restore server state to not corrupt following testcases.
      mysql-test/t/partition_innodb.test:
        Fix regexps to work with new SHOW INNODB STATUS output.
      mysys/thr_mutex.c:
        Initialize mutex deadlock detection lazily.
        This allows to test XtraDB, which initializes huge amounts of mutexes without using any but a few of them.
      storage/xtradb/ibuf/ibuf0ibuf.c:
        Fix problem where value of INNODB_IBUF_MAX_SIZE would depend on the alignment of memory
        allocated by the buffer pool.
      storage/xtradb/include/sync0rw.h:
        Fix XtraDB to compile without GCC atomic operation intrinsics (performance may suffer
        when they are not available though).
      storage/xtradb/include/sync0rw.ic:
        Fix XtraDB to compile without GCC atomic operation intrinsics (performance may suffer
        when they are not available though).
      storage/xtradb/include/univ.i:
        Fix for MariaDB
      storage/xtradb/setup.sh:
        Remove no longer needed file from XtraDB.
      storage/xtradb/srv/srv0start.c:
        Fix for MariaDB
      322c777b
    • unknown's avatar
      XtraDB after-merge fixes. · d8087fdc
      unknown authored
      The original XtraDB (and InnoDB plugin) is shipped as a separate source tree which is copied
      into the MySQL source, after which a setup.sh script must be run to move things into place.
      
      Now that XtraDB is part of the MariaDB source tree, this commit fixes these things up once
      and for all:
      
       - New innodb build scripts.
       - Test suite fixes (new tests and patches to existing).
       - Remove files no longer needed due to this.
      d8087fdc
  9. 24 Apr, 2009 1 commit
    • Satya B's avatar
      Applying InnoDB snashot 5.0-ss4900, part 2. Fixes BUG#43309 · ab440ad5
      Satya B authored
      1) BUG#43309 - Test main.innodb can't be run twice
      
      Detailed revision comments:
      
      r4701 | vasil | 2009-04-13 17:03:46 +0300 (Mon, 13 Apr 2009) | 6 lines
      branches/5.0:
      
      Fix Bug#43309 Test main.innodb can't be run twice
      
      by making the innodb.test reentrant.
      
      ab440ad5
  10. 15 Apr, 2009 1 commit
    • Satya B's avatar
      Applying InnoDB snashot 5.1-ss4699, part 2. Fixes BUG#43309 · 284ee9ae
      Satya B authored
      1) BUG#43309 - Test main.innodb can't be run twice
      
      2) Follow up fix for BUG#43309, adds explanatory comments.
      
      Detailed revision comments:
      
      r4575 | vasil | 2009-03-30 15:55:31 +0300 (Mon, 30 Mar 2009) | 8 lines
      branches/5.1:
      
      Fix Bug#43309 Test main.innodb can't be run twice
      
      Make the innodb mysql-test more flexible by inspecting how much a
      variable of interest has changed since the start of the test. Do not
      assume the variables have zero values at the start of the test.
      
      r4659 | vasil | 2009-04-06 15:34:51 +0300 (Mon, 06 Apr 2009) | 6 lines
      branches/5.1:
      
      Followup to r4575 and the fix of Bug#43309 Test main.innodb can't be run twice:
      
      Add an explanatory comment, as suggested by Patrick Crews in the bug report.
      
      284ee9ae
  11. 14 Dec, 2008 1 commit
    • Timothy Smith's avatar
      Completing snapshot innodb-5.1-ss2438, part 1. Fixes · dbc065ae
      Timothy Smith authored
      Bug #35537: Innodb doesn't increment handler_update and handler_delete
      
      
      Detailed revision comments:
      
      r2388 | vasil | 2008-03-27 14:02:34 +0200 (Thu, 27 Mar 2008) | 7 lines
      branches/5.1:
      
      Swap the order in which mysql_thd, mysql_query_str and *mysql_query_str
      are checked for non-NULL.
      
      Suggested by:	Marko
      
      r2421 | calvin | 2008-04-24 15:32:30 +0300 (Thu, 24 Apr 2008) | 6 lines
      branches/5.1: Fix bug#35537 - Innodb doesn't increment handler_update
      and handler_delete
      
      Add the calls to ha_statistic_increment() in ha_innobase::delete_row()
      and ha_innobase::update_row().
      dbc065ae
  12. 13 Nov, 2008 1 commit
    • Sven Sandberg's avatar
      BUG#38350: Many tests don't clean up after themselves on exit. · 08ea8988
      Sven Sandberg authored
      Problem: Many test cases don't clean up after themselves (fail
      to drop tables or fail to reset variables). This implies that:
      (1) check-testcase in the new mtr that currently lives in
      5.1-rpl failed. (2) it may cause unexpected results in
      subsequent tests.
      Fix: make all tests clean up.
      Also: cleaned away unnecessary output in rpl_packet.result
      Also: fixed bug where rpl_log called RESET MASTER with a running
      slave. This is not supposed to work.
      Also: removed unnecessary code from rpl_stm_EE_err2 and made it
      verify that an error occurred.
      Also: removed unnecessary code from rpl_ndb_ctype_ucs2_def.
      
      
      mysql-test/extra/rpl_tests/rpl_loaddata.test:
        Made test clean up after itself.
      mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test:
        Made test clean up after itself.
        Also removed unnecessary save_master_pos.
        Also made test verify that an error occurred.
      mysql-test/extra/rpl_tests/rpl_truncate_helper.test:
        Made test clean up after itself.
      mysql-test/include/query_cache.inc:
        Made test clean up after itself.
      mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test:
        Made test clean up after itself.
      mysql-test/suite/rpl/t/rpl_alter_db.test:
        Made test clean up after itself.
        Easiest to refactor the test a little, to use an auxiliary database instead of mysql:
        Then we don't need to read the collation at the start of the test and reset it at the
        end of the test. We can just drop the database.
      mysql-test/suite/rpl/t/rpl_drop_db.test:
        Made test clean up after itself.
      mysql-test/suite/rpl/t/rpl_drop_view.test:
        Made test clean up after itself.
      mysql-test/suite/rpl/t/rpl_events.test:
        Made test clean up after itself.
      mysql-test/suite/rpl/t/rpl_idempotency.test:
        Made test clean up after itself.
      mysql-test/suite/rpl/t/rpl_ignore_table.test:
        Made test clean up after itself.
        The existing cleanup code didn't work, because the --replicate-*
        options prevented the "drop table" from being replicated. Moved
        "drop table t4" to a statement of its own.
      mysql-test/suite/rpl/t/rpl_packet.test:
        Made test clean up after itself.
        Also replaced SHOW SLAVE STATUS by query_get_value(SHOW SLAVE STATUS...),
        since only one column of the result was interesting.
      mysql-test/suite/rpl/t/rpl_row_max_relay_size.test:
        Made test clean up after itself.
        Instead of setting binlog format at the beginning of the test, we just
        do 'source include/have_binlog_format_row.inc' like all other tests.
      mysql-test/suite/rpl_ndb/t/rpl_ndb_2other.test:
        Made test clean up after itself.
      mysql-test/suite/rpl_ndb/t/rpl_ndb_ctype_ucs2_def.test:
        Made test clean up after itself.
        Also removed unnecessary 'create table; drop table'
        Also removed unnecessary use of --command
      mysql-test/suite/rpl_ndb/t/rpl_ndb_multi.test:
        Made test clean up after itself.
      mysql-test/t/innodb-autoinc-optimize.test:
        Made test clean up after itself.
      mysql-test/t/innodb.test:
        Made test clean up after itself.
      mysql-test/t/log_tables.test:
        Made test clean up after itself.
      mysql-test/t/mysql_client_test.test:
        Made test clean up after itself.
      mysql-test/t/partition.test:
        Made test clean up after itself.
      mysql-test/t/status.test:
        Made test clean up after itself.
      08ea8988
  13. 03 Oct, 2008 1 commit
    • Georgi Kodinov's avatar
      Bug #39812: Make statement replication default for 5.1 (to match 5.0) · c688c8d8
      Georgi Kodinov authored
      Make STMT replication default for 5.1.
      Add a default of MIXED into the config files
      Fix the tests that needed MIXED replication mode.
      
      mysql-test/include/mix1.inc:
        Bug #39812: Fix the tests that needed MIXED replication mode.
      mysql-test/r/innodb-semi-consistent.result:
        Bug #39812: Fix the tests that needed MIXED replication mode.
      mysql-test/r/innodb.result:
        Bug #39812: Fix the tests that needed MIXED replication mode.
      mysql-test/r/innodb_mysql.result:
        Bug #39812: Fix the tests that needed MIXED replication mode.
      mysql-test/r/tx_isolation_func.result:
        Bug #39812: Fix the tests that needed MIXED replication mode.
      mysql-test/t/innodb-semi-consistent.test:
        Bug #39812: Fix the tests that needed MIXED replication mode.
      mysql-test/t/innodb.test:
        Bug #39812: Fix the tests that needed MIXED replication mode.
      mysql-test/t/tx_isolation_func.test:
        Bug #39812: Fix the tests that needed MIXED replication mode.
      sql/mysqld.cc:
        Bug #39812: Make STMT replication default for 5.1.
      support-files/my-huge.cnf.sh:
        Bug #39812: Add a default of MIXED into the config files
      support-files/my-innodb-heavy-4G.cnf.sh:
        Bug #39812: Add a default of MIXED into the config files
      support-files/my-large.cnf.sh:
        Bug #39812: Add a default of MIXED into the config files
      support-files/my-medium.cnf.sh:
        Bug #39812: Add a default of MIXED into the config files
      support-files/my-small.cnf.sh:
        Bug #39812: Add a default of MIXED into the config files
      c688c8d8
  14. 20 Aug, 2008 1 commit
  15. 11 Aug, 2008 1 commit
    • Mattias Jonsson's avatar
      Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that · 3faf4f76
      Mattias Jonsson authored
      partition is corrupt
      
      The main problem was that ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR
      PARTITION took another code path (over mysql_alter_table instead of
      mysql_admin_table) which differs in two ways:
      1) alter table opens the tables in a different way than admin tables do
         resulting in returning with error before it tried the command
      2) alter table does not start to send any diagnostic rows to the client
         which the lower admin functions continue to use -> resulting in
         assertion crash
      
      The fix:
      Remapped ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION to use
      the same code path as ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE t.
      Adding check in mysql_admin_table to setup the partition list for
      which partitions that should be used.
      
      
      Partitioned tables will still not work with
      REPAIR TABLE/PARTITION USE_FRM, since that requires moving partitions
      to tables, REPAIR TABLE t USE_FRM, and check that the data still
      fulfills the partitioning function and then move the table back to
      being a partition.
      
      NOTE: I have removed the following functions from the handler
      interface:
      analyze_partitions, check_partitions, optimize_partitions,
      repair_partitions
      Since they are not longer needed.
      THIS ALTERS THE STORAGE ENGINE API
      
      mysql-test/r/handler_innodb.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added a note result row.
      mysql-test/r/innodb.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added a note result row.
      mysql-test/r/innodb_mysql.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added a note result row.
      mysql-test/r/partition.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
        tables.
      mysql-test/r/trigger-trans.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added a note result row.
      mysql-test/suite/ndb/r/ndb_partition_key.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
        tables.
      mysql-test/suite/ndb/t/ndb_partition_key.test:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
        tables.
      mysql-test/suite/parts/inc/partition_alter4.inc:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
        tables.
      mysql-test/suite/parts/r/partition_alter4_innodb.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
        tables.
      mysql-test/suite/parts/r/partition_alter4_myisam.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
        tables.
      mysql-test/suite/rpl/r/rpl_failed_optimize.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added a note result row.
      mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added a note result row.
      mysql-test/t/partition.test:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
        tables.
      sql/ha_partition.cc:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added a function for returning admin commands result rows
        Updated handle_opt_partitions to handle admin commands result rows,
        and some error filtering (as mysql_admin_table do).
        
        Removed the functions analyze/check/optimize/repair_partitions
        since they have no longer any use.
      sql/ha_partition.h:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Removed analyze/check/optimize/repair_partitions since they
        are no longer are needed.
      sql/handler.cc:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Removed analyze/check/optimize/repair_partitions since they
        are no longer are needed.
      sql/handler.h:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Removed analyze/check/optimize/repair_partitions since they
        are no longer are needed.
      sql/mysql_priv.h:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added set_part_state for reuse of code in mysql_admin_table.
        (Originally fond in sql/sql_partition.cc:prep_alter_part_table)
      sql/protocol.cc:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added one assert and a debug print.
      sql/sql_partition.cc:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Refactored code for setting up partition state, set_part_state,
        now used in both prep_alter_part_table and
        sql_table.cc:mysql_admin_table.
        Removed code for handling ANALYZE/CHECK/OPTIMIZE/REPAIR partitions,
        since it is now handled by mysql_admin_table.
      sql/sql_table.cc:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added functionality in mysql_admin_table to work with partitioned
        tables.
        Fixed a possible assertion bug for HA_ADMIN_TRY_ALTER
        (If analyze would output a row, it fails since the row was already
        started).
      sql/sql_yacc.yy:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Remapped ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION
        to use the same code path as ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE
        instead of taking the ALTER TABLE path.
        Added reset of alter_info for ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE
        since it is now used by partitioned tables.
      storage/myisam/mi_check.c:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Changed warning message from "Found X parts  Should be: Y parts"
        to "Found X key parts. Should be Y", since it could be confusing
        with partitioned tables.
      3faf4f76
  16. 14 May, 2008 1 commit
    • unknown's avatar
      revert the following CS on grounds of "right patch, wrong time": · d87536c0
      unknown authored
        
       "Apply InnoDB snapshot innodb-5.1-ss2438.
      
        Addresses the following bugs:
      
        Change the fix for Bug#32440 to show bytes instead of kilobytes in
        INFORMATION_SCHEMA.TABLES.DATA_FREE.
      
        branches/5.1: Fix bug#29507 TRUNCATE shows to many rows effected
        In InnoDB, the row count is only a rough estimate used by SQL
        optimization. InnoDB is now return row count 0 for TRUNCATE operation.
      
        branches/5.1: Fix bug#35537 - Innodb doesn't increment handler_update
        and handler_delete
        Add the calls to ha_statistic_increment() in ha_innobase::delete_row()
        and ha_innobase::update_row().
      
        Fix Bug#36169 create innodb compressed table with too large row size crash
        Sometimes it is possible that
        row_drop_table_for_mysql(index->table_name, trx, FALSE); is invoked in
        row_create_index_for_mysql() when the index object is freed so copy the
        table name to a safe place beforehand and use the copy.
      
        Fix Bug#36434 ha_innodb.so is installed in the wrong directory
        Change pkglib_LTLIBRARIES with pkgplugin_LTLIBRARIES which has been
        forgotten in this commit: http://lists.mysql.com/commits/40206"
      
      
      mysql-test/r/innodb.result:
        revert InnoDB snapshot innodb-5.1-ss2438
      mysql-test/r/mix2_myisam.result:
        merge-fixes: undoing previous unspecified post-merge fixes
        by kaa a/o 2008/2/13 (1.7)
      mysql-test/t/innodb.test:
        revert InnoDB snapshot innodb-5.1-ss2438
      storage/innobase/Makefile.am:
        revert InnoDB snapshot innodb-5.1-ss2438
      storage/innobase/handler/ha_innodb.cc:
        revert InnoDB snapshot innodb-5.1-ss2438
      storage/innobase/plug.in:
        revert InnoDB snapshot innodb-5.1-ss2438
      storage/innobase/row/row0mysql.c:
        revert InnoDB snapshot innodb-5.1-ss2438
      storage/innobase/row/row0sel.c:
        revert InnoDB snapshot innodb-5.1-ss2438
      d87536c0
  17. 10 May, 2008 1 commit
    • unknown's avatar
      Apply InnoDB snapshot innodb-5.1-ss2438. · 6bc9f7c7
      unknown authored
      Addresses the following bugs:
      
        Change the fix for Bug#32440 to show bytes instead of kilobytes in
        INFORMATION_SCHEMA.TABLES.DATA_FREE.
      
        branches/5.1: Fix bug#29507 TRUNCATE shows to many rows effected
        In InnoDB, the row count is only a rough estimate used by SQL
        optimization. InnoDB is now return row count 0 for TRUNCATE operation.
      
        branches/5.1: Fix bug#35537 - Innodb doesn't increment handler_update
        and handler_delete
        Add the calls to ha_statistic_increment() in ha_innobase::delete_row()
        and ha_innobase::update_row().
      
        Fix Bug#36169 create innodb compressed table with too large row size crashed
        Sometimes it is possible that
        row_drop_table_for_mysql(index->table_name, trx, FALSE); is invoked in
        row_create_index_for_mysql() when the index object is freed so copy the
        table name to a safe place beforehand and use the copy.
      
        Fix Bug#36434 ha_innodb.so is installed in the wrong directory
        Change pkglib_LTLIBRARIES with pkgplugin_LTLIBRARIES which has been
        forgotten in this commit: http://lists.mysql.com/commits/40206
      
      
      mysql-test/r/innodb.result:
        Apply InnoDB snapshot innodb-5.1-ss2438.
        
        Revision r2420:
        branches/5.1: Fix bug#29507 TRUNCATE shows to many rows effected
        
        In InnoDB, the row count is only a rough estimate used by SQL
        optimization. InnoDB is now return row count 0 for TRUNCATE operation.
        
        Revision r2421:
        branches/5.1: Fix bug#35537 - Innodb doesn't increment handler_update
        and handler_delete
        
        Add the calls to ha_statistic_increment() in ha_innobase::delete_row()
        and ha_innobase::update_row().
      mysql-test/t/innodb.test:
        Apply InnoDB snapshot innodb-5.1-ss2438.
        
        Revision r2420:
        branches/5.1: Fix bug#29507 TRUNCATE shows to many rows effected
        
        In InnoDB, the row count is only a rough estimate used by SQL
        optimization. InnoDB is now return row count 0 for TRUNCATE operation.
        
        Revision r2421:
        branches/5.1: Fix bug#35537 - Innodb doesn't increment handler_update
        and handler_delete
        
        Add the calls to ha_statistic_increment() in ha_innobase::delete_row()
        and ha_innobase::update_row().
      storage/innobase/Makefile.am:
        Apply InnoDB snapshot innodb-5.1-ss2438.
        
        Revision r2429:
        branches/5.1:
        
        * Use INNODB_CFLAGS insead of cluttering CFLAGS with InnoDB specific
          flags. CFLAGS are used to compile every file in the MySQL source tree.
        
        * Add INNODB_DYNAMIC_CFLAGS to the flags of the dynamic plugin and use
          -prefer-non-pic to make the dynamic plugin faster on i386.
        
        Approved by:	Sunny
        
        
        Revision r2437:
        branches/5.1:
        
        Fix Bug#36434 ha_innodb.so is installed in the wrong directory
        
        Change pkglib_LTLIBRARIES with pkgplugin_LTLIBRARIES which has been
        forgotten in this commit: http://lists.mysql.com/commits/40206
        
        
        
        Revision r2430:
        branches/5.1:
        
        Use CFLAGS instead of INNODB_CFLAGS to avoid having incompatible flags
        inserted in CFLAGS and INNODB_CFLAGS and to avoid compiling mysql and
        innodb with different flags.
        
        Discussed with:	Sunny
        
        
        Revision r2434:
        branches/5.1:
        
        Merge changes from MySQL:
        
          ChangeSet@1.2645, 2007-12-19 13:24:43+00:00, jperkin@chorlton.adsl.perkin.org.uk +14 -0
            Add new pkgplugindir handling to seperate plugins from libraries,
            and allow override for binary distributions.  Extend mysql_config
            to print compiled-in plugin location for third-party plugins to
            use.  Resolves bug#31736.
        
        and
        
          ChangeSet@1.2646, 2008-01-02 13:00:46+00:00, jperkin@chorlton.adsl.perkin.org.uk +11 -0
            Use pkglibdir to simplify pkgplugindir, and fix the path in a
            couple of Makefiles.  Continuation of the fix for bug#31736.
        
        
        
        Revision r2436:
        branches/5.1:
        
        Non-functional white space change in Makefile.am:
        Use tabs for indentation and be consistent about spaces around the
        equal sign.
      storage/innobase/handler/ha_innodb.cc:
        Apply InnoDB snapshot innodb-5.1-ss2438.
        
        Revision r2419:
        branches/5.1:
        
        Change the fix for Bug#32440 to show bytes instead of kilobytes in
        INFORMATION_SCHEMA.TABLES.DATA_FREE.
        
        Suggested by:	Domas Mituzas <domas@mysql.com>
        Approved by:	Heikki
        
        
        
        Revision r2435:
        branches/5.1:
        
        Merge change from MySQL:
        
          ChangeSet@1.2563, 2008-03-18 19:42:04+04:00, gluh@mysql.com +1 -0
            Bug#35406 5.1-opt crashes on select from I_S.REFERENTIAL_CONSTRAINTS
            added intialization of f_key_info.referenced_key_name for the case when
            referenced table is dropped
        
        
        
        Revision r2420:
        branches/5.1: Fix bug#29507 TRUNCATE shows to many rows effected
        
        In InnoDB, the row count is only a rough estimate used by SQL
        optimization. InnoDB is now return row count 0 for TRUNCATE operation.
        
        Revision r2421:
        branches/5.1: Fix bug#35537 - Innodb doesn't increment handler_update
        and handler_delete
        
        Add the calls to ha_statistic_increment() in ha_innobase::delete_row()
        and ha_innobase::update_row().
      storage/innobase/plug.in:
        Apply InnoDB snapshot innodb-5.1-ss2438.
        
        Revision r2429:
        branches/5.1:
        
        * Use INNODB_CFLAGS insead of cluttering CFLAGS with InnoDB specific
          flags. CFLAGS are used to compile every file in the MySQL source tree.
        
        * Add INNODB_DYNAMIC_CFLAGS to the flags of the dynamic plugin and use
          -prefer-non-pic to make the dynamic plugin faster on i386.
        
        Approved by:	Sunny
        
        
        Revision r2432:
        branches/5.1:
        
        Non-functional change: use tabs for indentation in plug.in.
        
        
        Revision r2431:
        branches/5.1:
        
        Fix r2430, it should be CFLAGS="$CFLAGS ..." not CFLAGS="..."
        
        
        Revision r2430:
        branches/5.1:
        
        Use CFLAGS instead of INNODB_CFLAGS to avoid having incompatible flags
        inserted in CFLAGS and INNODB_CFLAGS and to avoid compiling mysql and
        innodb with different flags.
        
        Discussed with:	Sunny
        
        
        Revision r2433:
        branches/5.1:
        
        Add vim modeline to hint it that plug.in is a config file
        so it can be colorized.
      storage/innobase/row/row0mysql.c:
        Apply InnoDB snapshot innodb-5.1-ss2438.
        
        Revision r2422:
        branches/5.1:
        
        Fix Bug#36169 create innodb compressed table with too large row size crashed
        
        Sometimes it is possible that
        row_drop_table_for_mysql(index->table_name, trx, FALSE); is invoked in
        row_create_index_for_mysql() when the index object is freed so copy the
        table name to a safe place beforehand and use the copy.
        
        Approved by:	Sunny
      storage/innobase/row/row0sel.c:
        Apply InnoDB snapshot innodb-5.1-ss2438.
        
        Revision r2388:
        branches/5.1:
        
        Swap the order in which mysql_thd, mysql_query_str and *mysql_query_str
        are checked for non-NULL.
        
        Suggested by:	Marko
      6bc9f7c7
  18. 07 May, 2008 1 commit
    • unknown's avatar
      BUG#35850 "Performance regression in 5.1.23/5.1.24" · 4279dd85
      unknown authored
      - Disable the "prefer full scan on clustered primary key over full scan
        of any secondary key" rule introduced by BUG#35850.
      - Update test results accordingly 
      (bk trigger: file this for BUG#35850)
      
      
      mysql-test/r/innodb.result:
        BUG#35850 "Performance regression in 5.1.23/5.1.24"
        - Update test results
      mysql-test/r/innodb_mysql.result:
        BUG#35850 "Performance regression in 5.1.23/5.1.24"
        - Testcase
        - Update test results
      mysql-test/r/join_outer_innodb.result:
        BUG#35850 "Performance regression in 5.1.23/5.1.24"
        - Update test results
      mysql-test/t/innodb_mysql.test:
        BUG#35850 "Performance regression in 5.1.23/5.1.24"
        - Testcase
      sql/sql_select.cc:
        BUG#35850 "Performance regression in 5.1.23/5.1.24"
        - Disable the "prefer full scan on clustered primary key over full scan
          of any secondary key" rule introduced by BUG#35850.
      4279dd85
  19. 06 May, 2008 1 commit
    • unknown's avatar
      Partial rollback of fix for bug #30059: End-space truncation is inconsistent · 13ff21b0
      unknown authored
      or incorrect.
      
      For better conformance with standard, truncation procedure of CHAR columns
      has been changed to ignore truncation of trailing whitespace characters
      (note has been removed).
      
      Finally, for columns with non-binary charsets:
      
      1. CHAR(N) columns silently ignore trailing whitespace truncation;
      2. VARCHAR and TEXT columns issue Note about truncation.
      
      BLOBs and other columns with BINARY charset are unaffected.
      
      
      
      
      
      mysql-test/r/bdb.result:
        Rollback of bug #30059 fix.
      mysql-test/r/heap.result:
        Rollback of bug #30059 fix.
      mysql-test/r/innodb.result:
        Rollback of bug #30059 fix.
      mysql-test/r/myisam.result:
        Rollback of bug #30059 fix.
      mysql-test/r/strict.result:
        Rollback of bug #30059 fix.
      mysql-test/r/type_binary.result:
        Rollback of bug #30059 fix.
      mysql-test/r/warnings.result:
        Updated test case for bug #30059.
      sql/field.cc:
        Post-commit fix for bug #30059.
        
        The Field_longstr::report_if_important_data method
        has been changed to notify about trailing spaces only if
        the new count_spaces parameter is TRUE.
        
        The Field_string::store method has been changed to
        ignore trailing whitespace truncation (CHAR column
        type).
      sql/field.h:
        Post-commit fix for bug #30059.
        
        The Field_longstr::report_if_important_data method declaration
        has been changed to accept extra parameter: bool count_spaces.
      13ff21b0
  20. 27 Mar, 2008 1 commit
    • unknown's avatar
      Apply innodb-5.1-ss2360 snapshot · e4548830
      unknown authored
      Fixes:
      - Bug #34920: auto_increment resets to 1 on foreign key creation
        We need to use/inherit the passed in autoinc counter for ALTER TABLE
        statements too.
      
      
      mysql-test/r/innodb.result:
        Apply innodb-5.1-ss2360 snapshot
        
        Revision r2345:
        branches/5.1: Fix Bug# 34920. We need to use/inherit the passed in autoinc
        counter for ALTER TABLE statements too.
      mysql-test/t/innodb.test:
        Apply innodb-5.1-ss2360 snapshot
        
        Revision r2345:
        branches/5.1: Fix Bug# 34920. We need to use/inherit the passed in autoinc
        counter for ALTER TABLE statements too.
      storage/innobase/dict/dict0dict.c:
        Apply innodb-5.1-ss2360 snapshot
        
        Revision r2353:
        branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
        new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
        the assertion where it crashed previously, since the type has now changed
        to unsigned, it doesn't make sense to check for < 0. Added new tests, to
        check for overflow, for the different INT types supported for both
        signed and unsigned.
      storage/innobase/handler/ha_innodb.cc:
        Apply innodb-5.1-ss2360 snapshot
        
        Revision r2353:
        branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
        new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
        the assertion where it crashed previously, since the type has now changed
        to unsigned, it doesn't make sense to check for < 0. Added new tests, to
        check for overflow, for the different INT types supported for both
        signed and unsigned.
        
        
        Revision r2345:
        branches/5.1: Fix Bug# 34920. We need to use/inherit the passed in autoinc
        counter for ALTER TABLE statements too.
      storage/innobase/handler/ha_innodb.h:
        Apply innodb-5.1-ss2360 snapshot
        
        Revision r2353:
        branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
        new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
        the assertion where it crashed previously, since the type has now changed
        to unsigned, it doesn't make sense to check for < 0. Added new tests, to
        check for overflow, for the different INT types supported for both
        signed and unsigned.
      storage/innobase/include/dict0dict.h:
        Apply innodb-5.1-ss2360 snapshot
        
        Revision r2353:
        branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
        new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
        the assertion where it crashed previously, since the type has now changed
        to unsigned, it doesn't make sense to check for < 0. Added new tests, to
        check for overflow, for the different INT types supported for both
        signed and unsigned.
      storage/innobase/include/dict0mem.h:
        Apply innodb-5.1-ss2360 snapshot
        
        Revision r2353:
        branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
        new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
        the assertion where it crashed previously, since the type has now changed
        to unsigned, it doesn't make sense to check for < 0. Added new tests, to
        check for overflow, for the different INT types supported for both
        signed and unsigned.
      storage/innobase/include/row0sel.h:
        Apply innodb-5.1-ss2360 snapshot
        
        Revision r2353:
        branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
        new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
        the assertion where it crashed previously, since the type has now changed
        to unsigned, it doesn't make sense to check for < 0. Added new tests, to
        check for overflow, for the different INT types supported for both
        signed and unsigned.
      storage/innobase/include/univ.i:
        Apply innodb-5.1-ss2360 snapshot
        
        Revision r2353:
        branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
        new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
        the assertion where it crashed previously, since the type has now changed
        to unsigned, it doesn't make sense to check for < 0. Added new tests, to
        check for overflow, for the different INT types supported for both
        signed and unsigned.
      storage/innobase/row/row0sel.c:
        Apply innodb-5.1-ss2360 snapshot
        
        Revision r2353:
        branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
        new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
        the assertion where it crashed previously, since the type has now changed
        to unsigned, it doesn't make sense to check for < 0. Added new tests, to
        check for overflow, for the different INT types supported for both
        signed and unsigned.
      e4548830
  21. 19 Feb, 2008 1 commit
    • unknown's avatar
      Applied InnoDB snapshot innodb-5.1-ss2298 · 3858e96a
      unknown authored
      Fixes the following bugs:
      
      - Bug #33349: possible race condition revolving around data dictionary and repartitioning
        Introduce retry/sleep logic as a workaround for a transient bug
        where ::open fails for partitioned tables randomly if we are using
        one file per table.
      
      - Bug #34053: normal users can enable innodb_monitor logging
        In CREATE TABLE and DROP TABLE check whether the table in question is one
        of the magic innodb_monitor tables and whether the user has enough rights
        to mess with it before doing anything else.
      
      - Bug #22868: 'Thread thrashing' with > 50 concurrent conns under an upd-intensive workloadw
      - Bug #29560: InnoDB >= 5.0.30 hangs on adaptive hash rw-lock 'waiting for an X-lock'
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
      
      - Bug #30930: Add auxiliary function to retrieve THD::thread_id
        Add thd_get_thread_id() function.  Also make check_global_access() function
        visible to InnoDB under INNODB_COMPATIBILITY_HOOKS #define.
      
      
      include/mysql/plugin.h:
        Add thd_get_thread_id() accessor function
      mysql-test/r/innodb.result:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2261:
        branches/5.1: Merge a change from MySQL AB:
        
        ChangeSet@2007-10-13 15:49:42+03:00, aelkin@koti.dsl.inet.fi
        
        Bug #29136 erred multi-delete on trans table does not rollback the statement
        
        innodb.test, innodb.result: trans table specific test added
      mysql-test/t/innodb.test:
        Applied InnoDB snapshot innodb-5.1-ss2298
      sql/mysql_priv.h:
        Make check_global_access() declaration available if when
        INNODB_COMPATIBILITY_HOOKS is defined.
      sql/sql_class.cc:
        Add thd_get_thread_id() accessor function.
        
        Add 'extern "C"' to definition for thd_get_xid().  Not strictly
        needed, but in keeping with our coding style.
      storage/innobase/btr/btr0cur.c:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2295:
        branches/5.1:
        
        Merge r2294 from branches/5.0:
        
        Fix typo and add comma in comment.
      storage/innobase/handler/ha_innodb.cc:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        - But remove the declaration of check_global_access() from ha_innodb.cc,
          because it is now visible in mysql_priv.h under INNODB_COMPATIBILITY_HOOKS
        
        Revision r2270:
        branches/5.1:
        
        Rename the user visible parameter innodb-use-adaptive-hash-indexes to
        innodb-adaptive-hash-index so that it is in sync with MySQL 5.0.
        
        Suggested by:	Heikki
        Approved by:	Heikki
        
        
        Revision r2236:
        branches/5.1: bug#33349
        
        Introduce retry/sleep logic as a workaround for a transient bug
        where ::open fails for partitioned tables randomly if we are using
        one file per table.
        
        
        Reviewed by: Heikki
        
        
        Revision r2282:
        branches/5.1:
        
        Fix Bug#34053:
        * In CREATE TABLE and DROP TABLE check whether the table in question is one
          of the magic innodb_monitor tables and whether the user has enough rights
          to mess with it before doing anything else.
        * Implement a mysql-test testcase.
        
        Approved by:	Heikki
        
        
        Revision r2246:
        branches/5.1:
        
        Fix formatting of the autoinc-lock-mode command line parameter.
        
        Old view (./mysqld --help --verbose):
        
          --innodb-autoinc-lock-mode=#
                              The AUTOINC lock modes supported by InnoDB:
          0 => Old
                              style AUTOINC locking (for backward compatibility)
          1 =>
                              New style AUTOINC locking
          2 => No AUTOINC locking
                              (unsafe for SBR)
        
        New view:
        
          --innodb-autoinc-lock-mode=#
                              The AUTOINC lock modes supported by InnoDB:
                              0 => Old style AUTOINC locking (for backward
                              compatibility)
                              1 => New style AUTOINC locking
                              2 => No AUTOINC locking (unsafe for SBR)
        
        Looks like these strings are "automatically" wrapped by MySQL in the
        following way:
        * newlines (\n) in the string are ignored
        * newline separator (\n) is inserted every 57 or so characters.
        * lots of white space is appended to each inserted new line.
        
        Approved by:	Heikki
      storage/innobase/include/os0sync.h:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/include/read0read.h:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2188:
        branches/5.1: Remove unused field can_be_too_old from read_view_struct.
      storage/innobase/include/row0mysql.h:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2282:
        branches/5.1:
        
        Fix Bug#34053:
        * In CREATE TABLE and DROP TABLE check whether the table in question is one
          of the magic innodb_monitor tables and whether the user has enough rights
          to mess with it before doing anything else.
        * Implement a mysql-test testcase.
        
        Approved by:	Heikki
        
        
        Revision r2272:
        branches/5.1:
        
        Fix typo in comment.
      storage/innobase/include/sync0arr.h:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/include/sync0rw.h:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/include/sync0rw.ic:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/include/sync0sync.h:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/include/sync0sync.ic:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/os/os0sync.c:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/read/read0read.c:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2188:
        branches/5.1: Remove unused field can_be_too_old from read_view_struct.
      storage/innobase/row/row0mysql.c:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2282:
        branches/5.1:
        
        Fix Bug#34053:
        * In CREATE TABLE and DROP TABLE check whether the table in question is one
          of the magic innodb_monitor tables and whether the user has enough rights
          to mess with it before doing anything else.
        * Implement a mysql-test testcase.
        
        Approved by:	Heikki
        
        
        Revision r2272:
        branches/5.1:
        
        Fix typo in comment.
      storage/innobase/srv/srv0srv.c:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/sync/sync0arr.c:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/sync/sync0rw.c:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      storage/innobase/sync/sync0sync.c:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2268:
        branches/5.1: Port of r2267
        
        This is a combination of changes that forward port the scalability fix applied to 5.0
        through r1001.
        It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
        scalability fix of 5.0)
        Then it applies r1001 to 5.0 which is the original scalability fix.
        Finally it applies r2082 which fixes an issue with the original fix.
        
        Reviewed by: Heikki
      mysql-test/r/innodb_bug34053.result:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2282:
        branches/5.1:
        
        Fix Bug#34053:
        * In CREATE TABLE and DROP TABLE check whether the table in question is one
          of the magic innodb_monitor tables and whether the user has enough rights
          to mess with it before doing anything else.
        * Implement a mysql-test testcase.
        
        Approved by:	Heikki
      mysql-test/t/innodb_bug34053.test:
        Applied InnoDB snapshot innodb-5.1-ss2298
        
        Revision r2282:
        branches/5.1:
        
        Fix Bug#34053:
        * In CREATE TABLE and DROP TABLE check whether the table in question is one
          of the magic innodb_monitor tables and whether the user has enough rights
          to mess with it before doing anything else.
        * Implement a mysql-test testcase.
        
        Approved by:	Heikki
      3858e96a
  22. 06 Feb, 2008 1 commit
    • unknown's avatar
      Fixed bug#30059. · f54528b9
      unknown authored
      Server handles truncation for assignment of too-long values
      into CHAR/VARCHAR/TEXT columns in a different ways when the
      truncated characters are spaces:
      1. CHAR(N) columns silently ignore end-space truncation;
      2. TEXT columns post a truncation warning/error in the
         non-strict/strict mode.
      3. VARCHAR columns always post a truncation note in
         any mode.
      
      Space truncation processing has been synchronised over
      CHAR/VARCHAR/TEXT columns: current behavior of VARCHAR
      columns has been propagated as standard.
      
      Binary-encoded string/BLOB columns are not affected.
      
      
      mysql-test/r/heap.result:
        Updated test case for bug#30059.
      mysql-test/r/innodb.result:
        Updated test case for bug#30059.
      mysql-test/r/myisam.result:
        Updated test case for bug#30059.
      mysql-test/r/strict.result:
        Updated test case for bug#30059.
      mysql-test/r/type_binary.result:
        Updated test case for bug#30059.
      mysql-test/r/warnings.result:
        Added test case for bug#30059.
      mysql-test/t/warnings.test:
        Added test case for bug#30059.
      sql/field.cc:
        Fixed bug#30059.
        The report_data_too_long function was replaced with the
        Field_longstr::report_if_important_data method.
        
        The Field_string::store and the Field_blob::store
        methods was synchronized with the Field_varstring::store
        method.
        Changes:
        1. to CHAR(N): posting of space truncation note has been added
           in both (strict and non-strict) modes;
        2. to BLOBs: a check for space truncation has been added,
           a warning in the non-strict mode and an error message in
           the strict mode have been replaced with a truncation note.
        
        Similar parts of Field_string::store, Field_blob::store and
        Field_varstring::store have been moved to the
        Field_longstr::report_if_important_data method.
      sql/field.h:
        Fixed bug#30059.
        The Field_longstr::report_if_important_data method has been declared.
      f54528b9
  23. 15 Jan, 2008 1 commit
    • unknown's avatar
      Apply innodb-5.1-ss2146 and innodb-5.1-ss2178 snapshots. · f65af153
      unknown authored
      Fixes:
      
      Bug #18942: DROP DATABASE does not drop an orphan FOREIGN KEY constraint
        Fix Bug#18942 by dropping all foreign key constraints at the end of
        DROP DATABASE. Usually, by then, there are no foreign constraints
        left because all of them are dropped when the relevant tables are
        dropped. This code is to ensure that any orphaned FKs are wiped too.
      
      Bug #29157: UPDATE, changed rows incorrect
        Return HA_ERR_RECORD_IS_THE_SAME from ha_innobase::update_row() if no
        columns were updated.
      
      Bug #32440: InnoDB free space info does not appear in SHOW TABLE STATUS or I_S
        Put information about the free space in a tablespace in
        INFORMATION_SCHEMA.TABLES.DATA_FREE. This information was previously
        available in INFORMATION_SCHEMA.TABLES.TABLE_COMMENT, but MySQL has
        removed it from there recently.
        The stored value is in kilobytes.
        This can be considered as a permanent workaround to
        http://bugs.mysql.com/32440. "Workaround" becasue that bug is about the
        data missing from TABLE_COMMENT and this is actually not solved.
      
      
      mysql-test/r/innodb.result:
        New tests for bugs fixed as part of snapshots innodb-5.1-ss2146 and innodb-5.1-ss2178
      mysql-test/r/partition_innodb.result:
        Update results - InnoDB now sets Data_length (show table status)
      mysql-test/t/innodb.test:
        New tests for bugs fixed as part of snapshots innodb-5.1-ss2146 and innodb-5.1-ss2178
      mysql-test/t/partition_innodb.test:
        Mask out Data_Free in show table status, because it varies depending on
        which tests have been run.
      storage/innobase/handler/ha_innodb.cc:
        Apply innodb-5.1-ss2146 and innodb-5.1-ss2178 snapshots.
        
        
        Revision r2178:
        branches/5.1:
        
        Merge r2177 from trunk/:
        
        Fix Bug#29157 "UPDATE, changed rows incorrect":
        
        Return HA_ERR_RECORD_IS_THE_SAME from ha_innobase::update_row() if no
        columns were updated.
        
        
        Revision r2169:
        branches/5.1:
        
        Bug#32440:
        
        Put information about the free space in a tablespace in
        INFORMATION_SCHEMA.TABLES.DATA_FREE. This information was previously
        available in INFORMATION_SCHEMA.TABLES.TABLE_COMMENT, but MySQL has
        removed it from there recently.
        
        The stored value is in kilobytes.
        
        This can be considered as a permanent workaround to
        http://bugs.mysql.com/32440. "Workaround" becasue that bug is about the
        data missing from TABLE_COMMENT and this is actually not solved.
      storage/innobase/row/row0mysql.c:
        Apply innodb-5.1-ss2146 and innodb-5.1-ss2178 snapshots.
        
        
        Revision r2161:
        branches/5.1:
        
        Merge r2160 from trunk/:
        
        Fix Bug#18942 by dropping all foreign key constraints at the end of
        DROP DATABASE. Usually, by then, there are no foreign constraints
        left because all of them are dropped when the relevant tables are
        dropped. This code is to ensure that any orphaned FKs are wiped too.
      storage/innobase/trx/trx0trx.c:
        Apply innodb-5.1-ss2146 and innodb-5.1-ss2178 snapshots.
      f65af153
  24. 04 Dec, 2007 1 commit
    • unknown's avatar
      Added error HA_ERR_FILE_TOO_SHORT to be used when files are shorter than... · 47348f6f
      unknown authored
      Added error HA_ERR_FILE_TOO_SHORT to be used when files are shorter than expected (by my_read/my_pread)
      Added debugger hook _my_dbug_put_break_here() that is called if we get a CRC that matches --debug-crc-break (my_crc_dbug_break)
      Fixed REDO_REPAIR to use all repair modes (repair, repair_by_sort, repair_paralell
      REDO_REPAIR now also logs used key map
      Fixed some bugs in REDO logging of key pages
      Better error messages from maria_read_log
      Added my_readwrite_flags to init_pagecache() to be able to get better error messages and simplify code.
      Don't allow pagecaches with less than 8 blocks (Causes strange crashes)
      Added EXTRA_DEBUG_KEY_CHANGES. When this is defined some REDO_INDEX entries contains page checksums (these are calculated and checked in DBUG mode, ignored otherwise)
      Fixed bug in ma_pagecache unit tests that caused program to sometimes fail
      Added some missing calls to MY_INIT() that caused some unit tests to fail
      Fixed that TRUNCATE works properly on temporary MyISAM files
      Updates some result files to new table checksums results (checksum when NULL fields are ignored)
      perl test-insert can be replayed with maria_read_log!
      
      
      sql/share/Makefile.am:
        Change mode to -rw-rw-r--
      BitKeeper/etc/ignore:
        added storage/maria/unittest/page_cache_test_file_1 storage/maria/unittest/pagecache_debug.log
      include/maria.h:
        Added maria_tmpdir
      include/my_base.h:
        Added error HA_ERR_FILE_TOO_SHORT
      include/my_sys.h:
        Added variable my_crc_dbug_check
        Added function my_dbug_put_break_here()
      include/myisamchk.h:
        Added org_key_map (Needed for writing REDO record for REPAIR)
      mysql-test/r/innodb.result:
        Updated to new checksum algorithm (NULL ignored)
      mysql-test/r/mix2_myisam.result:
        Updated to new checksum algorithm (NULL ignored)
      mysql-test/r/myisam.result:
        Updated to new checksum algorithm (NULL ignored)
      mysql-test/t/myisam.test:
        Added used table
      mysys/checksum.c:
        Added DBUG for checksum results
        Added debugger hook so that _my_dbug_put_break_here() is called if we get matching CRC
      mysys/lf_alloc-pin.c:
        Fixed compiler warning
      mysys/my_handler.c:
        Added new error message
      mysys/my_init.c:
        If my_progname is not given, use 'unknown' form my_progname_short
        Added debugger function my_debug_put_break_here()
      mysys/my_pread.c:
        In case of too short file when MY_NABP or MY_FNABP is specified, give error HA_ERR_FILE_TO_SHORT
      mysys/my_read.c:
        In case of too short file when MY_NABP or MY_FNABP is specified, give error HA_ERR_FILE_TO_SHORT
      sql/mysqld.cc:
        Added debug option --debug-crc-break
      sql/sql_parse.cc:
        Trivial optimization
      storage/maria/ha_maria.cc:
        Renamed variable to be more logical
        Ensure that param.testflag is correct when calling repair
        Added extra argument to init_pagecache
        Set default value for maria_tempdir
      storage/maria/ma_blockrec.c:
        Test for HA_ERR_FILE_TOO_SHORT instead for -1
      storage/maria/ma_cache.c:
        Test for HA_ERR_FILE_TOO_SHORT instead for -1
      storage/maria/ma_check.c:
        Set param->testflag to match how repair is run (needed for REDO logging)
        Simple optimization
        Moved flag if page is node from pagelength to keypage-flag byte
        Log used key map in REDO log.
      storage/maria/ma_delete.c:
        Remember previous UNDO entry when writing undo (for future CLR records)
        Moved flag if page is node from pagelength to keypage-flag byte
        Fixed some bugs in redo logging
        Added CRC for some translog REDO_INDEX entries
      storage/maria/ma_dynrec.c:
        Test for HA_ERR_FILE_TOO_SHORT instead for -1
      storage/maria/ma_ft_update.c:
        Fixed call to _ma_store_page_used()
      storage/maria/ma_key_recover.c:
        Added CRC for some translog REDO_INDEX entries
        Removed not needed pagecache_write() in _ma_apply_redo_index()
      storage/maria/ma_locking.c:
        Test for HA_ERR_FILE_TOO_SHORT instead for -1
      storage/maria/ma_loghandler.c:
        Added used key map to REDO_REPAIR_TABLE
      storage/maria/ma_loghandler.h:
        Added operation for checksum of key pages
      storage/maria/ma_open.c:
        Allocate storage for undo lsn pointers
      storage/maria/ma_pagecache.c:
        Remove not needed include file
        Change logging to use fd: for file descritors as other code
        Added my_readwrite_flags to init_pagecache() to be able to get better error messages for maria_chk/maria_read_log
        Don't allow pagecaches with less than 8 blocks
        Remove wrong DBUG_ASSERT()
      storage/maria/ma_pagecache.h:
        Added readwrite_flags
      storage/maria/ma_recovery.c:
        Better error messages for maria_read_log:
        - Added eprint() for printing error messages
        - Print extra \n before error message if we are printing %0 %10 ...
        
        Added used key_map to REDO_REPAIR log entry
        More DBUG
        Call same repair method that was used by mysqld
      storage/maria/ma_rt_index.c:
        Moved flag if page is node from pagelength to keypage-flag byte
      storage/maria/ma_rt_key.c:
        Fixed call to _ma_store_page_used()
      storage/maria/ma_rt_split.c:
        Moved flag if page is node from pagelength to keypage-flag byte
      storage/maria/ma_static.c:
        Added maria_tmpdir
      storage/maria/ma_test1.c:
        Updated call to init_pagecache()
      storage/maria/ma_test2.c:
        Updated call to init_pagecache()
      storage/maria/ma_test3.c:
        Updated call to init_pagecache()
      storage/maria/ma_write.c:
        Removed #ifdef NOT_YET
        Moved flag if page is node from pagelength to keypage-flag byte
        Fixed bug in  _ma_log_del_prefix()
      storage/maria/maria_chk.c:
        Fixed wrong min limit for page_buffer_size
        Updated call to init_pagecache()
      storage/maria/maria_def.h:
        Added EXTRA_DEBUG_KEY_CHANGES. When this is defined some REDO_INDEX entries contains page checksums
        Moved flag if page is node from pagelength to keypage-flag byte
      storage/maria/maria_ftdump.c:
        Updated call to init_pagecache()
      storage/maria/maria_pack.c:
        Updated call to init_pagecache()
        Reset share->state.create_rename_lsn & share->state.is_of_horizon
      storage/maria/maria_read_log.c:
        Better error messages
        Added --tmpdir option (needed to set temporary directory for REDO_REPAIR)
        Added --start-from-lsn
        Changed option for --display-only to 'd' (wanted to use -o for 'offset')
      storage/maria/unittest/lockman2-t.c:
        Added missing call to MY_INIT()
      storage/maria/unittest/ma_pagecache_consist.c:
        Updated call to init_pagecache()
      storage/maria/unittest/ma_pagecache_single.c:
        Fixed bug that caused program to sometimes fail
        Added some DBUG_ASSERTS()
        Changed some calls to malloc()/free() to my_malloc()/my_free()
        Create extra file to expose original hard-to-find bug
      storage/maria/unittest/ma_test_loghandler-t.c:
        Updated call to init_pagecache()
      storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
        Updated call to init_pagecache()
      storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
        Updated call to init_pagecache()
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Updated call to init_pagecache()
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Updated call to init_pagecache()
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        Updated call to init_pagecache()
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Updated call to init_pagecache()
      storage/maria/unittest/ma_test_loghandler_purge-t.c:
        Updated call to init_pagecache()
      storage/maria/unittest/test_file.c:
        Changed malloc()/free() to my_malloc()/my_free()
        Fixed memory leak
        Changd logic a bit while trying to find bug in reset_file()
      storage/maria/unittest/trnman-t.c:
        Added missing call to MY_INIT()
      storage/myisam/mi_cache.c:
        Test for HA_ERR_FILE_TOO_SHORT instead for -1
      storage/myisam/mi_create.c:
        Removed O_EXCL to get TRUNCATE to work for temporary files
      storage/myisam/mi_dynrec.c:
        Test for HA_ERR_FILE_TOO_SHORT instead for -1
      storage/myisam/mi_locking.c:
        Test for HA_ERR_FILE_TOO_SHORT instead for -1
      mysql-test/r/old-mode.result:
        New BitKeeper file ``mysql-test/r/old-mode.result''
      mysql-test/t/old-mode-master.opt:
        New BitKeeper file ``mysql-test/t/old-mode-master.opt''
      mysql-test/t/old-mode.test:
        New BitKeeper file ``mysql-test/t/old-mode.test''
      47348f6f
  25. 01 Dec, 2007 1 commit
    • unknown's avatar
      Bug#31177: Server variables can't be set to their current values · 549abb44
      unknown authored
      5.1+ specific fixes (plugins etc.)
      
      
      include/my_getopt.h:
        make both ull and ll global
      mysql-test/r/index_merge_myisam.result:
        we throw warnings to the client, yea, verily
      mysql-test/r/innodb.result:
        we throw warnings to the client, yea, verily
      mysql-test/r/variables.result:
        we throw warnings to the client, yea, verily
      mysql-test/t/variables.test:
        correct result, is multiple of variable's block_size now
      mysys/my_getopt.c:
        export getopt_ll_limit_value(), check for integer wrap-around
        in it, same as in ull variant.  Only print warnings to reporter
        when caller didn't ask for diagnostics, otherwise assume caller
        will handle any warnings (id est, throw them client-wards)
      sql/mysqld.cc:
        correct signedness of "concurrent-insert"
      sql/sql_plugin.cc:
        Throw sys-var out-of-range warnings client-wards for
        plugins, too.
      549abb44
  26. 30 Nov, 2007 1 commit
    • unknown's avatar
      Bug#31177: Server variables can't be set to their current values · a7ff6e90
      unknown authored
      Default values of variables were not subject to upper/lower bounds
      and step, while setting variables was. Bounds and step are also
      applied to defaults now; defaults are corrected quietly, values
      given by the user are corrected, and a correction-warning is thrown
      as needed. Lastly, very large values could wrap around, starting
      from 0 again. They are bounded at the maximum value for the
      respective data-type now if no lower maximum is specified in the
      variable's definition.
      
      
      client/mysql.cc:
        correct maxima in options array
      client/mysqltest.c:
        adjust minimum for "sleep" option so default value is no longer
        out of bounds.
      include/m_string.h:
        ullstr() - the unsigned brother of llstr()
      include/my_getopt.h:
        Flag if we bounded the value (that is, correct anything aside from
        making value a multiple of block-size)
      mysql-test/r/delayed.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/index_merge.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/innodb.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/innodb_mysql.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/key_cache.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/packet.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/ps.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/subselect.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/type_bit.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/type_bit_innodb.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/variables.result:
        correct results: bounds and step apply to variables' default values, too
      mysql-test/t/variables.test:
        correct results: bounds and step apply to variables' default values, too
      mysys/my_getopt.c:
        - apply bounds/step to default values of variables (based on work by serg)
        - print complaints about incorrect values for variables (truncation etc.,
          by requestion of consulting)
        - if no lower maximum is specified in variable definition, bound unsigned
          values at their maximum to prevent wrap-around
        - some calls to error_reporter had a \n, some didn't. remove \n from calls,
          let reporter-function handle it, so the default reporter behaves like that
          in mysqld
      sql/mysql_priv.h:
        correct RANGE_ALLOC_BLOCK_SIZE (cleared with monty)
      sql/mysqld.cc:
        correct maxima to correct data-type.
        correct minima where higher than default.
        correct range-alloc-block-size.
        correct inno variables so GET_* corresponds to actual variable's type.
      sql/set_var.cc:
        When the new value for a variable is out of bounds, we'll send the
        client a warning (but not if the value was simply not a multiple of
        'blocksize').  sys_var_thd_ulong had this, sys_var_long_ptr_global
        didn't; broken out and streamlined to avoid duplication of code.
      strings/llstr.c:
        ullstr() - the unsigned brother of llstr()
      a7ff6e90
  27. 23 Nov, 2007 1 commit
    • unknown's avatar
      Post-merge fixes. · 62581535
      unknown authored
      mysql-test/r/innodb.result:
        Result change.
      mysql-test/suite/rpl/r/rpl_binlog_grant.result:
        Result change.
      mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result:
        Result change.
      mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result:
        Result change.
      mysql-test/suite/rpl/t/disabled.def:
        Enabling some tests.
      mysql-test/suite/rpl/t/rpl_binlog_grant.test:
        Adding missing master-slave.inc, causing previous tests to pollute
        the binary log.
      mysql-test/suite/rpl_ndb/t/disabled.def:
        Enabling some tests.
      62581535
  28. 07 Nov, 2007 1 commit
    • unknown's avatar
      Fix for bug #26447: "ALTER TABLE .. ORDER" does not work with InnoDB · 9c34fbfa
      unknown authored
      and auto_increment keys
      
      Problems: 
        1. ALTER TABLE ... ORDER BY... doesn't make sence if there's a 
           user-defined clustered index in the table.
        2. using a secondary index is slower than using a clustered one 
           for a table scan.
      
      Fixes:
        1. raise a warning.
        2. use the clustered index.
      
      
      mysql-test/include/mix1.inc:
        Fix for bug #26447: "ALTER TABLE .. ORDER" does not work with InnoDB 
        and auto_increment keys
          - test case.
      mysql-test/r/innodb.result:
        Fix for bug #26447: "ALTER TABLE .. ORDER" does not work with InnoDB 
        and auto_increment keys
          - results adjusted.
      mysql-test/r/innodb_mysql.result:
        Fix for bug #26447: "ALTER TABLE .. ORDER" does not work with InnoDB 
        and auto_increment keys
          - results adjusted.
      mysql-test/r/join_outer_innodb.result:
        Fix for bug #26447: "ALTER TABLE .. ORDER" does not work with InnoDB 
        and auto_increment keys
          - results adjusted.
      sql/sql_select.cc:
        Fix for bug #26447: "ALTER TABLE .. ORDER" does not work with InnoDB 
        and auto_increment keys
          - use the clustered index for a table scan (if any) as it's faster than
            using a secondary index.
      sql/sql_table.cc:
        Fix for bug #26447: "ALTER TABLE .. ORDER" does not work with InnoDB 
        and auto_increment keys
          - ALTER TABLE ... ORDER BY doesn't make sence if there's a 
            user-defined clustered index in the table. Ignore it in such cases
            and raise a warning.
      9c34fbfa
  29. 06 Nov, 2007 2 commits
    • unknown's avatar
      Apply snapshot innodb-5.1-ss2034 · 8f6e2f9b
      unknown authored
      The following bugs are fixed:
      
      Bug #31860: Server crashes after inserting into InnoDB table with auto_increment column
        In the Bug 16979 fix there was an erroneous assertion that
        autoincrement columns can't contain negative values. With the fix, the
        autoincrement table counter is set to 0 if the maximum value read from
        the autoinc column index is negative.
      
      
      mysql-test/r/innodb.result:
        Apply snapshot innodb-5.1-ss2034
        
        Revision r2034:
        Fix for Bug# 31860, in the Bug 16979 fix there was an erroneous assertion that
        autoincrement columns can't contain negative values. With the fix, the
        autoincrement table counter is set to 0 if the maximum value read from
        the autoinc column index is negative.
        
        Add test for the bug fix but the test is not really useful as the server
        needs to be restarted half way through the test. It has been added for 
        reference only.
      mysql-test/t/innodb.test:
        Apply snapshot innodb-5.1-ss2034
        
        Revision r2034:
        Fix for Bug# 31860, in the Bug 16979 fix there was an erroneous assertion that
        autoincrement columns can't contain negative values. With the fix, the
        autoincrement table counter is set to 0 if the maximum value read from
        the autoinc column index is negative.
        
        Add test for the bug fix but the test is not really useful as the server
        needs to be restarted half way through the test. It has been added for 
        reference only.
      storage/innobase/handler/ha_innodb.cc:
        Apply snapshot innodb-5.1-ss2034
        
        Revision r2017:
        Use "InnoDB:" prefix in error messages.
        
        
        Revision r2018:
        Remove ut_print_timestamp(), this should have been removed when the following
        changes were made by MySQL.
        
        	ChangeSet@1.1810.467.1  2005-08-11 19:19:20+03:00  jani@omakaista.fi
        
        Fix error message so that it conforms to "  InnoDB: Error: ...".
      storage/innobase/include/univ.i:
        Apply snapshot innodb-5.1-ss2034
        
        Revision r2015:
        UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Remove warnings on 64-bit systems.
      storage/innobase/row/row0sel.c:
        Apply snapshot innodb-5.1-ss2034
        
        Revision r2034:
        Fix for Bug# 31860, in the Bug 16979 fix there was an erroneous assertion that
        autoincrement columns can't contain negative values. With the fix, the
        autoincrement table counter is set to 0 if the maximum value read from
        the autoinc column index is negative.
        
        Add test for the bug fix but the test is not really useful as the server
        needs to be restarted half way through the test. It has been added for 
        reference only.
      storage/innobase/sync/sync0sync.c:
        Apply snapshot innodb-5.1-ss2034
        
        Revision r2017:
        Use "InnoDB:" prefix in error messages.
      8f6e2f9b
    • unknown's avatar
      Apply snapshot innodb-5.1-ss1989 · 2d1bd37f
      unknown authored
      Fixes the following bugs:
      
      Bug #30706: SQL thread on slave is allowed to block client queries when slave load is high
        Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
      
      Bug #30888: Innodb table + stored procedure + row deletion = server crash
        While adding code for the low level read of the AUTOINC value from the index,
        the case for MEDIUM ints which are 3 bytes was missed triggering an
        assertion.
      
      Bug #30907: Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases
        We don't rely on *first_value to be 0 when checking whether
        get_auto_increment() has been invoked for the first time in a multi-row
        INSERT. We instead use trx_t::n_autoinc_rows. Initialize trx::n_autoinc_rows
        inside ha_innobase::start_stmt() too.
      
      Bug #31444: "InnoDB: Error: MySQL is freeing a thd" in innodb_mysql.test
        ha_innobase::external_lock(): Update prebuilt->mysql_has_locked and
        trx->n_mysql_tables_in_use only after row_lock_table_for_mysql() returns
        DB_SUCCESS.  A timeout on LOCK TABLES would lead to an inconsistent state,
        which would cause trx_free() to print a warning.
      
      Bug #31494: innodb + 5.1 + read committed crash, assertion
        Set an error code when a deadlock occurs in semi-consistent read.
      
      
      mysql-test/r/innodb.result:
        Apply snapshot innodb-5.1-ss1989
        
        Also, a test is moved into the new innodb_autoinc_lock_mode_zero
        test, because it depends on a non-default setting for a read-only
        variable.
        
        Revision r1821:
        Merge a change from MySQL AB:
        
        ChangeSet@1.2536.50.1  2007-08-02 12:45:56-07:00  igor@mysql.com
        
        Fixed bug#28404.
        This patch adds cost estimation for the queries with ORDER BY / GROUP BY
        and LIMIT.
        If there was a ref/range access to the table whose rows were required
        to be ordered in the result set the optimizer always employed this access
        though a scan by a different index that was compatible with the required
        order could be cheaper to produce the first L rows of the result set.
        Now for such queries the optimizer makes a choice between the cheapest
        ref/range accesses not compatible with the given order and index scans
        compatible with it.
        
        innodb.result: Adjusted results for test cases affected fy the fix for
        bug #28404.
        
        
        Revision r1781:
        Fix a test case that was broken after Bug#16979 fix. See r1645 and r1735.
        The variable used in the tests below was introduced in r1735.
        
        
        Revision r1792:
        innodb.result: Revert r1655, which should have been reverted as part of r1781.
        
        
        Revision r1843:
        Add test for Bug# 21409, the actual bug was fixed in r1334.
      mysql-test/t/innodb.test:
        Apply snapshot innodb-5.1-ss1989
        
        Also, a test is moved into the new innodb_autoinc_lock_mode_zero
        test, because it depends on a non-default setting for a read-only
        variable.
        
        Revision r1781:
        Fix a test case that was broken after Bug#16979 fix. See r1645 and r1735.
        The variable used in the tests below was introduced in r1735.
        
        
        Revision r1843:
        Add test for Bug# 21409, the actual bug was fixed in r1334.
      storage/innobase/buf/buf0lru.c:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1819:
        Merge r1815:1817 from branches/zip: Improve Valgrind instrumentation.
        
        UNIV_MEM_ASSERT_RW(): New macro, to check that the contents of a memory
        area is defined.
        
        UNIV_MEM_ASSERT_W(): New macro, to check that a memory area is writable.
        
        UNIV_MEM_ASSERT_AND_FREE(): New macro, to check that the memory is
        writable before declaring it free (unwritable).  This replaces UNIV_MEM_FREE()
        in many places.
        
        mem_init_buf(): Check that the memory is writable, and declare it undefined.
        
        mem_erase_buf(): Check that the memory is writable, and declare it freed.
      storage/innobase/dict/dict0dict.c:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1894:
        Add debug lock checks to autoinc functions. Add lock guards around an
        invocation of dict_table_autoinc_initialize().
      storage/innobase/dict/dict0load.c:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1974:
        Prevent loading of tables that have unsupported features most notably
        FTS indexes.
      storage/innobase/handler/ha_innodb.cc:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1850:
        Implement this feature request:
        http://bugs.mysql.com/30706
        
        * Add a function that returns the number of microseconds since
          epoch - ut_time_us().
        
        * Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
        
        * Add UT_WAIT_FOR() macro that waits for a specified condition to occur
          until a timeout elapses.
        
        * Using all of the above, handle the replication thread specially in
          srv_conc_enter_innodb().
        
        Approved by:	Heikki
        
        
        
        Revision r1887:
        Merge changes from MySQL AB:
        
        ChangeSet@1.2528.115.25  2007-08-27 18:18:14-06:00  tsmith@hindu.god
        
        Fix some Windows compiler warnings.
        
        dict0mem.c: Fix compiler warning with a cast.
        
        ha_innodb.cc: Change type to fix a compiler warning.
        
        
        Revision r1809:
        ha_innobase::external_lock(): Update prebuilt->mysql_has_locked and
        trx->n_mysql_tables_in_use only after row_lock_table_for_mysql()
        returns DB_SUCCESS.  A timeout on LOCK TABLES would lead to an
        inconsistent state, which would cause trx_free() to print a warning.
        
        This was later reported as Bug #31444.
        
        
        Revision r1833:
        Add /*== ... === */ decoration that was missing around some auto-inc functions.
        Add a missing comment, fix the length of a decoration.  Initialize the *value
        out parameter in ha_innobase::innobase_get_auto_increment().
        
        
        Revision r1866:
        Revert r1850 as MySQL did not approve the addition.
        
        log for r1850:
        
        Implement this feature request:
        http://bugs.mysql.com/30706
        
        * Add a function that returns the number of microseconds since
          epoch - ut_time_us().
        
        * Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
        
        * Add UT_WAIT_FOR() macro that waits for a specified condition to occur
          until a timeout elapses.
        
        * Using all of the above, handle the replication thread specially in
          srv_conc_enter_innodb().
        
        
        Revision r1846:
        Add config option innodb_use_adaptive_hash_indexes to enable/disable
        adaptive hash indexes. It is enabled by default (no change in default
        behavior).
        
        Approved by:	Marko
        
        
        Revision r1974:
        Prevent loading of tables that have unsupported features most notably
        FTS indexes.
        
        
        Revision r1829:
        Add assertion to enforce check of an implicit invariant and add comment about
        retry of autoinc read semantics. We always reread the table's autoinc counter
        after attempting to initialize it i.e., we want to guarantee that a read of
        autoinc valus that is returned to the caller is always covered by the
        AUTOINC locking mechanism.
        
        
        Revision r1787:
        Move the prototype of innobase_print_identifier() from ut0ut.c to
        ha_prototypes.h.  Enclose the definitions in ha_prototypes.h in
        #ifndef UNIV_HOTBACKUP.
        
        
        Revision r1888:
        Merge a change from MySQL AB:
        
        ChangeSet@1.2528.115.30  2007-08-28 10:17:15-06:00  tsmith@hindu.god
        
        Fix another compiler warning on Windows in InnoDB.
        
        ha_innodb.cc:
        
        Fix compiler warning: ::get_auto_increment takes a ulonglong
        for nb_desired_values, but InnoDB's trx struct stores it as
        a ulint (unsigned long).  Probably harmless, as a single
        statement won't be asking for more than 2^32 rows.
        
        
        Revision r1987:
        Bug fix: The problem was that when write_row() attempted to update the max
        autoinc value, and if it was rolled back because of a deadlock, the 
        deadlock error (transaction rollback) was not being propagated back to MySQL.
        
        
        Revision r1889:
        Merge a change from MySQL AB:
        
        ChangeSet@1.2560  2007-09-21 10:15:16+02:00  gkodinov@local
        
        ha_innodb.cc: fixed type conversion warnings revealed by bug 30639 
        
        
        Revision r1989:
        Suppress printing of deadlock errors while reading the autoinc value.
        DB_DEADLOCK errors are part of normal processing and excessive printing
        of these error messages could be disconcerting for users. 
        
        
        Revision r1828:
        Fix two bugs:
        
        Bug# 30907: We don't rely on *first_value to be 0 when checking whether
        get_auto_increment() has been invoked for the first time in a multi-row
        INSERT. We instead use trx_t::n_autoinc_rows. Initialize trx::n_autoinc_rows
        inside ha_innobase::start_stmt() too.
        
        Bug# 30888: While adding code for the low level read of the AUTOINC value
        from the index, the case for MEDIUM ints which are 3 bytes was missed
        triggering an assertion.
      storage/innobase/handler/ha_innodb.h:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1844:
        Remove the prototypes of some functions inside #if 0.
        The function definitions were removed in r1746.
      storage/innobase/ibuf/ibuf0ibuf.c:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1965:
        ibuf_insert_to_index_page(): Fix typos in diagnostic output.
      storage/innobase/include/db0err.h:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1974:
        Prevent loading of tables that have unsupported features most notably
        FTS indexes.
      storage/innobase/include/ha_prototypes.h:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1787:
        Move the prototype of innobase_print_identifier() from ut0ut.c to
        ha_prototypes.h.  Enclose the definitions in ha_prototypes.h in
        #ifndef UNIV_HOTBACKUP.
      storage/innobase/include/mach0data.h:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1779:
        Fix a bug that handles the case where the host specific byte order matches
        the InnoDB storage byte order, which is big-endian.
      storage/innobase/include/mach0data.ic:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1779:
        Fix a bug that handles the case where the host specific byte order matches
        the InnoDB storage byte order, which is big-endian.
      storage/innobase/include/mem0dbg.h:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1830:
        Improve memory debugging.  This is follow-up to r1819.
        
        mem_heap_validate(): Compile this function also if UNIV_MEM_DEBUG is
        defined.  Previously, this function was only compiled with UNIV_DEBUG.
        
        mem_heap_free_heap_top(): Flag the memory allocated, not freed, for
        Valgrind.  Otherwise, Valgrind would complain on the second call of
        mem_heap_empty().
        
        UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Display additional diagnostics
        for failed Valgrind checks.
      storage/innobase/include/mem0mem.ic:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1830:
        Improve memory debugging.  This is follow-up to r1819.
        
        mem_heap_validate(): Compile this function also if UNIV_MEM_DEBUG is
        defined.  Previously, this function was only compiled with UNIV_DEBUG.
        
        mem_heap_free_heap_top(): Flag the memory allocated, not freed, for
        Valgrind.  Otherwise, Valgrind would complain on the second call of
        mem_heap_empty().
        
        UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Display additional diagnostics
        for failed Valgrind checks.
        
        
        Revision r1937:
        mem_heap_free_top(): Remove a bogus Valgrind warning.
        
        
        Revision r1819:
        Merge r1815:1817 from branches/zip: Improve Valgrind instrumentation.
        
        UNIV_MEM_ASSERT_RW(): New macro, to check that the contents of a memory
        area is defined.
        
        UNIV_MEM_ASSERT_W(): New macro, to check that a memory area is writable.
        
        UNIV_MEM_ASSERT_AND_FREE(): New macro, to check that the memory is
        writable before declaring it free (unwritable).  This replaces UNIV_MEM_FREE()
        in many places.
        
        mem_init_buf(): Check that the memory is writable, and declare it undefined.
        
        mem_erase_buf(): Check that the memory is writable, and declare it freed.
      storage/innobase/include/rem0rec.ic:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1918:
        Improve Valgrind instrumentation.
        
        rec_offs_set_n_alloc(): Use UNIV_MEM_ASSERT_AND_ALLOC().
        
        UNIV_MEM_ASSERT_AND_ALLOC(): New directive, similar to
        UNIV_MEM_ASSERT_AND_FREE().
      storage/innobase/include/row0mysql.h:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1783:
        Correct the function comments of row_create_table_for_mysql() and
        row_drop_table_for_mysql().
      storage/innobase/include/sync0rw.h:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1757:
        Enclose rw_lock_validate() in #ifdef UNIV_DEBUG.  It is only called by
        debug assertions.
      storage/innobase/include/univ.i:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1827:
        Merge r1826 from branches/zip: UNIV_MEM_ASSERT_AND_FREE():
        Use UNIV_MEM_ASSERT_W() instead of UNIV_MEM_ASSERT_RW().
        The memory area need not be initialized.
        This mistake was made in r1815.
        
        
        Revision r1918:
        Improve Valgrind instrumentation.
        
        rec_offs_set_n_alloc(): Use UNIV_MEM_ASSERT_AND_ALLOC().
        
        UNIV_MEM_ASSERT_AND_ALLOC(): New directive, similar to
        UNIV_MEM_ASSERT_AND_FREE().
        
        
        Revision r1830:
        Improve memory debugging.  This is follow-up to r1819.
        
        mem_heap_validate(): Compile this function also if UNIV_MEM_DEBUG is
        defined.  Previously, this function was only compiled with UNIV_DEBUG.
        
        mem_heap_free_heap_top(): Flag the memory allocated, not freed, for
        Valgrind.  Otherwise, Valgrind would complain on the second call of
        mem_heap_empty().
        
        UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Display additional diagnostics
        for failed Valgrind checks.
        
        
        Revision r1819:
        Merge r1815:1817 from branches/zip: Improve Valgrind instrumentation.
        
        UNIV_MEM_ASSERT_RW(): New macro, to check that the contents of a memory
        area is defined.
        
        UNIV_MEM_ASSERT_W(): New macro, to check that a memory area is writable.
        
        UNIV_MEM_ASSERT_AND_FREE(): New macro, to check that the memory is
        writable before declaring it free (unwritable).  This replaces UNIV_MEM_FREE()
        in many places.
        
        mem_init_buf(): Check that the memory is writable, and declare it undefined.
        
        mem_erase_buf(): Check that the memory is writable, and declare it freed.
        
        
        Revision r1948:
        UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Display also __FILE__ and __LINE__
        when these Valgrind checks fail.
      storage/innobase/include/ut0ut.h:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1850:
        Implement this feature request:
        http://bugs.mysql.com/30706
        
        * Add a function that returns the number of microseconds since
          epoch - ut_time_us().
        
        * Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
        
        * Add UT_WAIT_FOR() macro that waits for a specified condition to occur
          until a timeout elapses.
        
        * Using all of the above, handle the replication thread specially in
          srv_conc_enter_innodb().
        
        Approved by:	Heikki
        
        
        
        Revision r1862:
        Add ut_snprintf() function. On Windows this needs to be implemented
        using auxiliary functions because there is no snprintf-variant on
        Windows that behaves exactly as specified in the standard:
        
        * Always return the number of characters that would have been printed
          if the size were unlimited (not including the final `\0').
        * Always '\0'-terminate the result
        * Do not touch the buffer if size=0, only return the number of characters
          that would have been printed. Can be used to estimate the size needed
          and to allocate it dynamically.
        
        See http://www.freebsd.org/cgi/query-pr.cgi?pr=87260 for the reason why
        2 ap variables are used.
        
        Approved by:	Heikki
        
        
        Revision r1866:
        Revert r1850 as MySQL did not approve the addition.
        
        log for r1850:
        
        Implement this feature request:
        http://bugs.mysql.com/30706
        
        * Add a function that returns the number of microseconds since
          epoch - ut_time_us().
        
        * Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
        
        * Add UT_WAIT_FOR() macro that waits for a specified condition to occur
          until a timeout elapses.
        
        * Using all of the above, handle the replication thread specially in
          srv_conc_enter_innodb().
      storage/innobase/mem/mem0dbg.c:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1830:
        Improve memory debugging.  This is follow-up to r1819.
        
        mem_heap_validate(): Compile this function also if UNIV_MEM_DEBUG is
        defined.  Previously, this function was only compiled with UNIV_DEBUG.
        
        mem_heap_free_heap_top(): Flag the memory allocated, not freed, for
        Valgrind.  Otherwise, Valgrind would complain on the second call of
        mem_heap_empty().
        
        UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Display additional diagnostics
        for failed Valgrind checks.
        
        
        Revision r1819:
        Merge r1815:1817 from branches/zip: Improve Valgrind instrumentation.
        
        UNIV_MEM_ASSERT_RW(): New macro, to check that the contents of a memory
        area is defined.
        
        UNIV_MEM_ASSERT_W(): New macro, to check that a memory area is writable.
        
        UNIV_MEM_ASSERT_AND_FREE(): New macro, to check that the memory is
        writable before declaring it free (unwritable).  This replaces UNIV_MEM_FREE()
        in many places.
        
        mem_init_buf(): Check that the memory is writable, and declare it undefined.
        
        mem_erase_buf(): Check that the memory is writable, and declare it freed.
      storage/innobase/mem/mem0mem.c:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1819:
        Merge r1815:1817 from branches/zip: Improve Valgrind instrumentation.
        
        UNIV_MEM_ASSERT_RW(): New macro, to check that the contents of a memory
        area is defined.
        
        UNIV_MEM_ASSERT_W(): New macro, to check that a memory area is writable.
        
        UNIV_MEM_ASSERT_AND_FREE(): New macro, to check that the memory is
        writable before declaring it free (unwritable).  This replaces UNIV_MEM_FREE()
        in many places.
        
        mem_init_buf(): Check that the memory is writable, and declare it undefined.
        
        mem_erase_buf(): Check that the memory is writable, and declare it freed.
      storage/innobase/row/row0mysql.c:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1786:
        row_create_table_for_mysql(), row_truncate_table_for_mysql(),
        row_drop_table_for_mysql(): Do not mention innodb_force_recovery
        when newraw is set.
        
        
        Revision r1790:
        row_drop_table_for_mysql(): Before calling
        dict_table_remove_from_cache(table) and thus freeing the memory
        allocated for the table, copy the table name.  This avoids reading
        freed memory when name == table->name.
        
        Approved by Sunny.
        
        
        Revision r1783:
        Correct the function comments of row_create_table_for_mysql() and
        row_drop_table_for_mysql().
        
        
        Revision r1894:
        Add debug lock checks to autoinc functions. Add lock guards around an
        invocation of dict_table_autoinc_initialize().
      storage/innobase/row/row0sel.c:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1782:
        Add comment that the variable dest should be word aligned. After discussion
        on IM with Heikki.
        
        
        Revision r1988:
        Set an error code when a deadlock occurs in semi-consistent read.  (Bug #31494)
        
        innodb-semi-consistent: New tests for InnoDB semi-consistent reads.
        Unfortunately, these will not trigger Bug #31494, because there merely
        occur lock wait timeouts, not deadlocks.
        
        
        Revision r1820:
        Use the clustered index and not the one selected by the optimizer in the plan,
        when building a previous version of the row. This bug is triggered when
        running queries via InnoDB's internal SQL parser; when InnoDB's optimizer
        selects a secondary index for the plan.
        
        
        Revision r1828:
        Fix two bugs:
        
        Bug# 30907: We don't rely on *first_value to be 0 when checking whether
        get_auto_increment() has been invoked for the first time in a multi-row
        INSERT. We instead use trx_t::n_autoinc_rows. Initialize trx::n_autoinc_rows
        inside ha_innobase::start_stmt() too.
        
        Bug# 30888: While adding code for the low level read of the AUTOINC value
        from the index, the case for MEDIUM ints which are 3 bytes was missed
        triggering an assertion.
        
        
        Revision r1779:
        Fix a bug that handles the case where the host specific byte order matches
        the InnoDB storage byte order, which is big-endian.
      storage/innobase/sync/sync0rw.c:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1757:
        Enclose rw_lock_validate() in #ifdef UNIV_DEBUG.  It is only called by
        debug assertions.
      storage/innobase/ut/ut0ut.c:
        Apply snapshot innodb-5.1-ss1989
        
        Revision r1850:
        Implement this feature request:
        http://bugs.mysql.com/30706
        
        * Add a function that returns the number of microseconds since
          epoch - ut_time_us().
        
        * Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
        
        * Add UT_WAIT_FOR() macro that waits for a specified condition to occur
          until a timeout elapses.
        
        * Using all of the above, handle the replication thread specially in
          srv_conc_enter_innodb().
        
        Approved by:	Heikki
        
        
        
        Revision r1873:
        snprintf() should always return non-negative result. According to
        Microsoft documentation about _vscprintf():
        
          If format is a null pointer, the invalid parameter handler is invoked,
          as described in Parameter Validation. If execution is allowed to
          continue, the functions return -1 and set errno to EINVAL.
        
        The UNIX variant of snprintf() segfaults if format is a NULL pointer
        (similar to strlen(NULL) for example), so it is better to conform to
        this behavior and crash our custom Windows version instead of
        returning -1. Noone would expect -1 to be returned from snprintf().
        
        Cosmetic: Add a space after typecast.
        
        Approved by:	Marko
        
        
        Revision r1862:
        Add ut_snprintf() function. On Windows this needs to be implemented
        using auxiliary functions because there is no snprintf-variant on
        Windows that behaves exactly as specified in the standard:
        
        * Always return the number of characters that would have been printed
          if the size were unlimited (not including the final `\0').
        * Always '\0'-terminate the result
        * Do not touch the buffer if size=0, only return the number of characters
          that would have been printed. Can be used to estimate the size needed
          and to allocate it dynamically.
        
        See http://www.freebsd.org/cgi/query-pr.cgi?pr=87260 for the reason why
        2 ap variables are used.
        
        Approved by:	Heikki
        
        
        Revision r1866:
        Revert r1850 as MySQL did not approve the addition.
        
        log for r1850:
        
        Implement this feature request:
        http://bugs.mysql.com/30706
        
        * Add a function that returns the number of microseconds since
          epoch - ut_time_us().
        
        * Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
        
        * Add UT_WAIT_FOR() macro that waits for a specified condition to occur
          until a timeout elapses.
        
        * Using all of the above, handle the replication thread specially in
          srv_conc_enter_innodb().
        
        
        Revision r1787:
        Move the prototype of innobase_print_identifier() from ut0ut.c to
        ha_prototypes.h.  Enclose the definitions in ha_prototypes.h in
        #ifndef UNIV_HOTBACKUP.
        
        
        Revision r1789:
        ut_print_namel(): Do not assume that all '/' are separators between
        database and table names.
        
        Approved by Heikki.
        
        
        Revision r1936:
        ut_print_buf(): Add a Valgrind check that the buffer is wholly defined.
      mysql-test/r/innodb-semi-consistent.result:
        Apply snapshot innodb-5.1-ss1989
        
        
        Revision r1988:
        Set an error code when a deadlock occurs in semi-consistent read.  (Bug #31494)
        
        innodb-semi-consistent: New tests for InnoDB semi-consistent reads.
        Unfortunately, these will not trigger Bug #31494, because there merely
        occur lock wait timeouts, not deadlocks.
      mysql-test/r/innodb_autoinc_lock_mode_zero.result:
        New test, using read-only setting --innodb-autoinc-lock-mode=0
      mysql-test/t/innodb-semi-consistent-master.opt:
        Apply snapshot innodb-5.1-ss1989
        
        
        Revision r1988:
        Set an error code when a deadlock occurs in semi-consistent read.  (Bug #31494)
        
        innodb-semi-consistent: New tests for InnoDB semi-consistent reads.
        Unfortunately, these will not trigger Bug #31494, because there merely
        occur lock wait timeouts, not deadlocks.
      mysql-test/t/innodb-semi-consistent.test:
        Apply snapshot innodb-5.1-ss1989
        
        
        Revision r1988:
        Set an error code when a deadlock occurs in semi-consistent read.  (Bug #31494)
        
        innodb-semi-consistent: New tests for InnoDB semi-consistent reads.
        Unfortunately, these will not trigger Bug #31494, because there merely
        occur lock wait timeouts, not deadlocks.
      mysql-test/t/innodb_autoinc_lock_mode_zero-master.opt:
        New test, using read-only setting --innodb-autoinc-lock-mode=0
      mysql-test/t/innodb_autoinc_lock_mode_zero.test:
        New test, using read-only setting --innodb-autoinc-lock-mode=0
      2d1bd37f
  30. 13 Oct, 2007 2 commits
    • unknown's avatar
      manual merge for bug_29136, bug#29309. · 75671f20
      unknown authored
      mysql-test/extra/binlog_tests/mix_innodb_myisam_side_effects.test:
        manual merge from 5.0
      mysql-test/r/innodb.result:
        results changed
      mysql-test/r/multi_update.result:
        results changed
      mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
        manual merge: results re-recorded
      mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
        results changed
      mysql-test/suite/manual/r/rpl_replication_delay.result:
        results recorded for 5.1
      mysql-test/t/innodb.test:
        removing bug27716 regression test as one exists in binlog suite already.
      mysql-test/t/multi_update.test:
        manual merge plus refining for execution in both binlog_format.
      sql/log_event.cc:
        bloody manual merge;
        the fact that an event is artificial is encode with setting timestamp argument to zero.
        rli's last_master_timestamp won't be updated in stmt_done in such case.
      sql/rpl_rli.cc:
        simulation and the real fixing code.
        Don't update last_master_timestamp with zero.
      sql/sql_delete.cc:
        manual merge
      75671f20
    • unknown's avatar
      Bug #29136 erred multi-delete on trans table does not rollback the statement · 166fab60
      unknown authored
      similar to bug_27716, but it was stressed on in the synopsis on that there is another
      side of the artifact affecting behaviour in transaction.
      
      Fixed with deploying multi_delete::send_error() - otherwise never called - and refining its logic
      to perform binlogging job if needed.
      
      The changeset includes the following side effects:
      - added tests to check bug_23333's scenarios on the mixture of tables for multi_update;
      - fixes bug@30763 with two-liner patch and a test coinciding to one added for bug_23333.
      
      
      mysql-test/r/innodb.result:
        results changed
      mysql-test/r/mix_innodb_myisam_binlog.result:
        results changed
      mysql-test/r/multi_update.result:
        results changed
      mysql-test/t/innodb.test:
        trans table specific test added
      mysql-test/t/mix_innodb_myisam_binlog.test:
        multi-update  and multi-delete of mixure of ta and not-ta tables tests added (relates to bug_23333).
      mysql-test/t/multi_update.test:
        testing another branch of mult-delete: send_eof() (binloggin there), send_error (early return)
      sql/sql_class.h:
        a new flag to designate the fact the statement's error has been handled.
        The flag is checked by ::send_error() methods (multi_update and _delete classes)
      sql/sql_delete.cc:
        expanding multi_delete::send_error to 
        1. early return if error_handled == t
        2. binlogging locally if there was a non-trans table modified side effect
      sql/sql_parse.cc:
        adding multi_update::send_error which can perform binlogging and rollback job in needed
      sql/sql_update.cc:
        issues relating to
         
        1. bug_27716 with zeroing of `updated' to serve as the flag of early return from send_error().
           The flag is changed to be a new member error_handled; also moved outside binlogging branch.
           The reason for this change is that bug_23333 fixes were pushed after the bug_27716's and they
           left this flaw (also no test coverage).
        2. bug_30763 with assertion on trans_safe. I decide to make 2 liner fix for that bug here instead of to remove
           those two assertions. This new bug test case is the same as for multi-update on the mixure of tables.
           The rational for this fix:
           presumption for mutli_update::trans_safe to be set to zero at
           multi_update::multi_update or multi_update::initialize_tables() is incorrect.
        
           trans_safe := false should happen only when a non-transactional table gets modified. 
           Therefore, at initialization the member must be be set to true.
      166fab60
  31. 25 Aug, 2007 1 commit
    • unknown's avatar
      Apply InnoDB snapshot innodb-5.1-ss1726. · 312f8ea6
      unknown authored
      Bug #16979: AUTO_INC lock in InnoDB works a table level lock
        - this is a major change in InnoDB auto-inc handling.
      Bug #27950: Duplicate entry error in auto-inc after mysqld restart
        - Init AUTOINC from delete_row().
      Bug #28781: InnoDB increments auto-increment value incorrectly with ON DUPLICATE KEY UPDATE
        - Use value specified by MySQL, in update_row().
      
      
      mysql-test/r/innodb.result:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1655:
        Fix the innodb.test failure mentioned in r1654.
      storage/innobase/dict/dict0dict.c:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1645:
        Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
        is one test that fails as of this commit. The updated test case should be
        part of the snapshot from MySQL shortly.
        
        Fix for bug# 27950 - Init AUTOINC from delete_row().
        
        Fix for bug# 28781 - Use value specified by MySQL, in update_row().
        
        Summary of structural changes:
        ==============================
        InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
        the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
        for simple INSERT statements (including multi-value inserts), we try and avoid
        acquiring the special AUTOINC table level lock unless another transaction has
        already reserved the AUTOINC table level lock, in which case we fall back
        to the old behavior of acquiring the AUTOINC table level lock.
        
        The max AUTOINC value is now read directly using the low level interface
        of InnoDB.
        
        
        Revision r1719:
        Merge r1264 from branches/zip: Avoid memory fragmentation when
        adding column definitions to tables.
        
        dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
        allocation.  Allow it and "name" to be NULL.  These parameters are NULL
        when creating dummy indexes.
        
        dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
        
        dict_table_get_col_name(): Allow table->col_names to be NULL.
        
        dict_table_add_system_columns(), dict_table_add_to_cache():
        Add the parameter "heap".
        ---
        Additional changes that had to be merged from branches/zip:
        
        dict_table_add_system_columns(): New function, factored out from
        dict_table_add_to_cache().
        
        mlog_parse_index(): Add some consistency checks, and make use of
        dict_table_add_system_columns().
      storage/innobase/dict/dict0mem.c:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1645:
        Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
        is one test that fails as of this commit. The updated test case should be
        part of the snapshot from MySQL shortly.
        
        Fix for bug# 27950 - Init AUTOINC from delete_row().
        
        Fix for bug# 28781 - Use value specified by MySQL, in update_row().
        
        Summary of structural changes:
        ==============================
        InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
        the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
        for simple INSERT statements (including multi-value inserts), we try and avoid
        acquiring the special AUTOINC table level lock unless another transaction has
        already reserved the AUTOINC table level lock, in which case we fall back
        to the old behavior of acquiring the AUTOINC table level lock.
        
        The max AUTOINC value is now read directly using the low level interface
        of InnoDB.
        
        
        Revision r1719:
        Merge r1264 from branches/zip: Avoid memory fragmentation when
        adding column definitions to tables.
        
        dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
        allocation.  Allow it and "name" to be NULL.  These parameters are NULL
        when creating dummy indexes.
        
        dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
        
        dict_table_get_col_name(): Allow table->col_names to be NULL.
        
        dict_table_add_system_columns(), dict_table_add_to_cache():
        Add the parameter "heap".
        ---
        Additional changes that had to be merged from branches/zip:
        
        dict_table_add_system_columns(): New function, factored out from
        dict_table_add_to_cache().
        
        mlog_parse_index(): Add some consistency checks, and make use of
        dict_table_add_system_columns().
      storage/innobase/handler/ha_innodb.cc:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1645:
        Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
        is one test that fails as of this commit. The updated test case should be
        part of the snapshot from MySQL shortly.
        
        Fix for bug# 27950 - Init AUTOINC from delete_row().
        
        Fix for bug# 28781 - Use value specified by MySQL, in update_row().
        
        Summary of structural changes:
        ==============================
        InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
        the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
        for simple INSERT statements (including multi-value inserts), we try and avoid
        acquiring the special AUTOINC table level lock unless another transaction has
        already reserved the AUTOINC table level lock, in which case we fall back
        to the old behavior of acquiring the AUTOINC table level lock.
        
        The max AUTOINC value is now read directly using the low level interface
        of InnoDB.
        
        
        Revision r1718:
        Replace mysql_byte with uchar and remove the #define mysql_byte from
        ha_innodb.cc.  This cleanup was made possible as of r1550:
        
        
        Revision r1658:
        check_trx_exists(): Remove a redundant function call and assignment that
        was added by someone at MySQL.
        
        
        Revision r1656:
        
        
        Revision r1719:
        Merge r1264 from branches/zip: Avoid memory fragmentation when
        adding column definitions to tables.
        
        dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
        allocation.  Allow it and "name" to be NULL.  These parameters are NULL
        when creating dummy indexes.
        
        dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
        
        dict_table_get_col_name(): Allow table->col_names to be NULL.
        
        dict_table_add_system_columns(), dict_table_add_to_cache():
        Add the parameter "heap".
        ---
        Additional changes that had to be merged from branches/zip:
        
        dict_table_add_system_columns(): New function, factored out from
        dict_table_add_to_cache().
        
        mlog_parse_index(): Add some consistency checks, and make use of
        dict_table_add_system_columns().
        
        
        Revision r1654:
        
        One test case in innodb.test fails because of auto-increment
        changes in r1562:1653:
        
        $diff innodb.result innodb.reject
        504c504
        < 3	test2		this will work
        ---
        > 4	test2		this will work
      storage/innobase/handler/ha_innodb.h:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1645:
        Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
        is one test that fails as of this commit. The updated test case should be
        part of the snapshot from MySQL shortly.
        
        Fix for bug# 27950 - Init AUTOINC from delete_row().
        
        Fix for bug# 28781 - Use value specified by MySQL, in update_row().
        
        Summary of structural changes:
        ==============================
        InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
        the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
        for simple INSERT statements (including multi-value inserts), we try and avoid
        acquiring the special AUTOINC table level lock unless another transaction has
        already reserved the AUTOINC table level lock, in which case we fall back
        to the old behavior of acquiring the AUTOINC table level lock.
        
        The max AUTOINC value is now read directly using the low level interface
        of InnoDB.
        
        
        Revision r1654:
        
        One test case in innodb.test fails because of auto-increment
        changes in r1562:1653:
        
        $diff innodb.result innodb.reject
        504c504
        < 3	test2		this will work
        ---
        > 4	test2		this will work
      storage/innobase/ibuf/ibuf0ibuf.c:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1715:
        ibuf0ibuf.c: Remove the unused prototype for dict_index_print_low()
        that was inadvertently added in r832.
        
        
        Revision r1719:
        Merge r1264 from branches/zip: Avoid memory fragmentation when
        adding column definitions to tables.
        
        dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
        allocation.  Allow it and "name" to be NULL.  These parameters are NULL
        when creating dummy indexes.
        
        dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
        
        dict_table_get_col_name(): Allow table->col_names to be NULL.
        
        dict_table_add_system_columns(), dict_table_add_to_cache():
        Add the parameter "heap".
        ---
        Additional changes that had to be merged from branches/zip:
        
        dict_table_add_system_columns(): New function, factored out from
        dict_table_add_to_cache().
        
        mlog_parse_index(): Add some consistency checks, and make use of
        dict_table_add_system_columns().
      storage/innobase/include/dict0dict.h:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1645:
        Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
        is one test that fails as of this commit. The updated test case should be
        part of the snapshot from MySQL shortly.
        
        Fix for bug# 27950 - Init AUTOINC from delete_row().
        
        Fix for bug# 28781 - Use value specified by MySQL, in update_row().
        
        Summary of structural changes:
        ==============================
        InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
        the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
        for simple INSERT statements (including multi-value inserts), we try and avoid
        acquiring the special AUTOINC table level lock unless another transaction has
        already reserved the AUTOINC table level lock, in which case we fall back
        to the old behavior of acquiring the AUTOINC table level lock.
        
        The max AUTOINC value is now read directly using the low level interface
        of InnoDB.
        
        
        Revision r1719:
        Merge r1264 from branches/zip: Avoid memory fragmentation when
        adding column definitions to tables.
        
        dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
        allocation.  Allow it and "name" to be NULL.  These parameters are NULL
        when creating dummy indexes.
        
        dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
        
        dict_table_get_col_name(): Allow table->col_names to be NULL.
        
        dict_table_add_system_columns(), dict_table_add_to_cache():
        Add the parameter "heap".
        ---
        Additional changes that had to be merged from branches/zip:
        
        dict_table_add_system_columns(): New function, factored out from
        dict_table_add_to_cache().
        
        mlog_parse_index(): Add some consistency checks, and make use of
        dict_table_add_system_columns().
      storage/innobase/include/dict0mem.h:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1645:
        Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
        is one test that fails as of this commit. The updated test case should be
        part of the snapshot from MySQL shortly.
        
        Fix for bug# 27950 - Init AUTOINC from delete_row().
        
        Fix for bug# 28781 - Use value specified by MySQL, in update_row().
        
        Summary of structural changes:
        ==============================
        InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
        the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
        for simple INSERT statements (including multi-value inserts), we try and avoid
        acquiring the special AUTOINC table level lock unless another transaction has
        already reserved the AUTOINC table level lock, in which case we fall back
        to the old behavior of acquiring the AUTOINC table level lock.
        
        The max AUTOINC value is now read directly using the low level interface
        of InnoDB.
        
        
        Revision r1719:
        Merge r1264 from branches/zip: Avoid memory fragmentation when
        adding column definitions to tables.
        
        dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
        allocation.  Allow it and "name" to be NULL.  These parameters are NULL
        when creating dummy indexes.
        
        dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
        
        dict_table_get_col_name(): Allow table->col_names to be NULL.
        
        dict_table_add_system_columns(), dict_table_add_to_cache():
        Add the parameter "heap".
        ---
        Additional changes that had to be merged from branches/zip:
        
        dict_table_add_system_columns(): New function, factored out from
        dict_table_add_to_cache().
        
        mlog_parse_index(): Add some consistency checks, and make use of
        dict_table_add_system_columns().
      storage/innobase/include/lock0lock.h:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1664:
        lock_number_of_rows_locked(): Fix a typo in comment, and make the comments
        in lock0lock.c and lock0lock.h identical.  The typo was incorrectly fixed in
        r1623.
      storage/innobase/include/row0mysql.h:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1645:
        Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
        is one test that fails as of this commit. The updated test case should be
        part of the snapshot from MySQL shortly.
        
        Fix for bug# 27950 - Init AUTOINC from delete_row().
        
        Fix for bug# 28781 - Use value specified by MySQL, in update_row().
        
        Summary of structural changes:
        ==============================
        InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
        the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
        for simple INSERT statements (including multi-value inserts), we try and avoid
        acquiring the special AUTOINC table level lock unless another transaction has
        already reserved the AUTOINC table level lock, in which case we fall back
        to the old behavior of acquiring the AUTOINC table level lock.
        
        The max AUTOINC value is now read directly using the low level interface
        of InnoDB.
      storage/innobase/include/row0sel.h:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1645:
        Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
        is one test that fails as of this commit. The updated test case should be
        part of the snapshot from MySQL shortly.
        
        Fix for bug# 27950 - Init AUTOINC from delete_row().
        
        Fix for bug# 28781 - Use value specified by MySQL, in update_row().
        
        Summary of structural changes:
        ==============================
        InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
        the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
        for simple INSERT statements (including multi-value inserts), we try and avoid
        acquiring the special AUTOINC table level lock unless another transaction has
        already reserved the AUTOINC table level lock, in which case we fall back
        to the old behavior of acquiring the AUTOINC table level lock.
        
        The max AUTOINC value is now read directly using the low level interface
        of InnoDB.
      storage/innobase/include/trx0trx.h:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1645:
        Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
        is one test that fails as of this commit. The updated test case should be
        part of the snapshot from MySQL shortly.
        
        Fix for bug# 27950 - Init AUTOINC from delete_row().
        
        Fix for bug# 28781 - Use value specified by MySQL, in update_row().
        
        Summary of structural changes:
        ==============================
        InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
        the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
        for simple INSERT statements (including multi-value inserts), we try and avoid
        acquiring the special AUTOINC table level lock unless another transaction has
        already reserved the AUTOINC table level lock, in which case we fall back
        to the old behavior of acquiring the AUTOINC table level lock.
        
        The max AUTOINC value is now read directly using the low level interface
        of InnoDB.
      storage/innobase/include/ut0mem.h:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1713:
        Fix typo in comment.
      storage/innobase/log/log0recv.c:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1657:
        recv_init_crash_recovery(): remove trailing white space
      storage/innobase/row/row0mysql.c:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1645:
        Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
        is one test that fails as of this commit. The updated test case should be
        part of the snapshot from MySQL shortly.
        
        Fix for bug# 27950 - Init AUTOINC from delete_row().
        
        Fix for bug# 28781 - Use value specified by MySQL, in update_row().
        
        Summary of structural changes:
        ==============================
        InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
        the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
        for simple INSERT statements (including multi-value inserts), we try and avoid
        acquiring the special AUTOINC table level lock unless another transaction has
        already reserved the AUTOINC table level lock, in which case we fall back
        to the old behavior of acquiring the AUTOINC table level lock.
        
        The max AUTOINC value is now read directly using the low level interface
        of InnoDB.
      storage/innobase/row/row0sel.c:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1645:
        Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
        is one test that fails as of this commit. The updated test case should be
        part of the snapshot from MySQL shortly.
        
        Fix for bug# 27950 - Init AUTOINC from delete_row().
        
        Fix for bug# 28781 - Use value specified by MySQL, in update_row().
        
        Summary of structural changes:
        ==============================
        InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
        the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
        for simple INSERT statements (including multi-value inserts), we try and avoid
        acquiring the special AUTOINC table level lock unless another transaction has
        already reserved the AUTOINC table level lock, in which case we fall back
        to the old behavior of acquiring the AUTOINC table level lock.
        
        The max AUTOINC value is now read directly using the low level interface
        of InnoDB.
      storage/innobase/trx/trx0trx.c:
        Apply InnoDB snapshot innodb-5.1-ss1726.
        
        Revision r1645:
        Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
        is one test that fails as of this commit. The updated test case should be
        part of the snapshot from MySQL shortly.
        
        Fix for bug# 27950 - Init AUTOINC from delete_row().
        
        Fix for bug# 28781 - Use value specified by MySQL, in update_row().
        
        Summary of structural changes:
        ==============================
        InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
        the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix 
        for simple INSERT statements (including multi-value inserts), we try and avoid
        acquiring the special AUTOINC table level lock unless another transaction has
        already reserved the AUTOINC table level lock, in which case we fall back
        to the old behavior of acquiring the AUTOINC table level lock.
        
        The max AUTOINC value is now read directly using the low level interface
        of InnoDB.
      312f8ea6
  32. 14 Aug, 2007 1 commit
    • unknown's avatar
      Updates to allow innodb.test to be run with --embedded-server, · 5fe327b7
      unknown authored
      including a small change to build_table_filename().
      
      
      mysql-test/mysql-test-run.pl:
        Remove unused bad merge bitrot code.  This chunk of code is a repeat
        copy of an earlier chunk, and should never have been here.
      mysql-test/r/innodb.result:
        Updates to allow innodb.test to be run with --embedded-server
      mysql-test/suite/binlog/r/binlog_innodb.result:
        Updates to allow innodb.test to be run with --embedded-server
      mysql-test/suite/binlog/t/binlog_innodb.test:
        Updates to allow innodb.test to be run with --embedded-server
      mysql-test/t/innodb.test:
        Updates to allow innodb.test to be run with --embedded-server
      sql/sql_table.cc:
        build_table_filename(): Don't add FN_ROOTDIR to mysql_data_home if
        it's already there.  This is done to make it easier to write tests
        which check the output of various error messages, and work with
        both the embedded server (mysql_data_home is full path, including
        trailing FN_ROOTDIR) and normal server (mysql_data_home is just ".").
      5fe327b7
  33. 02 Aug, 2007 1 commit
    • unknown's avatar
      Fixed bug#28404. · bdba4c96
      unknown authored
      This patch adds cost estimation for the queries with ORDER BY / GROUP BY
      and LIMIT. 
      If there was a ref/range access to the table whose rows were required
      to be ordered in the result set the optimizer always employed this access
      though a scan by a different index that was compatible with the required 
      order could be cheaper to produce the first L rows of the result set.
      Now for such queries the optimizer makes a choice between the cheapest
      ref/range accesses not compatible with the given order and index scans
      compatible with it.
      
      
      mysql-test/r/distinct.result:
        Adjusted results for test cases affected fy the fix for bug #28404.
      mysql-test/r/endspace.result:
        Adjusted results for test cases affected fy the fix for bug #28404.
      mysql-test/r/group_by.result:
        Adjusted results for test cases affected fy the fix for bug #28404.
      mysql-test/r/group_min_max.result:
        Adjusted results for test cases affected fy the fix for bug #28404.
      mysql-test/r/innodb.result:
        Adjusted results for test cases affected fy the fix for bug #28404.
      mysql-test/r/innodb_mysql.result:
        Adjusted results for test cases affected fy the fix for bug #28404.
      mysql-test/r/merge.result:
        Adjusted results for test cases affected fy the fix for bug #28404.
      mysql-test/r/order_by.result:
        Added a test case for bug #28404.
      mysql-test/r/select_found.result:
        Adjusted results for test cases affected fy the fix for bug #28404.
      mysql-test/r/subselect.result:
        Adjusted results for test cases affected fy the fix for bug #28404.
      mysql-test/t/distinct.test:
        Changed a test case after adding the fix for bug #28404.
      mysql-test/t/order_by.test:
        Added a test case for bug #28404.
      sql/sql_select.cc:
        Fixed bug#28404.
        This patch adds cost estimation for the queries with ORDER BY / GROUP BY
        and LIMIT. 
        Now for such queries the optimizer makes a choice between the cheapest
        ref/range accesses not compatible with the given order and index scans
        compatible with it.
        
        Modified the function test_if_skip_sort_order to make the above mentioned
        choice cost based.
      sql/sql_select.h:
        Fixed bug#28404.
        This patch adds cost estimation for the queries with ORDER BY / GROUP BY
        and LIMIT. 
        Added a new field fot the JOIN_TAB structure.
      bdba4c96
  34. 18 Jul, 2007 1 commit
    • unknown's avatar
      A fix and a test case for Bug#26104 Bug on foreign key class constructor. · 74c8a55f
      unknown authored
      Fix the typo in the constructor. Cover a semantic check that previously
      never worked with a test.
      
      
      mysql-test/r/create.result:
        Update results (Bug#26104)
      mysql-test/r/innodb.result:
        Update results.
      mysql-test/t/create.test:
        Add a test case for Bug#26104 Bug on foreign key class constructor
      mysql-test/t/innodb.test:
        Return a new error number (MySQL error instead of internal InnoDB error).
      sql/sql_class.h:
        A fix for Bug#26104 Bug on foreign key class constructor -- fix
        the typo in the constructor
      74c8a55f
  35. 10 Jul, 2007 1 commit
    • unknown's avatar
      Apply the following innodb-5.1-* snapshots: ss1489, ss1496, ss1550, ss1569. · b3f18eb9
      unknown authored
      After applying the snapshots, ensure that code conforms to the final version
      of WL 3914.
      
      It is signficant that, after these changes, InnoDB does not define MYSQL_SERVER,
      and can be built as an independent storage engine plugin.
      
      Fixes:
      Bug#9709:  InnoDB inconsistensy causes "Operating System Error 32/33"
      Bug#18828: If InnoDB runs out of undo slots, it returns misleading 'table is full'
      Bug#20090: InnoDB: Error: trying to declare trx to enter InnoDB
      Bug#20352: Make ibuf_contract_for_n_pages tunable
      Bug#21101: Wrong error on exceeding max row size for InnoDB table
      Bug#21293: Deadlock detection prefers to kill long running FOR UPDATE queries
      Bug#22819: SHOW INNODB STATUS crashes the server with an assertion failure under high load
      Bug#25078: Make the replication thread to ignore innodb_thread_concurrency
      Bug#25645: Assertion failure in file srv0srv.c
      Bug#28138: indexing column prefixes produces corruption in InnoDB
      
      
      BitKeeper/deleted/.del-Makefile.am~55504c43d99979e4:
        Delete: storage/innobase/buf/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~79bb55303929b560:
        Delete: storage/innobase/dict/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~7cd88e5f9a8d7ce8:
        Delete: storage/innobase/data/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~e19a1fb29b1fe527:
        Delete: storage/innobase/btr/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~4ae65b009d41d1d:
        Delete: storage/innobase/eval/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~679131a02af3f6fb:
        Delete: storage/innobase/fsp/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~6acac9ae30eabdb3:
        Delete: storage/innobase/dyn/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~a5e6b4385717fcb7:
        Delete: storage/innobase/fil/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~11d601934b49c19:
        Delete: storage/innobase/fut/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~5aab37bf3b6c430:
        Delete: storage/innobase/ibuf/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~af2d719bb6e66986:
        Delete: storage/innobase/handler/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~f0dbbc7a78648e18:
        Delete: storage/innobase/ha/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~41684e54a5b0d26a:
        Delete: storage/innobase/log/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~edd95d7290ddeff3:
        Delete: storage/innobase/lock/Makefile.am
      BitKeeper/deleted/.del-Makefile.i:
        Delete: storage/innobase/include/Makefile.i
      BitKeeper/deleted/.del-Makefile.am~2a6ccdba41b591a3:
        Delete: storage/innobase/mach/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~2bd35bda856342:
        Delete: storage/innobase/os/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~8448688c5ab92132:
        Delete: storage/innobase/mem/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~b5a7a8cfa711b6de:
        Delete: storage/innobase/mtr/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~2cee8a309eb8eee2:
        Delete: storage/innobase/page/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~3d0553f8aa9c456b:
        Delete: storage/innobase/read/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~7b0c4abae6684f8c:
        Delete: storage/innobase/pars/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~d0e0dd55cbd413f0:
        Delete: storage/innobase/que/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~20a219ccf7825d65:
        Delete: storage/innobase/row/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~37bdfb2973b2442b:
        Delete: storage/innobase/rem/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~557098c4e5c01ee2:
        Delete: storage/innobase/thr/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~fdfe12f48c2499af:
        Delete: storage/innobase/sync/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~feb2280a52035d8d:
        Delete: storage/innobase/srv/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~456d34c4816dbda4:
        Delete: storage/innobase/ut/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~5ec2ef0d2c35e138:
        Delete: storage/innobase/usr/Makefile.am
      BitKeeper/deleted/.del-Makefile.am~d25c456e48393313:
        Delete: storage/innobase/trx/Makefile.am
      mysql-test/r/innodb.result:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1421:
        Fix the innodb test by shifting some of the contents of the .result file.
        
        Approved by:	Marko
        
        
        Revision r1422:
        Fix for Bug#21101 - returns wrong error message when table column
        defs exceed the max row size.
        
        The fix returns a more appropriate error message. Add a test case to
        innodb.test and expected output to innodb.result.
      mysql-test/t/innodb.test:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1422:
        Fix for Bug#21101 - returns wrong error message when table column
        defs exceed the max row size.
        
        The fix returns a more appropriate error message. Add a test case to
        innodb.test and expected output to innodb.result.
      storage/innobase/btr/btr0btr.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1546:
        When buffering an insert to a prefix index of a variable-length column,
        do not incorrectly mark the column as fixed-length.  (Bug#28138)
        
        ibuf_entry_build(): Instead of prefix_len, pass fixed_len to
        dtype_new_store_for_order_and_null_size().  Add debug assertions.
        
        btr_index_rec_validate(): Correct a comment about prefix indexes.
        
        rec_get_converted_size_new(), rec_convert_dtuple_to_rec_new(): Add
        debug assertions and comments.
        
        dict_col_type_assert_equal(): New debug function.
      storage/innobase/data/data0data.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1490:
        Add #include <ctype.h>.  Apparently, this header is no longer included by
        the common headers.  This may be related to WL#2936
        (pluggable storage engines).
      storage/innobase/data/data0type.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1513:
        Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
        This makes it possible to see which expression was false by looking at the
        error message.
        
        Approved by:	Marko
      storage/innobase/dict/dict0crea.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1423:
        Fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS when we run out
        of UNDO slots in the rollback segment. This is a partial fix since the
        MySQL error code requested to properly report the error condition back
        to the client has not yet materialized. Currently we have #ifdef'd the
        error code translation in ha_innodb.cc. This will have to be changed
        as and when MySQl add the new requested code or an equivalent code
        that we can then use.
        
        Given the above, currently we will get the old behaviour, not the "fixed"
        and intended behaviour.
      storage/innobase/dict/dict0dict.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1490:
        Add #include <ctype.h>.  Apparently, this header is no longer included by
        the common headers.  This may be related to WL#2936
        (pluggable storage engines).
        
        
        Revision r1513:
        Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
        This makes it possible to see which expression was false by looking at the
        error message.
        
        Approved by:	Marko
        
        
        Revision r1528:
        Define an auxiliary macro UT_BITS_IN_BYTES() and use it where possible.
        
        
        Revision r1529:
        Revert r799, which was supposed to prevent similar cases as Bug#21638.
        In reality, the patch breaks the handling of prefix indexes of
        variable-length columns in ROW_FORMAT=COMPACT.  Reverting the patch
        is only a partial fix of Bug#28138.
        
        
        Revision r1535:
        Document that DICT_MAX_INDEX_COL_LEN must not be changed.
      storage/innobase/fsp/fsp0fsp.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1513:
        Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
        This makes it possible to see which expression was false by looking at the
        error message.
        
        Approved by:	Marko
        
        
        Revision r1528:
        Define an auxiliary macro UT_BITS_IN_BYTES() and use it where possible.
      storage/innobase/ibuf/ibuf0ibuf.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1420:
        Output to the error log information about the limitations of
        UNIV_IBUF_DEBUG.
        
        innobase_start_or_create_for_mysql(): Note that crash recovery is broken
        when UNIV_IBUF_DEBUG is defined.
        
        ibuf_counts[]: Make this a two-dimensional array.  No need to allocate
        anything from the heap.  Eliminate ibuf_counts_inited, as the array
        will be zero-filled by the runtime environment.
        
        ibuf_count_check(): New function, to print out an explanation before
        assertion failure.
        
        
        Revision r1528:
        Define an auxiliary macro UT_BITS_IN_BYTES() and use it where possible.
        
        
        Revision r1546:
        When buffering an insert to a prefix index of a variable-length column,
        do not incorrectly mark the column as fixed-length.  (Bug#28138)
        
        ibuf_entry_build(): Instead of prefix_len, pass fixed_len to
        dtype_new_store_for_order_and_null_size().  Add debug assertions.
        
        btr_index_rec_validate(): Correct a comment about prefix indexes.
        
        rec_get_converted_size_new(), rec_convert_dtuple_to_rec_new(): Add
        debug assertions and comments.
        
        dict_col_type_assert_equal(): New debug function.
      storage/innobase/include/db0err.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1423:
        Fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS when we run out
        of UNDO slots in the rollback segment. This is a partial fix since the
        MySQL error code requested to properly report the error condition back
        to the client has not yet materialized. Currently we have #ifdef'd the
        error code translation in ha_innodb.cc. This will have to be changed
        as and when MySQl add the new requested code or an equivalent code
        that we can then use.
        
        Given the above, currently we will get the old behaviour, not the "fixed"
        and intended behaviour.
      storage/innobase/include/dict0dict.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1546:
        When buffering an insert to a prefix index of a variable-length column,
        do not incorrectly mark the column as fixed-length.  (Bug#28138)
        
        ibuf_entry_build(): Instead of prefix_len, pass fixed_len to
        dtype_new_store_for_order_and_null_size().  Add debug assertions.
        
        btr_index_rec_validate(): Correct a comment about prefix indexes.
        
        rec_get_converted_size_new(), rec_convert_dtuple_to_rec_new(): Add
        debug assertions and comments.
        
        dict_col_type_assert_equal(): New debug function.
      storage/innobase/include/dict0dict.ic:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1546:
        When buffering an insert to a prefix index of a variable-length column,
        do not incorrectly mark the column as fixed-length.  (Bug#28138)
        
        ibuf_entry_build(): Instead of prefix_len, pass fixed_len to
        dtype_new_store_for_order_and_null_size().  Add debug assertions.
        
        btr_index_rec_validate(): Correct a comment about prefix indexes.
        
        rec_get_converted_size_new(), rec_convert_dtuple_to_rec_new(): Add
        debug assertions and comments.
        
        dict_col_type_assert_equal(): New debug function.
      storage/innobase/include/dict0mem.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1535:
        Document that DICT_MAX_INDEX_COL_LEN must not be changed.
        
        
        Revision r1536:
        Change the comment to a more appropriate one. Discussed with Heikki on IM.
        
        Approved by:	Heikki
      storage/innobase/include/ha_prototypes.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1482:
        Fix Bug#25078 by always letting the replication thread on the slave
        server to enter InnoDB. This can be made further customizable by the
        user if we introduce a new config parameter. This will wait until
        config parameters can be easily added.
        
        Approved by:	Marko
        
        
        Revision r1501:
        Fix Bug#21293: Consider transactions that had edited non-transactional
        tables heavier than ones that had not. This helps killing the "right"
        transaction in case of a deadlock.
        
        Approved by:	Heikki
      storage/innobase/include/os0file.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1431:
        Fix Bug#9709 by retrying (forever) if ERROR_SHARING_VIOLATION or
        ERROR_LOCK_VIOLATION is encountered during file operation.
        This is caused by backup software, so InnoDB should retry while the backup
        software is done with the file.
        
        Approved by:	Heikki
      storage/innobase/include/rem0rec.ic:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1569:
        Fix some in:/out: comments.
        
        Approved by:	Marko
      storage/innobase/include/row0mysql.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1422:
        Fix for Bug#21101 - returns wrong error message when table column
        defs exceed the max row size.
        
        The fix returns a more appropriate error message. Add a test case to
        innodb.test and expected output to innodb.result.
      storage/innobase/include/trx0trx.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1462:
        Fix typo in comment.
        
        
        Revision r1486:
        Improve the comment for trx_struct::undo_no.
        
        Suggested by:	Heikki
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1497:
        Add the number of locks acquired by a transaction to its weight when
        choosing the lightest transaction to kill when a deadlock occurs.
        This fixes Bug#21293 partially.
        
        Approved by:	Heikki
        
        
        
        Revision r1501:
        Fix Bug#21293: Consider transactions that had edited non-transactional
        tables heavier than ones that had not. This helps killing the "right"
        transaction in case of a deadlock.
        
        Approved by:	Heikki
      storage/innobase/include/trx0undo.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1423:
        Fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS when we run out
        of UNDO slots in the rollback segment. This is a partial fix since the
        MySQL error code requested to properly report the error condition back
        to the client has not yet materialized. Currently we have #ifdef'd the
        error code translation in ha_innodb.cc. This will have to be changed
        as and when MySQl add the new requested code or an equivalent code
        that we can then use.
        
        Given the above, currently we will get the old behaviour, not the "fixed"
        and intended behaviour.
      storage/innobase/include/ut0ut.h:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1528:
        Define an auxiliary macro UT_BITS_IN_BYTES() and use it where possible.
      storage/innobase/lock/lock0lock.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1457:
        Fix Bug#22819, remove assertion. (http://bugs.mysql.com/bug.php?id=22819)
        
        
        Revision r1497:
        Add the number of locks acquired by a transaction to its weight when
        choosing the lightest transaction to kill when a deadlock occurs.
        This fixes Bug#21293 partially.
        
        Approved by:	Heikki
        
        
        
        Revision r1513:
        Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
        This makes it possible to see which expression was false by looking at the
        error message.
        
        Approved by:	Marko
      storage/innobase/log/log0log.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1521:
        Forward port r1520 from branches/5.0
        
        Patch to allow monitor threads to stop before proceeding with normal shutdown. 
        Also have a separate time counter for tablespace monitor.
        
        reviewed by: Heikki
        
        
        Revision r1524:
        Undo bad space formatting introduced in earlier commit r1521
        
        spotted by: Marko
        
        
        Revision r1533:
        logs_empty_and_mark_files_at_shutdown(): Remove trailing whitespace that
        was added in r1521.
      storage/innobase/os/os0file.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1431:
        Fix Bug#9709 by retrying (forever) if ERROR_SHARING_VIOLATION or
        ERROR_LOCK_VIOLATION is encountered during file operation.
        This is caused by backup software, so InnoDB should retry while the backup
        software is done with the file.
        
        Approved by:	Heikki
      storage/innobase/rem/rem0rec.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1528:
        Define an auxiliary macro UT_BITS_IN_BYTES() and use it where possible.
        
        
        Revision r1531:
        rec_get_converted_size_new(): Simplify and move a debug assertion.
        
        
        Revision r1546:
        When buffering an insert to a prefix index of a variable-length column,
        do not incorrectly mark the column as fixed-length.  (Bug#28138)
        
        ibuf_entry_build(): Instead of prefix_len, pass fixed_len to
        dtype_new_store_for_order_and_null_size().  Add debug assertions.
        
        btr_index_rec_validate(): Correct a comment about prefix indexes.
        
        rec_get_converted_size_new(), rec_convert_dtuple_to_rec_new(): Add
        debug assertions and comments.
        
        dict_col_type_assert_equal(): New debug function.
        
        
        Revision r1555:
        rec_get_converted_size_new(): The total size of the infimum and supremum
        records in ROW_FORMAT=COMPACT is REC_N_NEW_EXTRA_BYTES + 8.  The
        REC_N_NEW_EXTRA_BYTES was accidentally omitted in r1546.  This function
        should never be called on those records, though.
        
        
        Revision r1569:
        Fix some in:/out: comments.
        
        Approved by:	Marko
      storage/innobase/row/row0ins.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1485:
        Minor cleanup.
        
        row_ins_check_foreign_constraint(), row_ins_scan_sec_index_for_duplicate():
        Make use of the predicates page_rec_is_infimum() and page_rec_is_supremum().
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1513:
        Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
        This makes it possible to see which expression was false by looking at the
        error message.
        
        Approved by:	Marko
      storage/innobase/row/row0mysql.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1422:
        Fix for Bug#21101 - returns wrong error message when table column
        defs exceed the max row size.
        
        The fix returns a more appropriate error message. Add a test case to
        innodb.test and expected output to innodb.result.
        
        
        Revision r1423:
        Fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS when we run out
        of UNDO slots in the rollback segment. This is a partial fix since the
        MySQL error code requested to properly report the error condition back
        to the client has not yet materialized. Currently we have #ifdef'd the
        error code translation in ha_innodb.cc. This will have to be changed
        as and when MySQl add the new requested code or an equivalent code
        that we can then use.
        
        Given the above, currently we will get the old behaviour, not the "fixed"
        and intended behaviour.
      storage/innobase/row/row0row.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1513:
        Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
        This makes it possible to see which expression was false by looking at the
        error message.
        
        Approved by:	Marko
        
        
        Revision r1529:
        Revert r799, which was supposed to prevent similar cases as Bug#21638.
        In reality, the patch breaks the handling of prefix indexes of
        variable-length columns in ROW_FORMAT=COMPACT.  Reverting the patch
        is only a partial fix of Bug#28138.
      storage/innobase/row/row0sel.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1452:
        Fix phantom reads (http://bugs.mysql.com/27197) following Heikki's
        patch in the bug followup.
        
        Approved by:	Heikki
        
        
        
        Revision r1455:
        Reindent with tabs instead of spaces.
        
        Spotted by:	Marko
      storage/innobase/srv/srv0srv.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1424:
        Bug#20352. Added variable srv_insert_buffer_batch_size. We want to make
        this variable settable. Since the pluggable engine interface currently
        doesn't provide a usable mechanism, we will add the latter functionality
        once it's available.
        
        
        Revision r1426:
        Fix code indentation from r1424.
        
        
        Revision r1459:
        Fix typo in the comment.
        
        
        Revision r1482:
        Fix Bug#25078 by always letting the replication thread on the slave
        server to enter InnoDB. This can be made further customizable by the
        user if we introduce a new config parameter. This will wait until
        config parameters can be easily added.
        
        Approved by:	Marko
        
        
        Revision r1487:
        Fix typo in comment.
        
        Spotted by:	Marko
        
        
        Revision r1521:
        Forward port r1520 from branches/5.0
        
        Patch to allow monitor threads to stop before proceeding with normal shutdown. 
        Also have a separate time counter for tablespace monitor.
        
        reviewed by: Heikki
        
        
        Revision r1532:
        srv_lock_timeout_and_monitor_thread(): Correct the indentation that was
        broken in r1521.
        
        
        Revision r1553:
        Fix Bug#20090 as suggested in the bug followup by Heikki.
        
        Approved by:	Heikki
      storage/innobase/srv/srv0start.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1420:
        Output to the error log information about the limitations of
        UNIV_IBUF_DEBUG.
        
        innobase_start_or_create_for_mysql(): Note that crash recovery is broken
        when UNIV_IBUF_DEBUG is defined.
        
        ibuf_counts[]: Make this a two-dimensional array.  No need to allocate
        anything from the heap.  Eliminate ibuf_counts_inited, as the array
        will be zero-filled by the runtime environment.
        
        ibuf_count_check(): New function, to print out an explanation before
        assertion failure.
      storage/innobase/sync/sync0arr.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1513:
        Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
        This makes it possible to see which expression was false by looking at the
        error message.
        
        Approved by:	Marko
      storage/innobase/trx/trx0rec.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1423:
        Fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS when we run out
        of UNDO slots in the rollback segment. This is a partial fix since the
        MySQL error code requested to properly report the error condition back
        to the client has not yet materialized. Currently we have #ifdef'd the
        error code translation in ha_innodb.cc. This will have to be changed
        as and when MySQl add the new requested code or an equivalent code
        that we can then use.
        
        Given the above, currently we will get the old behaviour, not the "fixed"
        and intended behaviour.
      storage/innobase/trx/trx0trx.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1491:
        Fix typo in comment.
        
        
        Revision r1497:
        Add the number of locks acquired by a transaction to its weight when
        choosing the lightest transaction to kill when a deadlock occurs.
        This fixes Bug#21293 partially.
        
        Approved by:	Heikki
        
        
        
        Revision r1501:
        Fix Bug#21293: Consider transactions that had edited non-transactional
        tables heavier than ones that had not. This helps killing the "right"
        transaction in case of a deadlock.
        
        Approved by:	Heikki
        
        
        Revision r1522:
        trx0trx.c: Add missing #include "ha_prototypes.h".
      storage/innobase/trx/trx0undo.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1423:
        Fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS when we run out
        of UNDO slots in the rollback segment. This is a partial fix since the
        MySQL error code requested to properly report the error condition back
        to the client has not yet materialized. Currently we have #ifdef'd the
        error code translation in ha_innodb.cc. This will have to be changed
        as and when MySQl add the new requested code or an equivalent code
        that we can then use.
        
        Given the above, currently we will get the old behaviour, not the "fixed"
        and intended behaviour.
      storage/innobase/ut/ut0ut.c:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1490:
        Add #include <ctype.h>.  Apparently, this header is no longer included by
        the common headers.  This may be related to WL#2936
        (pluggable storage engines).
      mysql-test/r/innodb_trx_weight.result:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1498:
        Add a test about the behavior introduced in r1497.
        
        
        Revision r1501:
        Fix Bug#21293: Consider transactions that had edited non-transactional
        tables heavier than ones that had not. This helps killing the "right"
        transaction in case of a deadlock.
        
        Approved by:	Heikki
      mysql-test/include/innodb_trx_weight.inc:
        Apply the following innodb-5.1-* snapshots:  ss1489, ss1496, ss1550, ss1569.
        
        Revision r1501:
        Fix Bug#21293: Consider transactions that had edited non-transactional
        tables heavier than ones that had not. This helps killing the "right"
        transaction in case of a deadlock.
        
        Approved by:	Heikki
        
        
        Revision r1556:
        mysql-test/innodb_trx_weight.inc: Add username root to the "connect" statement.
        The Unix user running mysql-test-run usually does not have any privileges
        on the MySQL test database.
      mysql-test/t/innodb_trx_weight.test:
        Fixes after merging InnoDB snapshots.
        
        Revision r1498:
        Add a test about the behavior introduced in r1497.
        
        
        Revision r1501:
        Fix Bug#21293: Consider transactions that had edited non-transactional
        tables heavier than ones that had not. This helps killing the "right"
        transaction in case of a deadlock.
        
        Approved by:	Heikki
      sql/sql_class.cc:
        Fixes after merging InnoDB snapshots.
      storage/innobase/Makefile.am:
        Fixes after merging InnoDB snapshots.
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
      storage/innobase/handler/ha_innodb.cc:
        Fixes after merging InnoDB snapshots.
        
        Revision r1422:
        Fix for Bug#21101 - returns wrong error message when table column
        defs exceed the max row size.
        
        The fix returns a more appropriate error message. Add a test case to
        innodb.test and expected output to innodb.result.
        
        
        Revision r1423:
        Fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS when we run out
        of UNDO slots in the rollback segment. This is a partial fix since the
        MySQL error code requested to properly report the error condition back
        to the client has not yet materialized. Currently we have #ifdef'd the
        error code translation in ha_innodb.cc. This will have to be changed
        as and when MySQl add the new requested code or an equivalent code
        that we can then use.
        
        Given the above, currently we will get the old behaviour, not the "fixed"
        and intended behaviour.
        
        
        
        Revision r1425:
        Fixed a missing function decoration that slipped into r1422.
        
        
        Revision r1434:
        Fix typo.
        
        
        Revision r1442:
        Potential fix for Bug#25645:
        
        "Move innobase_release_stat_resources(trx) outside the 'if' in
        ha_innobase::external_lock(). That would add more safety that whatever
        MySQL does at a query end, there would be no risk of a hang on the btr
        search latch."
        
        Also call innobase_release_temporary_latches() in the beginning of
        ha_innobase::close().
        
        Approved by:	Heikki
        
        
        Revision r1453:
        Bugfix: only call innobase_release_temporary_latches() in case of current_thd
        is not NULL, otherwise we get NULL pointer dereferencing.
        
        Approved by:	Heikki
        
        
        Revision r1474:
        Fix typo in comment: the exact prototype is in
        include/data0type.ic, not in data/data0type.ic
        
        
        
        Revision r1482:
        Fix Bug#25078 by always letting the replication thread on the slave
        server to enter InnoDB. This can be made further customizable by the
        user if we introduce a new config parameter. This will wait until
        config parameters can be easily added.
        
        Approved by:	Marko
        
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
        
        
        Revision r1489:
        thd_to_trx(), check_trx_exists(): Remove the handlerton parameter.  It is a
        singleton object whose address is stored into innodb_hton_ptr.
        
        
        Revision r1492:
        Convert innobase_buffer_pool_size and innobase_log_file_size types from
        longlong to long long because MYSQL_SYSVAR_LONGLONG marco expects long long
        type.
        
        Also change
        ((ulint)innobase_buffer_pool_size) / 1024
        to
        (ulint)(innobase_buffer_pool_size / 1024)
        and remove comment which is no longer true.
        
        Provided that innobase_buffer_pool_size is always 64bits these statements
        are equivalent if ulint is 64 bit (well it will screw up if
        innobase_buffer_pool_size is negative). And if ulint is 32 bit the later
        variant gives a little more chance that the value will fit.
        
        Approved by:	Heikki
        
        
        Revision r1493:
        ha_innodb.cc: Remove the declarations of some global InnoDB variables
        whose name starts with srv_.  These variables are declared in the header
        files that are covered by #include directives in ha_innodb.cc.
        
        
        Revision r1495:
        Introduce the function reset_template() for resetting some fields of
        row_prebuilt_t; currently prebuilt->read_just_key and
        prebuilt->keep_other_fields_on_keyread.
        
        
        Revision r1496:
        ha_innobase::extra(): Replace references to prebuilt->trx with
        thd_to_trx(ha_thd()), in order to avoid potential memory corruption.
        
        
        Revision r1501:
        Fix Bug#21293: Consider transactions that had edited non-transactional
        tables heavier than ones that had not. This helps killing the "right"
        transaction in case of a deadlock.
        
        Approved by:	Heikki
        
        
        Revision r1513:
        Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
        This makes it possible to see which expression was false by looking at the
        error message.
        
        Approved by:	Marko
        
        
        Revision r1527:
        Cleanup in ha_innodb.cc:
        
        thd_is_replication_slave_thread(), thd_has_edited_nontrans_tables():
        Remove blank line between the function comment and the function
        definition.  There should be exactly one line between the return
        type and the function comment, and this line should be one of
        '', 'static', 'UNIV_INLINE', and 'extern "C"'.
        
        
        Revision r1538:
        Do not return error in ha_innobase::info if srv_force_recovery >= 4. This is to allow for 
        normal processing of the query by MySQL instead of generating an error.
        
        Reviewed by: Heikki
        
        
        
        Revision r1551:
        ha_innobase::innobase_read_and_init_auto_inc(): Remember and restore
        prebuilt->sql_stat_start.  In an ALTER TABLE statement in the innodb_gis
        test, an ut_ad() assertion failed, because no IX lock had been acquired
        on the table, because prebuilt->sql_stat_start was inadvertently reset
        to FALSE, by this function.  This function was called via
        ha_innobase::info() and mysql_prepare_alter_table().
      storage/innobase/plug.in:
        Fixes after merging InnoDB snapshots.
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
      storage/innobase/handler/ha_innodb.h:
        Fixes after merging InnoDB snapshots.
        
        Revision r1488:
        Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
        and adapt some things.
        
        Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
        <mysql/plugin.h>.  Until the function is declared there, you can
        uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
        
        Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
        storage/innobase/Makefile.am and storage/innobase/plug.in.
        
        plug.in: Declare InnoDB as a dynamic plugin.
        
        ha_innodb.h: Remove the declarations of many global variables.  The variables
        are no longer directly referenced outside of storage/innobase.
        
        trx_t: Add the field trx->duplicates.
        
        trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
        
        innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
      b3f18eb9
  36. 02 Jul, 2007 1 commit
  37. 19 Jun, 2007 1 commit
    • unknown's avatar
      Bug#28769 Test case "innodb" fails with --skip-log-bin · 496e35ad
      unknown authored
       - Move binlog related tests to binlog_innodb.test
       - Remove "source include/have_log_bin.inc" from innodb.test
      
      
      mysql-test/r/innodb.result:
        Move binlog related tests to binlog_innodb.test
      mysql-test/t/innodb.test:
        Move binlog related tests to binlog_innodb.test
      mysql-test/r/binlog_innodb.result:
        Move binlog related tests to binlog_innodb.test
      mysql-test/t/binlog_innodb.test:
        Move binlog related tests to binlog_innodb.test
      496e35ad