1. 22 Sep, 2009 2 commits
    • calvin's avatar
      branches/zip: adjust CMake file to work with old versions of MySQL · 03b61f87
      calvin authored
      Tested with MySQL 5.1.38 and 5.1.30.
      03b61f87
    • calvin's avatar
      branches/zip: adjust Windows loading method for 5.1.38 · a340e71b
      calvin authored
      Starting at 5.1.38, MySQL server exports symbols needed
      for dynamic plugin on Windows. There is no need for
      Windows specific loading. Also, the CMake files are
      simplified in 5.1.38.
      
      When WITH_INNOBASE_STORAGE_ENGINE is specified during
      configuration (win\configure.js), InnoDB is built as
      a static library. Otherwise, a dynamic InnoDB will be
      built (ha_innodb.dll).
      
      CMakeLists.txt requires minor changes in order to work
      with MySQL prior to 5.1.38. The changes will be in a
      separate patch.
      
      This patch addresses Mantis issue#286.
      a340e71b
  2. 21 Sep, 2009 2 commits
  3. 19 Sep, 2009 1 commit
    • calvin's avatar
      branches/zip: Merge revisions 2584:2956 from branches/6.0, · 5af4815f
      calvin authored
      except c2932.
      
      Bug#37232 and bug#31183 were fixed in the 6.0 branch only.
      They should be fixed in the plugin too, specially MySQL 6.0
      is discontinued at this point.
      
          ------------------------------------------------------------------------
          r2604 | inaam | 2008-08-21 09:37:06 -0500 (Thu, 21 Aug 2008) | 8 lines
      
          branches/6.0     bug#37232
      
          Relax locking behaviour for REPLACE INTO t SELECT ... FROM t1.
          Now SELECT on t1 is performed as a consistent read when the isolation
          level is set to READ COMMITTED.
      
          Reviewed by: Heikki
          ------------------------------------------------------------------------
          r2605 | inaam | 2008-08-21 09:59:33 -0500 (Thu, 21 Aug 2008) | 7 lines
      
          branches/6.0
      
          Added a comment to clarify why distinct calls to read MySQL binary
          log file name and log position do not entail any race condition.
      
          Suggested by: Heikki
          ------------------------------------------------------------------------
          r2956 | inaam | 2008-11-04 04:47:30 -0600 (Tue, 04 Nov 2008) | 11 lines
      
          branches/6.0  bug#31183
      
          If the system tablespace runs out of space because 'autoextend' is
          not specified with innodb_data_file_path there was no error message
          printed to the error log. The client would get 'table full' error.
          This patch prints an appropriate error message to the error log.
      
          rb://43
      
          Approved by: Marko
          ------------------------------------------------------------------------
      5af4815f
  4. 18 Sep, 2009 3 commits
  5. 17 Sep, 2009 1 commit
  6. 16 Sep, 2009 5 commits
    • vasil's avatar
      branches/zip: · eebb00ba
      vasil authored
      Add ChangeLog entries for r5916.
      eebb00ba
    • vasil's avatar
      branches/zip: · 354e4c9a
      vasil authored
      Whitespace cleanup in the ChangeLog.
      354e4c9a
    • marko's avatar
    • marko's avatar
      branches/zip: Merge revisions 5622:5912 from branches/5.1, except r5700 · 6f14c558
      marko authored
      (changes to CMakeLists.txt)
      
        ------------------------------------------------------------------------
        r5622 | vasil | 2009-08-03 15:27:00 +0300 (Mon, 03 Aug 2009) | 20 lines
        Changed paths:
           M /branches/5.1/Makefile.am
      
        branches/5.1:
      
        Merge a change from MySQL:
      
          ------------------------------------------------------------
          revno: 2988
          committer: Satya B <satya.bn@sun.com>
          branch nick: mysql-5.1-bugteam
          timestamp: Wed 2009-07-01 11:06:05 +0530
          message:
            Fix build failure after applying Innodb snapshot 5.1-ss5282
      
            After applying Innodb snapshot 5.1-ss5282, build was broken
            because of missing header file.
      
            Adding the header file to Makefile.am after informing the
            innodb developers.
          modified:
            storage/innobase/Makefile.am
        ------------------------------------------------------------------------
        r5740 | jyang | 2009-09-03 06:33:47 +0300 (Thu, 03 Sep 2009) | 5 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           M /branches/5.1/include/db0err.h
           A /branches/5.1/mysql-test/innodb_bug46000.result
           A /branches/5.1/mysql-test/innodb_bug46000.test
      
        branches/5.1: Disallow creating index with the name of
        "GEN_CLUST_INDEX" which is reserved for the default system
        primary index. (Bug #46000) rb://149 approved by Sunny Bains.
        ------------------------------------------------------------------------
        r5741 | jyang | 2009-09-03 07:16:01 +0300 (Thu, 03 Sep 2009) | 5 lines
        Changed paths:
           M /branches/5.1/dict/dict0dict.c
           M /branches/5.1/handler/ha_innodb.cc
           A /branches/5.1/mysql-test/innodb_bug44369.result
           A /branches/5.1/mysql-test/innodb_bug44369.test
           M /branches/5.1/row/row0mysql.c
      
        branches/5.1: Block creating table with column name conflicting
        with Innodb reserved key words. (Bug #44369) rb://151 approved
        by Sunny Bains.
        ------------------------------------------------------------------------
        r5757 | jyang | 2009-09-04 04:26:13 +0300 (Fri, 04 Sep 2009) | 3 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           M /branches/5.1/include/db0err.h
           D /branches/5.1/mysql-test/innodb_bug46000.result
           D /branches/5.1/mysql-test/innodb_bug46000.test
      
        branches/5.1: Revert change in 5740. Making the fix in a subsequent
        check in.
        ------------------------------------------------------------------------
        r5760 | jyang | 2009-09-04 07:07:34 +0300 (Fri, 04 Sep 2009) | 3 lines
        Changed paths:
           M /branches/5.1/dict/dict0dict.c
           M /branches/5.1/handler/ha_innodb.cc
           D /branches/5.1/mysql-test/innodb_bug44369.result
           D /branches/5.1/mysql-test/innodb_bug44369.test
           M /branches/5.1/row/row0mysql.c
      
        branches/5.1: This is to revert change 5741. A return status for
        create_table_def() needs to be fixed.
        ------------------------------------------------------------------------
        r5797 | calvin | 2009-09-09 18:26:29 +0300 (Wed, 09 Sep 2009) | 3 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
      
        branches/5.1: merge change from 5.1.38
      
        HA_ERR_TOO_MANY_CONCURRENT_TRXS is added in 5.1.38.
        ------------------------------------------------------------------------
        r5799 | calvin | 2009-09-09 20:47:31 +0300 (Wed, 09 Sep 2009) | 10 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
      
        branches/5.1: fix bug#46256
      
        Allow tables to be dropped even if the collation is not found,
        but issue a warning.
      
        Could not find an easy way to add mysql-test since it requires
        changes to charsets and restarting the server. Tests were
        executed manually.
      
        Approved by: Heikki (on IM)
        ------------------------------------------------------------------------
        r5805 | vasil | 2009-09-10 08:41:48 +0300 (Thu, 10 Sep 2009) | 7 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
      
        branches/5.1:
      
        Fix a compilation warning caused by c5799:
      
        handler/ha_innodb.cc: In function 'void innobase_get_cset_width(ulint, ulint*, ulint*)':
        handler/ha_innodb.cc:830: warning: format '%d' expects type 'int', but argument 2 has type 'ulint'
        ------------------------------------------------------------------------
        r5834 | jyang | 2009-09-11 00:43:05 +0300 (Fri, 11 Sep 2009) | 5 lines
        Changed paths:
           M /branches/5.1/dict/dict0dict.c
           M /branches/5.1/handler/ha_innodb.cc
           A /branches/5.1/mysql-test/innodb_bug44369.result
           A /branches/5.1/mysql-test/innodb_bug44369.test
           M /branches/5.1/row/row0mysql.c
      
        branches/5.1: Block creating table with column name conflicting
        with Innodb reserved key words. (Bug #44369) rb://151 approved
        by Sunny Bains.
        ------------------------------------------------------------------------
        r5895 | jyang | 2009-09-15 03:39:21 +0300 (Tue, 15 Sep 2009) | 5 lines
        Changed paths:
           M /branches/5.1/handler/ha_innodb.cc
           A /branches/5.1/mysql-test/innodb_bug46000.result
           A /branches/5.1/mysql-test/innodb_bug46000.test
      
        branches/5.1: Disallow creating index with the name of
        "GEN_CLUST_INDEX" which is reserved for the default system
        primary index. (Bug #46000) rb://149 approved by Marko Makela.
        ------------------------------------------------------------------------
      6f14c558
    • marko's avatar
      branches/zip: Introduce UNIV_LOG_LSN_DEBUG and MLOG_LSN for redo log · d6faf6c4
      marko authored
      diagnostics.  This was written in order to better track down
      Issue #313 in InnoDB Hot Backup.
      
      MLOG_LSN: A new redo log entry type, for recording the current log
      sequence number (LSN).  This will be checked in an assertion in
      recv_parse_log_rec().
      
      rb://161, discussed with Sunny and Vasil.
      d6faf6c4
  7. 15 Sep, 2009 3 commits
  8. 14 Sep, 2009 3 commits
    • inaam's avatar
      branches/zip rb://159 · 1490f879
      inaam authored
      In case of pages that are not made young the counter is incremented
      only when the page in question is 'old'. In case of pages that are
      made young the counter is incremented in case of all pages. For apple
      to apple comparison this patch changes the 'young-making' counter to
      consider only 'old' blocks.
      
      Approved by: Marko
      1490f879
    • vasil's avatar
      branches/zip: · 164ba87e
      vasil authored
      Add missing return statement in the test program that could have
      caused a warning.
      164ba87e
    • vasil's avatar
      branches/zip: · 78b505b4
      vasil authored
      Back-merge c5880 and c5881 from branches/embedded-1.0:
      
        ------------------------------------------------------------------------
        r5880 | vasil | 2009-09-12 17:28:44 +0300 (Sat, 12 Sep 2009) | 18 lines
        Changed paths:
           M /branches/embedded-1.0/configure.in
           M /branches/embedded-1.0/include/os0sync.h
           M /branches/embedded-1.0/srv/srv0start.c
        
        branches/embedded-1.0:
        
        Clean up and simplify the code that surrounds the atomic ops:
        
        * Simplify the code that prints what atomics are used:
        Instead of repeating the same conditions on which each atomics are used
        use just one printf that prints a variable defined by the code which
        chooses what atomics to use.
        
        * In os0sync.h pick up each atomic variant only if it has been selected
        by autoconf (based on IB_ATOMIC_MODE_* macros). Define the startup message
        to be printed.
        
        * In configure.in: check what user has chosen and if he has chosen
        something that is not available, emit an error. If nothing has been chosen
        explicitly by the user, auto select an option according to the described
        logic in configure.in.
        
        ------------------------------------------------------------------------
        r5881 | vasil | 2009-09-12 20:08:27 +0300 (Sat, 12 Sep 2009) | 4 lines
        Changed paths:
           M /branches/embedded-1.0/configure.in
        
        branches/embedded-1.0:
        
        Fix syntax error in test program.
        
        ------------------------------------------------------------------------
      78b505b4
  9. 12 Sep, 2009 11 commits
    • vasil's avatar
      branches/zip: · f2bb363b
      vasil authored
      Remove unnecessary macro.
      f2bb363b
    • vasil's avatar
      branches/zip: · 729cb510
      vasil authored
      Explicitly include os0sync.h to the places where HAVE_ATOMIC_BUILTINS and
      INNODB_RW_LOCKS_USE_ATOMICS are used to avoid potential problems.
      729cb510
    • vasil's avatar
      branches/zip: · a2b17a33
      vasil authored
      Rename HAVE_SOLARIS_ATOMICS to HAVE_IB_SOLARIS_ATOMICS and 
      IB_HAVE_PAUSE_INSTRUCTION to HAVE_IB_PAUSE_INSTRUCTION so they
      all follow the same HAVE_IB_* convention.
      a2b17a33
    • vasil's avatar
      branches/zip: · 7bb8d19c
      vasil authored
      Define HAVE_ATOMIC_BUILTINS and INNODB_RW_LOCKS_USE_ATOMICS in os0sync.h
      instead of in univ.i. The code expects os_*() macros to be present if
      HAVE_ATOMIC_BUILTINS and INNODB_RW_LOCKS_USE_ATOMICS are defined. So define
      them next to defining the os_*() macros.
      7bb8d19c
    • vasil's avatar
      branches/zip: · ff368dec
      vasil authored
      Include ut0auxconf.h only if none of the macros it would define is defined.
      The check when to include this header was outdated from the time when there
      was only one macro involved.
      
      Move the atomics checks that are in univ.i outside of
      #if windows ... #else ... #endif
      This simplifies the code and removes some duplicates like defining
      HAVE_ATOMIC_BUILTINS if HAVE_WINDOWS_ATOMICS is defined in both branches.
      
      Do not define the same macro HAVE_ATOMIC_PTHREAD_T for different events.
      Instead define HAVE_IB_ATOMIC_PTHREAD_T_GCC and
      HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS.
      ff368dec
    • vasil's avatar
      branches/zip: · 69bf228c
      vasil authored
      Move the check whether to include ut0auxconf.h before everything because
      we are now even checking for GCC atomics, we relied on MySQL to define
      this macro before.
      69bf228c
    • vasil's avatar
      branches/zip: · 96c1bc32
      vasil authored
      Update comment to reflect reality.
      96c1bc32
    • vasil's avatar
      branches/zip: · 9bb26d5d
      vasil authored
      Add the check for GCC atomics to ut0auxconf* (copied from plug.in) because
      we no longer rely on MySQL's HAVE_GCC_ATOMIC_BUILTINS.
      9bb26d5d
    • vasil's avatar
      branches/zip: · 43f8d26e
      vasil authored
      Simplify the compile time checks by splittig them into 5 independent checks:
      
      * Whether GCC atomics are available
      * Whether pthread_t can be used by GCC atomics
      * Whether Solaris libc atomics are available
      * Whether pthread_t can be used by Solaris libs atomics
      * Checking the size of pthread_t
      43f8d26e
    • vasil's avatar
      branches/zip: · 2f416fa2
      vasil authored
      Include string.h which is needed for memset().
      2f416fa2
    • vasil's avatar
      branches/zip: · ae766b35
      vasil authored
      Check that pthread_t can indeed be passed to Solaris atomic functions, instead
      of assuming that it can be passed if 0 can be assigned to it. It could be that:
      * 0 can be assigned, but pthread_t cannot be passed and
      * 0 cannot be assigned but pthread_t can be passed
      
      Better to check what we are interested in, not something else and make
      assumptions.
      ae766b35
  10. 11 Sep, 2009 1 commit
    • vasil's avatar
      branches/zip: · cc789757
      vasil authored
      Fix the indentation of the closing bracket.
      cc789757
  11. 10 Sep, 2009 4 commits
    • marko's avatar
      branches/zip: Roll back recovered dictionary transactions before · 7fd517a7
      marko authored
      dropping incomplete indexes (Issue #337).
      
      trx_rollback_or_clean_recovered(ibool all): New function, split from
      trx_rollback_or_clean_all_recovered().  all==FALSE will only roll back
      dictionary transactions.
      
      recv_recovery_from_checkpoint_finish(): Call
      trx_rollback_or_clean_recovered(FALSE) before
      row_merge_drop_temp_indexes().
      
      rb://158 approved by Sunny Bains
      7fd517a7
    • marko's avatar
      branches/zip: Reduce mutex contention that was introduced when · 3bd1a9fb
      marko authored
      addressing Bug #45015 (Issue #316), in r5703.
      
      buf_page_set_accessed_make_young(): New auxiliary function, called by
      buf_page_get_zip(), buf_page_get_gen(),
      buf_page_optimistic_get_func(). Call ut_time_ms() outside of
      buf_pool_mutex. Use cached access_time.
      
      buf_page_set_accessed(): Add the parameter time_ms, so that
      ut_time_ms() need not be called while holding buf_pool_mutex.
      
      buf_page_optimistic_get_func(), buf_page_get_known_nowait(): Read
      buf_page_t::access_time without holding buf_pool_mutex. This should be
      OK, because the field is only used for heuristic purposes.
      
      buf_page_peek_if_too_old(): If buf_pool->freed_page_clock == 0, return
      FALSE, so that we will not waste time moving blocks in the LRU list in
      the warm-up phase or when the workload fits in the buffer pool.
      
      rb://156 approved by Sunny Bains
      3bd1a9fb
    • marko's avatar
    • marko's avatar
  12. 09 Sep, 2009 4 commits
    • calvin's avatar
      branches/zip: · c8cb3ab8
      calvin authored
      HA_ERR_TOO_MANY_CONCURRENT_TRXS is added in 5.1.38.
      But the plugin should still work with previous versions
      of MySQL.
      c8cb3ab8
    • vasil's avatar
      branches/zip: · 549e7644
      vasil authored
      Fix a bug in manipulating the variable innodb_old_blocks_pct:
      
      for any value assigned it got that value -1, except for 75. When
      assigned 75, it got 75.
      
        mysql> set global innodb_old_blocks_pct=15;
        Query OK, 0 rows affected (0.00 sec)
        
        mysql> show variables like 'innodb_old_blocks_pct';
        +-----------------------+-------+
        | Variable_name         | Value |
        +-----------------------+-------+
        | innodb_old_blocks_pct | 14    | 
        +-----------------------+-------+
        1 row in set (0.00 sec)
        
        mysql> set global innodb_old_blocks_pct=75;
        Query OK, 0 rows affected (0.00 sec)
        
        mysql> show variables like 'innodb_old_blocks_pct';
        +-----------------------+-------+
        | Variable_name         | Value |
        +-----------------------+-------+
        | innodb_old_blocks_pct | 75    | 
        +-----------------------+-------+
      
      After the fix it gets exactly what was assigned.
      
      Approved by:	Marko (via IM)
      549e7644
    • marko's avatar
    • marko's avatar
      branches/zip: buf_page_peek_if_too_old(): Silence a compiler warning · 2b859296
      marko authored
      that was introduced in r5779 on 32-bit systems.
      2b859296