1. 06 May, 2008 4 commits
    • sunny's avatar
      10740acf
    • calvin's avatar
      branches/zip: · 61a33895
      calvin authored
      Implement the system tablespace tagging described on the wiki:
      https://svn.innodb.com/innobase/InnoDB_version_and_feature_compatibility
      
      A brief description of the changes:
      
      * The file format tag will be saved in the trx system page, starting at
        (UNIV_PAGE_SIZE - 16) for 8 bytes.
      * The configuration parameter innodb_file_format_check is introduced.
        This variable can be set to on/off and any of the supported file
        formats in the configuration file, but can only be set to any of
        the supported file formats during runtime. The default is on.
      * During table create/open, check the current file format against
        the max in file_format_max. If the current file format is newer,
        update file_format_max and tag the system tablespace with the
        newer one in a normal mtr.
      * During startup, write the tag to the error log and check it against
        DICT_TF_FORMAT_MAX. Refuse to start with error, if
        -- DICT_TF_FORMAT_MAX < the tag, and
        -- innodb_file_format_check is ON
        Print out a warning , if
        -- DICT_TF_FORMAT_MAX < the tag, but
        -- innodb_file_format_check is off
      * The system tablespace tag is re-settable using:
        set innodb_file_format_check = <file_format>
      
      Approved by:	Sunny
      61a33895
    • vasil's avatar
      branches/zip: · 719cc1c2
      vasil authored
       
      Add InnoDB version in these places:
       
      * In INFORMATION_SCHEMA.PLUGINS.PLUGIN_VERSION, only 1.2 out of 1.2.3
        because MySQL supports only one dot there
       
      * At startup:
        "080501 12:28:06 InnoDB Plugin 1.0.1 started; log sequence number 46509"
      
      * In a server variable innodb_version;
        mysql> select @@innodb_version;
        +------------------+
        | @@innodb_version |
        +------------------+
        | 1.0.1            |
        +------------------+
      
      Approved by:	Sunny
      719cc1c2
    • vasil's avatar
      branches/zip: · 72bf760b
      vasil authored
       
      Allow InnoDB I_S plugins to be installed when InnoDB storage engine is
      not installed but show empty tables when SELECTing from them in this
      case. Set srv_was_started to FALSE at the end of
      innobase_shutdown_for_mysql() so the I_S plugins can detect if InnoDB is
      uninstalled.
       
      This is needed to workaround the MySQL
      Bug#36399 Double free bug when INFORMATION_SCHEMA plugin init function fails
      and is more flexible as it allows I_S plugins to be installed before the
      InnoDB plugin and detects if the latter is uninstalled after this.
      
      Approved by:	Heikki
      72bf760b
  2. 05 May, 2008 1 commit
  3. 04 May, 2008 2 commits
  4. 30 Apr, 2008 6 commits
    • vasil's avatar
      branches/zip: Merge 2423:2437 from branches/5.1: · 0260a98c
      vasil authored
        ------------------------------------------------------------------------
        r2429 | vasil | 2008-04-30 11:19:06 +0300 (Wed, 30 Apr 2008) | 10 lines
        
        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
        
        ------------------------------------------------------------------------
        r2430 | vasil | 2008-04-30 11:48:35 +0300 (Wed, 30 Apr 2008) | 8 lines
        
        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
        
        ------------------------------------------------------------------------
        r2431 | vasil | 2008-04-30 11:54:49 +0300 (Wed, 30 Apr 2008) | 4 lines
        
        branches/5.1:
        
        Fix r2430, it should be CFLAGS="$CFLAGS ..." not CFLAGS="..."
        
        ------------------------------------------------------------------------
        r2432 | vasil | 2008-04-30 11:58:38 +0300 (Wed, 30 Apr 2008) | 4 lines
        
        branches/5.1:
        
        Non-functional change: use tabs for indentation in plug.in.
        
        ------------------------------------------------------------------------
        r2433 | vasil | 2008-04-30 12:02:35 +0300 (Wed, 30 Apr 2008) | 5 lines
        
        branches/5.1:
        
        Add vim modeline to hint it that plug.in is a config file
        so it can be colorized.
        
        ------------------------------------------------------------------------
        r2434 | vasil | 2008-04-30 18:45:44 +0300 (Wed, 30 Apr 2008) | 17 lines
        
        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.
        
        
        ------------------------------------------------------------------------
        r2435 | vasil | 2008-04-30 19:04:36 +0300 (Wed, 30 Apr 2008) | 10 lines
        
        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
        
        
        ------------------------------------------------------------------------
        r2436 | vasil | 2008-04-30 19:15:46 +0300 (Wed, 30 Apr 2008) | 7 lines
        
        branches/5.1:
        
        Non-functional white space change in Makefile.am:
        Use tabs for indentation and be consistent about spaces around the
        equal sign.
        
        
        ------------------------------------------------------------------------
        r2437 | vasil | 2008-04-30 20:36:11 +0300 (Wed, 30 Apr 2008) | 8 lines
        
        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
        
        
        ------------------------------------------------------------------------
      0260a98c
    • vasil's avatar
      Rename install_dynamic.sql to install_innodb_plugins.sql · 19ebecd6
      vasil authored
      Suggested by:	Ken
      19ebecd6
    • vasil's avatar
      Add SQL script to install InnoDB if it is built as a dynamic plugin · fa5f770f
      vasil authored
      Suggested by:	Ken
      fa5f770f
    • vasil's avatar
    • vasil's avatar
      Add ChangeLog. · b7aa8ed8
      vasil authored
      Formatted in compliance with many GNU tools, roughly described in
      http://www.gnu.org/software/guile/changelogs/guile-changelogs_toc.html
      
      b7aa8ed8
    • vasil's avatar
      branches/zip: Merge 2384:2423 from branches/5.1: · 22cd31a6
      vasil authored
        ------------------------------------------------------------------------
        r2386 | vasil | 2008-03-27 07:45:02 +0200 (Thu, 27 Mar 2008) | 22 lines
        
        branches/5.1:
        
        Merge change from MySQL (this fixes the failing innodb test):
        
        ChangeSet@1.1810.3601.4, 2008-02-07 02:33:21+04:00, gshchepa@host.loc +9 -0
          Fixed bug#30059.
          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.
        
        
        ------------------------------------------------------------------------
        r2387 | vasil | 2008-03-27 08:49:05 +0200 (Thu, 27 Mar 2008) | 8 lines
        
        branches/5.1:
        
        Check whether *trx->mysql_query_str is != NULL in addition to
        trx->mysql_query_str. This adds more safety.
        
        This may or may not fix Bug#35226 RBR event crashes slave.
        
        
        ------------------------------------------------------------------------
        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
        
        ------------------------------------------------------------------------
        r2419 | vasil | 2008-04-23 19:08:06 +0300 (Wed, 23 Apr 2008) | 9 lines
        
        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
        
        
        ------------------------------------------------------------------------
        r2420 | calvin | 2008-04-24 15:25:30 +0300 (Thu, 24 Apr 2008) | 4 lines
        
        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.
        ------------------------------------------------------------------------
        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().
        
        ------------------------------------------------------------------------
        r2422 | vasil | 2008-04-24 16:00:30 +0300 (Thu, 24 Apr 2008) | 11 lines
        
        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
        
        ------------------------------------------------------------------------
      22cd31a6
  5. 29 Apr, 2008 1 commit
    • vasil's avatar
      branches/zip: · c45dedd4
      vasil authored
       
      Fix Mantis issue#34 https://svn.innodb.com/mantis/view.php?id=34
      "I_S plugins should refuse to load if the storage engine plugin is not loaded"
      and MySQL Bug#36310 http://bugs.mysql.com/36310
      "InnoDB plugin crash"
      
      * Make srv_was_started public
      * Set srv_was_started at the end of innobase_start_or_create_for_mysql()
        so it is not set to TRUE if innodb encounters some startup error
      * Refuse to start any of the I_S plugins if srv_was_started is not TRUE
      
      Approved by:	Heikki
      c45dedd4
  6. 23 Apr, 2008 1 commit
    • vasil's avatar
      branches/zip: · 4316056a
      vasil authored
      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
      4316056a
  7. 12 Apr, 2008 1 commit
  8. 11 Apr, 2008 3 commits
  9. 10 Apr, 2008 2 commits
    • calvin's avatar
      branches/zip: Implementation of using animal names for innodb_file_format, · ff014f21
      calvin authored
      described in Mantis#30. Specifically:
      
      - Allow innodb_file_format to take string arguments
      - Make innodb_file_format system variable a string instead of a number
      - Implement the callback functions
      - Update warning messages
      
      Three new functions are implemented:
      
      file_format_name_lookup(): Validate the file format name and return
      its corresponding id.
      
      innodb_file_format_check(): Check if it is a valid file format. This
      function is registered as a callback with MySQL.
      
      innodb_file_format_update(): Update the global variable using the
      "saved" value. This functions is registered as a callback with MySQL.
      ff014f21
    • sunny's avatar
      branches/zip: Handle rename of variables. If the statically linked in engine · 3c2af842
      sunny authored
      has a config variable that has since been renamed, we use a mapping table
      to check for matches.
      3c2af842
  10. 09 Apr, 2008 3 commits
  11. 07 Apr, 2008 2 commits
  12. 04 Apr, 2008 5 commits
  13. 28 Mar, 2008 6 commits
    • marko's avatar
      branches/zip: i_s_cmpmem_fill_low(): Do not reset all buddy allocator · 3b102cf2
      marko authored
      statistics, but only the cumulated count and duration of relocation
      operations.
      3b102cf2
    • marko's avatar
      branches/zip: Minor change to the formatting of integer fields · d7585cea
      marko authored
      in INFORMATION_SCHEMA.INNODB_CMP*.
      
      i_s_cmp_fields_info, i_s_cmpmem_fields_info: Define the field lengths
      as MY_INT32_NUM_DECIMAL_DIGITS or MY_INT64_NUM_DECIMAL_DIGITS.
      
      i_s_cmpmem_fields_info: Define "relocation_ops" as MYSQL_TYPE_LONGLONG.
      d7585cea
    • marko's avatar
      branches/zip: Rename the compression-related INFORMATION_SCHEMA tables · 6d0b76d8
      marko authored
      and columns as suggested by Ken.
      
      INNODB_COMPRESSION, INNODB_COMPRESSION_RESET:
      Rename to INNODB_CMP, INNODB_CMP_RESET, with the following columns:
      page_size
      compress_ops
      compress_ops_ok
      compress_time
      uncompress_ops
      uncompress_time
      
      INNODB_COMPRESSION_BUDDY, INNODB_COMPRESSION_BUDDY_RESET:
      Rename to INNODB_CMPMEM, INNODB_CMPMEM_RESET, with the following columns:
      page_size
      pages_used
      pages_free
      relocation_ops
      relocation_time
      6d0b76d8
    • marko's avatar
      branches/zip: Implement the INFORMATION_SCHEMA tables · caa6afcf
      marko authored
      INNODB_COMPRESSION_BUDDY and INNODB_COMPRESSION_BUDDY_RESET.
      
      buf_buddy_stat_struct, buf_buddy_stat_t, buf_buddy_stat[]:
      Statistics of the buddy system grouped by block size.
      
      i_s_innodb_compression_buddy, i_s_innodb_compression_buddy_reset:
      New INFORMATION_SCHEMA plugins.
      
      i_s_compression_buddy_fields_info[]: Define the fields:
      size, used, free, relocated, relocated_sec.
      
      i_s_compression_buddy_fill_low(), i_s_compression_buddy_fill(),
      i_s_compression_buddy_reset_fill(): Fill the fields.
      
      i_s_compression_buddy_init(), i_s_compression_buddy_reset_init():
      Initialize the tables.
      caa6afcf
    • marko's avatar
      branches/zip: Correct minor mistakes made in r2390. · 9cf9b9c3
      marko authored
      i_s_compression_fill_low(): Do not acquire or release the buffer pool
      mutex.  The page_zip_stat[] is not protected by any mutex.
      
      i_s_innodb_compression, i_s_innodb_compression_reset: Change the
      description to say "compression" instead of "compressed buffer pool".
      9cf9b9c3
    • marko's avatar
      branches/zip: Rename the INFORMATION_SCHEMA tables · bd8d5d3e
      marko authored
      INNODB_ZIP and INNODB_ZIP_RESET to
      INNODB_COMPRESSION and INNODB_COMPRESSION_RESET,
      and remove the statistics of the buddy system.
      
      This change was discussed with Ken.  It makes the tables shorter
      and easier to understand.  The removed data will be represented in
      the tables INNODB_COMPRESSION_BUDDY and INNODB_COMPRESSION_BUDDY_RESET
      that will be added later.
      
      i_s_innodb_zip, i_s_innodb_zip_reset, i_s_zip_fields_info[],
      i_s_zip_fill_low(), i_s_zip_fill(), i_s_zip_reset_fill(),
      i_s_zip_init(), i_s_zip_reset_init(): Replace "zip" with "compression".
      
      i_s_compression_fields_info[]: Remove "used", "free",
      "relocated", "relocated_usec".  In "compressed_usec" and "decompressed_usec",
      replace microseconds with seconds ("usec" with "sec").
      
      page_zip_decompress(): Correct a typo in the function comment.
      
      PAGE_ZIP_SSIZE_BITS, PAGE_ZIP_NUM_SSIZE: New constants.
      
      page_zip_stat_t, page_zip_stat: Statistics of the compression, grouped
      by page size.
      
      page_zip_simple_validate(): Assert that page_zip->ssize is reasonable.
      bd8d5d3e
  14. 27 Mar, 2008 1 commit
    • vasil's avatar
      branches/zip: · f8eba2fa
      vasil authored
      Add the prototype of check_global_access() if MySQL version is less than
      5.1.24 to make zip compile with 5.1.23. This was removed when MySQL added
      the prototype in their code in 5.1.24 but we still need zip to compile with
      older versions.
      f8eba2fa
  15. 26 Mar, 2008 1 commit
  16. 19 Mar, 2008 1 commit
    • marko's avatar
      branches/zip: Remove innodb.patch. · ab7b62e7
      marko authored
      This patch tries to enable resizeable buffer pool by polling the configuration
      parameter for the buffer pool size, which is not a good solution.  The
      right way could be to have an update function callback of a settable
      MySQL variable to send an event to the master thread.
      
      It could also make sense to expose the buffer pool chunks to the user.
      The first chunk would never be freed.  Other chunks than the first one
      would only be used for allocating page frames (uncompressed or compressed)
      and block descriptors of of compressed pages (buf_page_t).  That is, other
      users of the buffer pool, such as mem_heap_create_block() and the lock
      table, would be restricted to the first chunk.  This would allow other
      chunks to be freed by simply flushing any dirty blocks that they contain.
      
      It might also be worthwhile to create multiple chunks initially, based on
      the initial buffer pool size and the HugeTLB page size.  In that way, the
      buffer pool could be reduced from the initial configuration at runtime.
      ab7b62e7