An error occurred fetching the project authors.
  1. 12 Sep, 2009 1 commit
    • 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
  2. 31 Aug, 2009 1 commit
    • vasil's avatar
      branches/zip: · 66771d73
      vasil authored
      Fix Bug#46718 InnoDB plugin incompatible with gcc 4.1 (at least: on PPC): "Undefined symbol"
      
      by implementing our own check in plug.in instead of using the result from
      the check from MySQL because it is insufficient.
      
      Approved by:	Marko (rb://154)
      66771d73
  3. 06 Aug, 2009 1 commit
  4. 30 Jun, 2009 2 commits
  5. 08 Jun, 2009 1 commit
    • inaam's avatar
      branches/zip · b6670603
      inaam authored
      Non functional change:
      
      Added legal notices acknowledging percona contribution to the multiple
      IO helper threads patch i.e.: r5262
      b6670603
  6. 05 Jun, 2009 1 commit
    • vasil's avatar
      branches/zip: · 5d3b8052
      vasil authored
      Enable functionality to have multiple background io helper threads.
      This patch is based on percona contributions.
      
      More details about this patch will be written at:
      https://svn.innodb.com/innobase/MultipleBackgroundThreads
      
      The patch essentially does the following:
      
      expose following knobs:
      innodb_read_io_threads = [1 - 64] default 1
      innodb_write_io_threads = [1 - 64] default 1
      
      deprecate innodb_file_io_threads (this parameter was relevant only on windows)
      
      Internally it allows multiple segments for read and write IO request arrays
      where one thread works on one segement.
      
      Submitted by:	Inaam (rb://124)
      Approved by:	Heikki (rb://124)
      5d3b8052
  7. 26 May, 2009 1 commit
  8. 25 May, 2009 2 commits
    • marko's avatar
      branches/zip: Add @file comments, and convert decorative · 11ff89d9
      marko authored
      /*********************************
      comments to Doxygen /** style like this:
      /*****************************//**
      
      This conversion was performed by the following command:
      
      perl -i -e 'while(<ARGV>){if (m|^/\*{30}\**$|) {
      s|\*{4}$|//**| if ++$com>1; $_ .= "\@file $ARGV\n" if $com==2}
      print; if(eof){$.=0;undef $com}}' */*[ch] include/univ.i
      11ff89d9
    • marko's avatar
      branches/zip: Convert the function comments to Doxygen format. · e49dee37
      marko authored
      This patch was created by running the following commands:
      
      for i in */*[ch]; do doxygenify.pl $i; done
      perl -i -pe 's#\*{3} \*/$#****/#' */*[ch]
      
      where doxygenify.pl is
      https://svn.innodb.com/svn/misc/trunk/tools/doxygenify.pl r510
      
      Verified the consistency as follows:
      
      (0) not too many /* in: */ or /* out: */ comments left in the code:
      grep -l '/\*\s*\(in\|out\)[,:/]' */*[ch]
      
      (1) no difference when ignoring blank lines, after stripping all
      C90-style /* comments */, including multi-line ones, before and after
      applying this patch:
      
      perl -i -e 'undef $/;while(<ARGV>){s#/\*(.*?)\*/##gs;print}' */*[ch]
      diff -I'^\s*$' --exclude .svn -ru TREE1 TREE2
      
      (2) after stripping @return comments and !<, generated a diff and omitted
      the hunks where /* out: */ function return comments were removed:
      
      perl -i -e'undef $/;while(<ARGV>){s#!<##g;s#\n\@return\t.*?\*/# \*/#gs;print}'\
       */*[ch]
      svn diff|
      perl -e 'undef $/;$_=<>;s#\n-\s*/\* out[:,]([^\n]*?)(\n-[^\n]*?)*\*/##gs;print'
      
      Some unintended changes were left.  These will be removed in a
      subsequent patch.
      e49dee37
  9. 20 May, 2009 2 commits
  10. 16 Apr, 2009 1 commit
  11. 15 Apr, 2009 1 commit
    • calvin's avatar
      branches/zip: Use the Windows Interlocked functions for atomic memory · 6fd7b63c
      calvin authored
      access
      
      Mapping the atomic operations to Windows Interlocked functions:
      
      os_compare_and_swap_* to InterlockedCompareExchange(64)
      os_atomic_increment_* to InterlockedExchangeAdd(64)
      os_atomic_test_and_set_byte to InterlockedExchange
      
      In this patch, the legacy code under UNIV_CAN_USE_X86_ASSEMBLER is
      removed all together, and add HAVE_WINDOWS_ATOMICS and
      INNODB_RW_LOCKS_USE_ATOMICS to CMakeLists.txt
      
      This is to address mantis issue#194.
      
      rb://113
      
      Approved by: Marko
      6fd7b63c
  12. 07 Apr, 2009 1 commit
    • inaam's avatar
      branches/zip · 99b5d9e2
      inaam authored
      Enable atomics on solaris (using the libc functions as defined in
      atomic.h) if GCC atomic builtins are not present.
      
      There still remains some work to be done (by Vasil?). This patch
      makes changes to plug.in to check pthread_t size and presence of
      atomic functions when running on solaris. The same has to become
      a part of the generated Makefile.in when we bake our source.
      
      Reviewed by: Heikki rb://106
      99b5d9e2
  13. 23 Mar, 2009 1 commit
  14. 20 Mar, 2009 1 commit
  15. 05 Mar, 2009 2 commits
    • vasil's avatar
      branches/zip: · 584f4cea
      vasil authored
      Fix typo made in r4353.
      584f4cea
    • vasil's avatar
      branches/zip: · 16010bad
      vasil authored
      As suggested by Ken, print a message that says that the Google SMP patch
      (GCC atomics) is disabled if it is. Also extend the message when the patch
      is partially enabled to make it clear that it is partially enabled.
      16010bad
  16. 25 Feb, 2009 1 commit
    • marko's avatar
      branches/zip: Correct the initialization of the memory subsystem once · 93ec81bb
      marko authored
      again, to finally put Issue #181 to rest.
      
      Revert some parts of r4274.  It is best not to call ut_malloc() before
      srv_general_init().
      
      mem_init(): Do not call ut_mem_init().
      
      srv_general_init(): Initialize the memory subsystem in two phases:
      first ut_mem_init(), then mem_init().  This is because os_sync_init()
      and sync_init() depend on ut_mem_init() and mem_init() depends on
      os_sync_init() or sync_init().
      
      srv_parse_data_file_paths_and_sizes(),
      srv_parse_log_group_home_dirs(): Remove the output parameters.  Assign
      to the global variables directly.  Allocate memory with malloc()
      instead of ut_malloc(), because these functions will be called before
      srv_general_init().
      
      srv_free_paths_and_sizes(): New function, for cleaning up after
      srv_parse_data_file_paths_and_sizes() and
      srv_parse_log_group_home_dirs().
      
      rb://92 approved by Sunny Bains
      93ec81bb
  17. 24 Feb, 2009 1 commit
  18. 20 Feb, 2009 1 commit
  19. 17 Feb, 2009 1 commit
    • vasil's avatar
      branches/zip: · c6232c06
      vasil authored
      To the files touched by the Google patch from c4144 (excluding
      include/os0sync.ic because later we removed Google code from that file):
      
      * Remove the Google license
      * Remove old Innobase copyright lines
      * Add a reference to the Google license and to the GPLv2 license at the top,
      as recommended by the lawyers at Oracle Legal.
      c6232c06
  20. 09 Feb, 2009 1 commit
    • inaam's avatar
      branches/zip rb://30 · a1bb700f
      inaam authored
      This patch changes the innodb mutexes and rw_locks implementation.
      On supported platforms it uses GCC builtin atomics. These changes
      are based on the patch sent by Mark Callaghan of Google under BSD
      license. More technical discussion can be found at rb://30
      
      Approved by: Heikki
      a1bb700f
  21. 02 Feb, 2009 1 commit
  22. 02 Jan, 2009 1 commit
  23. 09 Aug, 2008 1 commit
  24. 18 Jun, 2008 1 commit
    • inaam's avatar
      branches/zip: internal mantis issue#49 · 6fe27b5d
      inaam authored
      This is to fix an unintended side effect of file_format_check changes.
      We were reading the trx system page (TRX_SYS_PAGE_NO) before starting
      recovery and that resulted in redo logs not being applied to the page.
      The fix is to force a reread by calling buf_pool_invalidate().
      This, however, made necessary that any writes to page are deferred to
      until after the redo log application.
      
      Reviewed by: Sunny
      6fe27b5d
  25. 17 Jun, 2008 1 commit
  26. 06 Jun, 2008 1 commit
    • vasil's avatar
      branches/zip: Merge 2437:2485 from branches/5.1: · b21c94dc
      vasil authored
      (r2478 was skipped for the obvious reason)
      
        ------------------------------------------------------------------------
        r2464 | vasil | 2008-05-19 17:59:42 +0300 (Mon, 19 May 2008) | 9 lines
        
        branches/5.1:
        
        Fix Bug#36600 SHOW STATUS takes a lot of CPU in buf_get_latched_pages_number
        
        by removing the Innodb_buffer_pool_pages_latched variable from
        SHOW STATUS output in non-UNIV_DEBUG compilation.
         
        Approved by:	Heikki
        
        ------------------------------------------------------------------------
        r2466 | calvin | 2008-05-20 01:37:14 +0300 (Tue, 20 May 2008) | 12 lines
        
        branches/5.1:
        
        Fix Bug#11894 innodb_file_per_table crashes w/ Windows .sym symbolic
        link hack
        
        The crash was due to un-handled error 3 (path not found). In the case
        of file per table, change the call to os_file_handle_error_no_exit()
        from os_file_handle_error(). Also, checks for full path pattern during
        table create (Windows only), which is used in symbolic link and temp
        table creation.
        
        Approved by:	Heikki
        ------------------------------------------------------------------------
        r2478 | sunny | 2008-05-23 08:29:08 +0300 (Fri, 23 May 2008) | 3 lines
        
        branches/5.1: Fix for bug# 36793. This is a back port from branches/zip. This
        code has been tested on a big-endian machine too.
        
        ------------------------------------------------------------------------
        r2480 | vasil | 2008-05-27 11:40:07 +0300 (Tue, 27 May 2008) | 11 lines
        
        branches/5.1:
        
        Fix Bug#36819 ut_usectime does not handle errors from gettimeofday
        
        by retrying gettimeofday() several times if it fails in ut_usectime().
        If it fails on all calls then return error to the caller to be handled
        at higher level.
        
        Update the variable innodb_row_lock_time_max in SHOW STATUS output only
        if ut_usectime() was successful.
        
        ------------------------------------------------------------------------
        r2482 | sunny | 2008-05-28 12:18:35 +0300 (Wed, 28 May 2008) | 5 lines
        
        branches/5.1: Fix for Bug#35602, "Failed to read auto-increment value from
        storage engine". The test for REPLACE was an error of ommission since it's
        classified as a simple INSERT. For REPLACE statements we don't acquire
        the special AUTOINC lock for AUTOINC_NEW_STYLE_LOCKING with this fix.
        
        ------------------------------------------------------------------------
        r2485 | vasil | 2008-05-28 16:01:14 +0300 (Wed, 28 May 2008) | 9 lines
        
        branches/5.1:
        
        Fix Bug#36149 Read buffer overflow in srv0start.c found during "make test"
        
        Use strncmp(3) instead of memcmp(3) to avoid reading past end of the string
        if it is empty (*str == '\0'). This bug is _not_ a buffer overflow.
        
        Discussed with:	Sunny (via IM)
        
        ------------------------------------------------------------------------
      b21c94dc
  27. 06 May, 2008 3 commits
    • calvin's avatar
      branches/zip: · fc02f76d
      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
      fc02f76d
    • vasil's avatar
      branches/zip: · 3bad6e25
      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
      3bad6e25
    • vasil's avatar
      branches/zip: · 2daf8121
      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
      2daf8121
  28. 29 Apr, 2008 1 commit
    • vasil's avatar
      branches/zip: · 03a3d076
      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
      03a3d076
  29. 17 Mar, 2008 1 commit
  30. 10 Mar, 2008 1 commit
    • marko's avatar
      branches/zip: Implement the configuration parameter and settable global · 86361e03
      marko authored
      variable innodb_file_format.  Implement file format version stamping of
      *.ibd files and SYS_TABLES.TYPE.
      
      This change breaks introduces an incompatible change for for
      compressed tables.  We can do this, as we have not released yet.
      
      innodb-zip.test: Add tests for stricter KEY_BLOCK_SIZE and ROW_FORMAT
      checks.
      
      DICT_TF_COMPRESSED_MASK, DICT_TF_COMPRESSED_SHIFT: Replace with
      DICT_TF_ZSSIZE_MASK, DICT_TF_ZSSIZE_SHIFT.
      
      DICT_TF_FORMAT_MASK, DICT_TF_FORMAT_SHIFT, DICT_TF_FORMAT_51,
      DICT_TF_FORMAT_ZIP: File format version, stored in table->flags,
      in the .ibd file header, and in SYS_TABLES.TYPE.
      
      dict_create_sys_tables_tuple(): Write the table flags to SYS_TABLES.TYPE
      if the format is at least DICT_TF_FORMAT_ZIP.  For old formats
      (DICT_TF_FORMAT_51), write DICT_TABLE_ORDINARY as the table type.
      
      DB_TABLE_ZIP_NO_IBD: Remove the error code.  The error handling is done
      in ha_innodb.cc; as a failsafe measure, dict_build_table_def_step() will
      silently clear the compression and format flags instead of returning this
      error.
      
      dict_mem_table_create(): Assert that no extra bits are set in the flags.
      
      dict_sys_tables_get_zip_size(): Rename to dict_sys_tables_get_flags().
      Check all flag bits, and return ULINT_UNDEFINED if the combination is
      unsupported.
      
      dict_boot(): Document the SYS_TABLES columns N_COLS and TYPE.
      
      dict_table_get_format(), dict_table_set_format(),
      dict_table_flags_to_zip_size(): New accessors to table->flags.
      
      dtuple_convert_big_rec(): Introduce the auxiliary variables
      local_len, local_prefix_len.  Store a 768-byte prefix locally
      if the file format is less than DICT_TF_FORMAT_ZIP.
      
      dtuple_convert_back_big_rec(): Restore the columns.
      
      srv_file_format: New variable: innodb_file_format.
      
      fil_create_new_single_table_tablespace(): Replace the parameter zip_size
      with table->flags.
      
      fil_open_single_table_tablespace(): Replace the parameter zip_size_in_k
      with table->flags.  Check the flags.
      
      fil_space_struct, fil_space_create(), fil_op_write_log():
      Replace zip_size with flags.
      
      fil_node_open_file(): Note a TODO item for InnoDB Hot Backup.
      Check that the tablespace flags match.
      
      fil_space_get_zip_size(): Rename to fil_space_get_flags().  Add a
      wrapper for fil_space_get_zip_size().
      
      fsp_header_get_flags(): New function.
      
      fsp_header_init_fields(): Replace zip_size with flags.
      
      FSP_SPACE_FLAGS: New name for the tablespace flags.  This field used
      to be called FSP_PAGE_ZIP_SIZE, or FSP_LOWEST_NO_WRITE.  It has always
      been written as 0 in MySQL/InnoDB versions 4.1 to 5.1.
      
      MLOG_ZIP_FILE_CREATE: Rename to MLOG_FILE_CREATE2.  Add a 32-bit
      parameter for the tablespace flags.
      
      ha_innobase::create(): Check the table attributes ROW_FORMAT and
      KEY_BLOCK_SIZE.  Issue errors if they are inappropriate, or warnings
      if the inherited attributes (in ALTER TABLE) will be ignored.
      
      PAGE_ZIP_MIN_SIZE_SHIFT: New constant: the 2-logarithm of PAGE_ZIP_MIN_SIZE.
      86361e03
  31. 07 Mar, 2008 1 commit
    • marko's avatar
      branches/zip: Make innodb_file_per_table a settable global variable. · c853494e
      marko authored
      There is one consideration: fil_init() chooses the tablespace hash size
      based on the initial value of srv_file_per_table.  However, this is nothing
      new: InnoDB could be started with innodb_file_per_table=0 even though
      *.ibd files exist.
      
      srv_file_per_table: Declare as my_bool instead of ibool, because
      MYSQL_SYSVAR_BOOL() expects a pointer to my_bool.  Document the
      variable also in srv0srv.h.
      
      innobase_start_or_create_for_mysql(): Note why it is OK to temporarily
      clear srv_file_per_table.
      
      innobase_file_per_table: Remove.
      c853494e
  32. 05 Mar, 2008 1 commit
  33. 06 Feb, 2008 1 commit
    • marko's avatar
      branches/zip: Introduce UNIV_INTERN, a linkage specifier for InnoDB-global · 2c2b06ad
      marko authored
      symbols.  Use it for all definitions of non-static variables and functions.
      
      lexyy.c, make_flex.sh: Declare yylex as UNIV_INTERN, not static.  It is
      referenced from pars0grm.c.
      
      Actually, according to
      	nm .libs/ha_innodb.so|grep -w '[ABCE-TVXYZ]'
      the following symbols are still global:
      
      * The vtable for class ha_innodb
      * pars0grm.c: The function yyparse() and the variables yychar, yylval, yynerrs
      
      The required changes to the Bison-generated file pars0grm.c will be addressed
      in a separate commit, which will add a script similar to make_flex.sh.
      
      The class ha_innodb is renamed from class ha_innobase by a #define.  Thus,
      there will be no clash with the builtin InnoDB.  However, there will be some
      overhead for invoking virtual methods of class ha_innodb.  Ideas for making
      the vtable hidden are welcome.  -fvisibility=hidden is not available in GCC 3.
      2c2b06ad
  34. 16 Jan, 2008 1 commit