Commit graph

361 commits

Author SHA1 Message Date
marko
08cf3b39a1 branches/zip: Merge revisions 6206:6350 from branches/5.1,
except r6347, r6349, r6350 which were committed separately
to both branches, and r6310, which was backported from zip to 5.1.

  ------------------------------------------------------------------------
  r6206 | jyang | 2009-11-20 09:38:43 +0200 (Fri, 20 Nov 2009) | 3 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc

  branches/5.1: Non-functional change, fix formatting.
  ------------------------------------------------------------------------
  r6230 | sunny | 2009-11-24 23:52:43 +0200 (Tue, 24 Nov 2009) | 3 lines
  Changed paths:
     M /branches/5.1/mysql-test/innodb-autoinc.result

  branches/5.1: Fix autoinc failing test results.
  (this should be skipped when merging 5.1 into zip)
  ------------------------------------------------------------------------
  r6231 | sunny | 2009-11-25 10:26:27 +0200 (Wed, 25 Nov 2009) | 7 lines
  Changed paths:
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test
     M /branches/5.1/row/row0sel.c

  branches/5.1: Fix BUG#49032 - auto_increment field does not initialize to last value in InnoDB Storage Engine.

  We use the appropriate function to read the column value for non-integer
  autoinc column types, namely float and double.

  rb://208. Approved by Marko.
  ------------------------------------------------------------------------
  r6232 | sunny | 2009-11-25 10:27:39 +0200 (Wed, 25 Nov 2009) | 2 lines
  Changed paths:
     M /branches/5.1/row/row0sel.c

  branches/5.1: This is an interim fix, fix white space errors.
  ------------------------------------------------------------------------
  r6233 | sunny | 2009-11-25 10:28:35 +0200 (Wed, 25 Nov 2009) | 2 lines
  Changed paths:
     M /branches/5.1/include/mach0data.h
     M /branches/5.1/include/mach0data.ic
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test
     M /branches/5.1/row/row0sel.c

  branches/5.1: This is an interim fix, fix tests and make read float/double arg const.
  ------------------------------------------------------------------------
  r6234 | sunny | 2009-11-25 10:29:03 +0200 (Wed, 25 Nov 2009) | 2 lines
  Changed paths:
     M /branches/5.1/row/row0sel.c

  branches/5.1: This is an interim fix, fix whitepsace issues.
  ------------------------------------------------------------------------
  r6235 | sunny | 2009-11-26 01:14:42 +0200 (Thu, 26 Nov 2009) | 9 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test

  branches/5.1: Fix Bug#47720 - REPLACE INTO Autoincrement column with negative values.

  This bug is similiar to the negative autoinc filter patch from earlier,
  with the additional handling of filtering out the negative column values
  set explicitly by the user.

  rb://184
  Approved by Heikki.
  ------------------------------------------------------------------------
  r6242 | vasil | 2009-11-27 22:07:12 +0200 (Fri, 27 Nov 2009) | 4 lines
  Changed paths:
     M /branches/5.1/export.sh

  branches/5.1:

  Minor changes to support plugin snapshots.
  ------------------------------------------------------------------------
  r6306 | calvin | 2009-12-14 15:12:46 +0200 (Mon, 14 Dec 2009) | 5 lines
  Changed paths:
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test

  branches/5.1: fix bug#49267: innodb-autoinc.test fails on windows
  because of different case mode

  There is no change to the InnoDB code, only to fix test case by
  changing "T1" to "t1".
  ------------------------------------------------------------------------
  r6324 | jyang | 2009-12-17 06:54:24 +0200 (Thu, 17 Dec 2009) | 8 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/include/lock0lock.h
     M /branches/5.1/include/srv0srv.h
     M /branches/5.1/lock/lock0lock.c
     M /branches/5.1/log/log0log.c
     M /branches/5.1/srv/srv0srv.c
     M /branches/5.1/srv/srv0start.c

  branches/5.1: Fix bug #47814 - Diagnostics are frequently not
  printed after a long lock wait in InnoDB. Separate out the
  lock wait timeout check thread from monitor information
  printing thread.

  rb://200 Approved by Marko.
  ------------------------------------------------------------------------
2009-12-22 10:33:01 +00:00
marko
b117b57a58 branches/zip: Remove an obsolete declaration of LOCK_thread_count. 2009-12-22 09:11:18 +00:00
marko
a3bf31d85b branches/zip: Merge a change from MySQL:
------------------------------------------------------------
revno: 3236
committer: Satya B <satya.bn@sun.com>
branch nick: mysql-5.1-bugteam
timestamp: Tue 2009-12-01 17:48:57 +0530
message:
  merge to mysql-5.1-bugteam
    ------------------------------------------------------------
    revno: 3234.1.1
    committer: Gleb Shchepa <gshchepa@mysql.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2009-12-01 14:38:40 +0400
    message:
      Bug #38883 (reopened): thd_security_context is not thread safe, crashes?

      manual merge 5.0-->5.1, updating InnoDB plugin.
    ------------------------------------------------------------
    revno: 1810.3968.13
    committer: Gleb Shchepa <gshchepa@mysql.com>
    branch nick: mysql-5.0-bugteam
    timestamp: Tue 2009-12-01 14:24:44 +0400
    message:
      Bug #38883 (reopened): thd_security_context is not thread safe, crashes?

      The bug 38816 changed the lock that protects THD::query from
      LOCK_thread_count to LOCK_thd_data, but didn't update the associated
      InnoDB functions.

      1. The innobase_mysql_prepare_print_arbitrary_thd and the
      innobase_mysql_end_print_arbitrary_thd InnoDB functions have been
      removed, since now we have a per-thread mutex: now we don't need to wrap
      several inter-thread access tries to THD::query with a single global
      LOCK_thread_count lock, so we can simplify the code.

      2. The innobase_mysql_print_thd function has been modified to lock
      LOCK_thd_data in direct way.
2009-12-22 09:04:34 +00:00
marko
b1d5011cb1 branches/zip: Suppress errors about non-found temporary tables.
Write the is_temp flag to SYS_TABLES.MIX_LEN.

dict_table_t:🎏 Add a flag for is_temporary, DICT_TF2_TEMPORARY.
Unlike other flags, this will not be written to the tablespace flags
or SYS_TABLES.TYPE, but only to SYS_TABLES.MIX_LEN.

dict_build_table_def_step(): Only pass DICT_TF_BITS to tablespaces.

dict_check_tablespaces_and_store_max_id(), dict_load_table():
Suppress errors about temporary tables not being found.

dict_create_sys_tables_tuple(): Write the DICT_TF2_TEMPORARY flag
to SYS_TABLES.MIX_LEN.

fil_space_create(), fil_create_new_single_table_tablespace(): Add assertions
about space->flags.

row_drop_table_for_mysql(): Do not complain about non-found temporary tables.

rb://160 approved by Heikki Tuuri.  This addresses the second part of
Bug #41609 Crash recovery does not work for InnoDB temporary tables.
2009-11-30 10:50:11 +00:00
vasil
c0368cd820 branches/zip: Merge r6198:6206 from branches/5.1:
(r6203 was skipped as it is already in branches/zip)

  ------------------------------------------------------------------------
  r6200 | vasil | 2009-11-19 12:14:23 +0200 (Thu, 19 Nov 2009) | 4 lines
  Changed paths:
     M /branches/5.1/btr/btr0btr.c
  
  branches/5.1:
  
  White space fixup - indent under the opening (
  
  ------------------------------------------------------------------------
  r6203 | jyang | 2009-11-19 15:12:22 +0200 (Thu, 19 Nov 2009) | 8 lines
  Changed paths:
     M /branches/5.1/btr/btr0btr.c
  
  branches/5.1: Use btr_free_root() instead of fseg_free() for
  the fix of bug #48469, because fseg_free() is not defined
  in the zip branch. And we could save one mini-trasaction started
  by fseg_free().
  
  Approved by Marko.
  
  
  ------------------------------------------------------------------------
  r6205 | jyang | 2009-11-20 07:55:48 +0200 (Fri, 20 Nov 2009) | 11 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
  
  branches/5.1: Add a special case to handle the Duplicated Key error
  and return DB_ERROR instead. This is to avoid a possible SIGSEGV
  by mysql error handling re-entering the storage layer for dup key
  info without proper table handle.
  This is to prevent a server crash when error situation in bug
  #45961 "DDL on partitioned innodb tables leaves data dictionary
  in an inconsistent state" happens.
  
  rb://157 approved by Sunny Bains.
  
  
  ------------------------------------------------------------------------
  r6206 | jyang | 2009-11-20 09:38:43 +0200 (Fri, 20 Nov 2009) | 5 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
  
  branches/5.1: Fix a minor code formating issue for 
  the parenthesis iplacement of the if condition in
  rename_table().
  
  
  ------------------------------------------------------------------------
2009-11-20 08:19:14 +00:00
marko
0333817829 branches/zip: ha_innobase::add_index(): Clarify the comment
on orphaned tables when creating a primary key.
2009-11-19 12:09:11 +00:00
marko
906238598d branches/zip: ha_innobase::add_index(): When creating the primary key
and the table is being locked by another transaction,
do not attempt to drop the table. (Bug #48782)

Approved by Sunny Bains over IM
2009-11-18 09:36:18 +00:00
marko
06dafb4a39 branches/zip: Report duplicate table names
to the client connection, not to the error log.  This change will allow
innodb-index.test to be re-enabled.  It was previously disabled, because
mysql-test-run does not like output in the error log.

row_create_table_for_mysql(): Do not output anything to the error log
when reporting DB_DUPLICATE_KEY.  Let the caller report the error.
Add a TODO comment that the dict_table_t object is apparently not freed
when an error occurs.

create_table_def(): Convert InnoDB table names to the character set
of the client connection for reporting.  Use my_error(ER_WRONG_COLUMN_NAME)
for reporting reserved column names.  Report my_error(ER_TABLE_EXISTS_ERROR)
when row_create_table_for_mysql() returns DB_DUPLICATE_KEY.

rb://206
2009-11-17 14:44:20 +00:00
marko
fcfe811c69 branches/zip: ha_innobase::change_active_index(): When the history is
missing, report it to the client, not to the error log.
2009-11-17 08:19:34 +00:00
marko
daca48870f branches/zip: Allow CREATE INDEX to be interrupted. (Issue #354)
rb://183 approved by Heikki Tuuri
2009-11-12 13:49:08 +00:00
calvin
d29ba92df0 branches/zip: Exclude thd_binlog_filter_ok() when building
with older version of MySQL.

thd_binlog_filter_ok() is introduced in MySQL 5.1.41. But the
plugin can be built with MySQL prior to 5.1.41.

Approved by Heikki (on IM).
2009-11-11 15:53:20 +00:00
vasil
130d2029d2 branches/zip:
Merge a change from MySQL:
(this has been reviewed by Calvin and Marko, and Calvin says Luis has
incorporated Marko's suggestions)

  ------------------------------------------------------------
  revno: 3092.5.1
  committer: Luis Soares <luis.soares@sun.com>
  branch nick: mysql-5.1-bugteam
  timestamp: Thu 2009-09-24 15:52:52 +0100
  message:
    BUG#42829: binlogging enabled for all schemas regardless of
    binlog-db-db / binlog-ignore-db
          
    InnoDB will return an error if statement based replication is used
    along with transaction isolation level READ-COMMITTED (or weaker),
    even if the statement in question is filtered out according to the
    binlog-do-db rules set. In this case, an error should not be printed.
          
    This patch addresses this issue by extending the existing check in
    external_lock to take into account the filter rules before deciding to
    print an error. Furthermore, it also changes decide_logging_format to
    take into consideration whether the statement is filtered out from 
    binlog before decision is made.
  added:
    mysql-test/suite/binlog/r/binlog_stm_do_db.result
    mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt
    mysql-test/suite/binlog/t/binlog_stm_do_db.test
  modified:
    sql/sql_base.cc
    sql/sql_class.cc
    storage/innobase/handler/ha_innodb.cc
    storage/innobase/handler/ha_innodb.h
    storage/innodb_plugin/handler/ha_innodb.cc
    storage/innodb_plugin/handler/ha_innodb.h
2009-11-11 13:13:01 +00:00
jyang
dd881561a4 branches/zip: Fix an issue that a local variable defined
in innodb_file_format_check_validate() is being referenced
across function in innodb_file_format_check_update().
In addition, fix "set global innodb_file_format_check =
DEFAULT" call.
Bug #47167: "set global innodb_file_format_check" cannot
set value by User-Defined Variable."
rb://169 approved by Sunny Bains and Marko.
2009-11-11 12:27:09 +00:00
vasil
59277a500b branches/zip: Merge r6125:6152 from branches/5.1:
(everything except the last white-space change was skipped as it is already
in branches/zip)

  ------------------------------------------------------------------------
  r6127 | vasil | 2009-10-30 11:18:25 +0200 (Fri, 30 Oct 2009) | 18 lines
  Changed paths:
     M /branches/5.1/Makefile.am
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test
  
  branches/5.1:
  
  Backport c6121 from branches/zip:
  
    ------------------------------------------------------------------------
    r6121 | sunny | 2009-10-30 01:42:11 +0200 (Fri, 30 Oct 2009) | 7 lines
    Changed paths:
       M /branches/zip/mysql-test/innodb-autoinc.result
    
    branches/zip: This test has been problematic for sometime now. The underlying
    bug is that the data dictionaries get out of sync. In the AUTOINC code we
    try and apply salve to the symptoms. In the past MySQL made some unrelated
    change and the dictionaries stopped getting out of sync and this test started
    to fail. Now, it seems they have reverted that changed and the test is
    passing again. I suspect this is not he last time that this test will change.
    
    ------------------------------------------------------------------------
  
  ------------------------------------------------------------------------
  r6129 | vasil | 2009-10-30 17:14:22 +0200 (Fri, 30 Oct 2009) | 4 lines
  Changed paths:
     M /branches/5.1/Makefile.am
  
  branches/5.1:
  
  Revert a change to Makefile.am that sneaked unnoticed in c6127.
  
  ------------------------------------------------------------------------
  r6136 | marko | 2009-11-04 12:28:10 +0200 (Wed, 04 Nov 2009) | 15 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/include/ha_prototypes.h
     M /branches/5.1/ut/ut0ut.c
  
  branches/5.1: Port r6134 from branches/zip:
  
    ------------------------------------------------------------------------
    r6134 | marko | 2009-11-04 07:57:29 +0000 (Wed, 04 Nov 2009) | 5 lines
  
    branches/zip: innobase_convert_identifier(): Convert table names with
    explain_filename() to address Bug #32430: 'show innodb status'
    causes errors Invalid (old?) table or database name in logs.
  
    rb://134 approved by Sunny Bains
    ------------------------------------------------------------------------
  
  innobase_print_identifier(): Replace with innobase_convert_name().
  
  innobase_convert_identifier(): New function, called by innobase_convert_name().
  ------------------------------------------------------------------------
  r6149 | vasil | 2009-11-09 11:15:01 +0200 (Mon, 09 Nov 2009) | 5 lines
  Changed paths:
     M /branches/5.1/CMakeLists.txt
  
  branches/5.1:
  
  Followup to r5700: Adjust the changes so they are the same as in the BZR
  repository.
  
  ------------------------------------------------------------------------
  r6150 | vasil | 2009-11-09 11:43:31 +0200 (Mon, 09 Nov 2009) | 58 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
  
  branches/5.1:
  
  Merge a part of r2911.5.5 from MySQL:
  (the other part of this was merged in c5700)
  
    ------------------------------------------------------------
    revno: 2911.5.5
    committer: Vladislav Vaintroub <vvaintroub@mysql.com>
    branch nick: 5.1-innodb_plugin
    timestamp: Wed 2009-06-10 10:59:49 +0200
    message:
      Backport WL#3653 to 5.1 to enable bundled innodb plugin.
      Remove custom DLL loader code from innodb plugin code, use 
      symbols exported from mysqld.
    removed:
      storage/innodb_plugin/handler/handler0vars.h
      storage/innodb_plugin/handler/win_delay_loader.cc
    added:
      storage/mysql_storage_engine.cmake
      win/create_def_file.js
    modified:
      CMakeLists.txt
      include/m_ctype.h
      include/my_global.h
      include/my_sys.h
      include/mysql/plugin.h
      libmysqld/CMakeLists.txt
      mysql-test/mysql-test-run.pl
      mysql-test/t/plugin.test
      mysql-test/t/plugin_load-master.opt
      mysys/charset.c
      sql/CMakeLists.txt
      sql/handler.h
      sql/mysql_priv.h
      sql/mysqld.cc
      sql/sql_class.cc
      sql/sql_class.h
      sql/sql_list.h
      sql/sql_profile.h
      storage/Makefile.am
      storage/archive/CMakeLists.txt
      storage/blackhole/CMakeLists.txt
      storage/csv/CMakeLists.txt
      storage/example/CMakeLists.txt
      storage/federated/CMakeLists.txt
      storage/heap/CMakeLists.txt
      storage/innobase/CMakeLists.txt
      storage/innobase/handler/ha_innodb.cc
      storage/innodb_plugin/CMakeLists.txt
      storage/innodb_plugin/handler/ha_innodb.cc
      storage/innodb_plugin/handler/handler0alter.cc
      storage/innodb_plugin/handler/i_s.cc
      storage/innodb_plugin/plug.in
      storage/myisam/CMakeLists.txt
      storage/myisammrg/CMakeLists.txt
      win/Makefile.am
      win/configure.js
  
  ------------------------------------------------------------------------
  r6152 | vasil | 2009-11-10 15:30:20 +0200 (Tue, 10 Nov 2009) | 4 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
  
  branches/5.1:
  
  White space fixup.
  
  ------------------------------------------------------------------------
2009-11-10 13:33:22 +00:00
marko
def1082121 branches/zip: innobase_convert_identifier(): Convert table names with
explain_filename() to address Bug #32430: 'show innodb status'
causes errors Invalid (old?) table or database name in logs.

rb://134 approved by Sunny Bains
2009-11-04 07:57:29 +00:00
vasil
215f53bba3 branches/zip: Merge r6112:6125 from branches/5.1:
(skipping r6122 and r6123, Jimmy says these are already present and need
not be merged):

  ------------------------------------------------------------------------
  r6122 | jyang | 2009-10-30 05:18:38 +0200 (Fri, 30 Oct 2009) | 7 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/mysql-test/innodb_bug44369.result
     M /branches/5.1/mysql-test/innodb_bug44369.test
     M /branches/5.1/mysql-test/innodb_bug46000.result
     M /branches/5.1/mysql-test/innodb_bug46000.test
  
  branches/5.1: Chnage WARN_LEVEL_ERROR to WARN_LEVEL_WARN
  for push_warning_printf() call in innodb.
  Fix Bug#47233: Innodb calls push_warning(MYSQL_ERROR::WARN_LEVEL_ERROR)
  
  rb://170 approved by Marko.
  
  
  ------------------------------------------------------------------------
  r6123 | jyang | 2009-10-30 05:43:06 +0200 (Fri, 30 Oct 2009) | 8 lines
  Changed paths:
     M /branches/5.1/os/os0proc.c
  
  branches/5.1: In os_mem_alloc_large(), if we fail to attach
  the shared memory, reset memory pointer ptr to NULL, and
  allocate memory from conventional pool. This is a port
  from branches/zip.
  Bug #48237 Error handling in os_mem_alloc_large appears to be incorrect
  rb://198  Approved by: Marko
  
  
  ------------------------------------------------------------------------
  r6125 | vasil | 2009-10-30 10:31:23 +0200 (Fri, 30 Oct 2009) | 4 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
  
  branches/5.1:
  
  White-space fixup.
  
  ------------------------------------------------------------------------
2009-10-30 08:36:07 +00:00
vasil
cb4d077f15 branches/zip: Merge r5912:6112 from branches/5.1:
(after this merge the innodb-autoinc test starts to fail, but
I commit anyway because it would be easier to investigate the
failure this way)

  ------------------------------------------------------------------------
  r5952 | calvin | 2009-09-22 19:45:07 +0300 (Tue, 22 Sep 2009) | 7 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
  
  branches/5.1: fix bug#42383: Can't create table 'test.bug39438'
  
  For embedded server, MySQL may pass in full path, which is
  currently disallowed. It is needed to relax the condition by
  accepting full paths in the embedded case.
  
  Approved by: Heikki (on IM)
  ------------------------------------------------------------------------
  r6032 | vasil | 2009-10-01 15:55:49 +0300 (Thu, 01 Oct 2009) | 8 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
  
  branches/5.1:
  
  Fix Bug#38996 Race condition in ANALYZE TABLE
  
  by serializing ANALYZE TABLE inside InnoDB.
  
  Approved by:	Heikki (rb://175)
  
  ------------------------------------------------------------------------
  r6045 | jyang | 2009-10-08 02:27:08 +0300 (Thu, 08 Oct 2009) | 7 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     A /branches/5.1/mysql-test/innodb_bug47777.result
     A /branches/5.1/mysql-test/innodb_bug47777.test
  
  branches/5.1: Fix bug #47777. Treat the Geometry data same as
  Binary BLOB in ha_innobase::store_key_val_for_row(), since the
  Geometry data is stored as Binary BLOB in Innodb.
  
  Review: rb://180 approved by Marko Makela.
  
  
  ------------------------------------------------------------------------
  r6051 | sunny | 2009-10-12 07:05:00 +0300 (Mon, 12 Oct 2009) | 6 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test
  
  branches/5.1: Ignore negative values supplied by the user when calculating the
  next value to store in dict_table_t. Setting autoincrement columns top negative
  values is undefined behavior and this change should bring the behavior of
  InnoDB closer to what users expect. Added several tests to check.
  rb://162
  
  ------------------------------------------------------------------------
  r6052 | sunny | 2009-10-12 07:09:56 +0300 (Mon, 12 Oct 2009) | 4 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test
  
  branches/5.1: Reset the statement level autoinc counter on ROLLBACK. Fix
  the test results too.
  rb://164
  
  ------------------------------------------------------------------------
  r6053 | sunny | 2009-10-12 07:37:49 +0300 (Mon, 12 Oct 2009) | 6 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test
  
  branches/5.1: Copy the maximum AUTOINC value from the old table to the new
  table when MySQL does a CREATE INDEX ON T. This is required because MySQL
  does a table copy, rename and drops the old table.
  Fix Bug#47125: auto_increment start value is ignored if an index is created and engine=innodb
  rb://168
  
  ------------------------------------------------------------------------
  r6076 | vasil | 2009-10-14 19:30:12 +0300 (Wed, 14 Oct 2009) | 4 lines
  Changed paths:
     M /branches/5.1/row/row0mysql.c
  
  branches/5.1:
  
  Fix typo.
  
  ------------------------------------------------------------------------
2009-10-29 16:15:50 +00:00
jyang
5a6e24bc97 branches/zip: As a request from mysql, WARN_LEVEL_ERROR cannot
be used for push_warning_* call any more. Switch to 
WARN_LEVEL_WARN. Bug #47233.
rb://172 approved by Sunny Bains and Marko.
2009-10-22 02:51:07 +00:00
jyang
396f34227c branches/zip: Port bug #46000 related changes from 5.1 to zip
branch. Due to different code path for creating index in zip
branch comparing to 5.1), the index reserved name check function
is extended to be used in ha_innobase::add_index(). 
rb://190  Approved by: Marko
2009-10-22 01:58:39 +00:00
calvin
470ce00a55 branches/zip: fix a typo in error message
Reported as bug#47763.
2009-10-01 19:19:46 +00:00
marko
cf0210a706 branches/zip: Remove an assertion failure when the InnoDB data dictionary
is inconsistent with the MySQL .frm file.

ha_innobase::index_read(): When the index cannot be found,
return an error.

ha_innobase::change_active_index(): When prebuilt->index == NULL,
set also prebuilt->index_usable = FALSE.  This is not needed for
correctness, because prebuilt->index_usable is only checked by
row_search_for_mysql(), which requires prebuilt->index != NULL.

This addresses Issue #349.  Approved by Heikki Tuuri over IM.
2009-09-28 12:03:58 +00:00
marko
4cc35ffc9b branches/zip: ha_innodb.cc: Define MYSQL_PLUGIN_IMPORT when necessary.
This preprocessor symbol has been recently introduced in MySQL 5.1.
The InnoDB Plugin should remain source compatible with MySQL 5.1.24
and later.
2009-09-24 09:16:10 +00:00
calvin
a340e71bd4 branches/zip: adjust Windows loading method for 5.1.38
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.
2009-09-22 05:42:46 +00:00
calvin
5af4815f80 branches/zip: Merge revisions 2584:2956 from branches/6.0,
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
    ------------------------------------------------------------------------
2009-09-19 06:14:25 +00:00
marko
44cae3eda8 branches/zip: innobase_get_cset_width(): Cache the value of current_thd. 2009-09-16 08:56:23 +00:00
marko
6f14c55872 branches/zip: Merge revisions 5622:5912 from branches/5.1, except r5700
(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.
  ------------------------------------------------------------------------
2009-09-16 08:54:43 +00:00
calvin
c8cb3ab8dd branches/zip:
HA_ERR_TOO_MANY_CONCURRENT_TRXS is added in 5.1.38.
But the plugin should still work with previous versions
of MySQL.
2009-09-09 14:28:10 +00:00
inaam
b6cf058ba3 branches/zip rb://152
Disable display of deprecated parameter innodb_file_io_threads in
'show variables'.
2009-08-28 05:22:46 +00:00
inaam
8658a2c43d branches/zip rb://147
Done away with following two status variables:

innodb_buffer_pool_read_ahead_rnd
innodb_buffer_pool_read_ahead_seq

Introduced two new status variables:
innodb_buffer_pool_read_ahead = number of pages read as part of
readahead since server startup
innodb_buffer_pool_read_ahead_evicted = number of pages that are read
in as readahead but were evicted before ever being accessed since
server startup i.e.: a measure of how badly our readahead is
performing

SHOW INNODB STATUS will show two extra numbers in buffer pool section:
pages read ahead/sec and pages evicted without access/sec

Approved by: Marko
2009-08-27 15:00:27 +00:00
marko
0f7895d477 branches/zip: Replace the constant 3/8 ratio that controls the LRU_old
size with the settable global variable innodb_old_blocks_pct. The
minimum and maximum values are 5 and 95 per cent, respectively. The
default is 100*3/8, in line with the old behavior.

ut_time_ms(): New utility function, to return the current time in
milliseconds. TODO: Is there a more efficient timestamp function, such
as rdtsc divided by a power of two?

buf_LRU_old_threshold_ms: New variable, corresponding to
innodb_old_blocks_time. The value 0 is the default behaviour: no
timeout before making blocks 'new'.

bpage->accessed, bpage->LRU_position, buf_pool->ulint_clock: Remove.

bpage->access_time: New field, replacing bpage->accessed. Protected by
buf_pool_mutex instead of bpage->mutex. Updated when a page is created
or accessed the first time in the buffer pool.

buf_LRU_old_ratio, innobase_old_blocks_pct: New variables,
corresponding to innodb_old_blocks_pct

buf_LRU_old_ratio_update(), innobase_old_blocks_pct_update(): Update
functions for buf_LRU_old_ratio, innobase_old_blocks_pct.

buf_page_peek_if_too_old(): Compare ut_time_ms() to bpage->access_time
if buf_LRU_old_threshold_ms && bpage->old.  Else observe
buf_LRU_old_ratio and bpage->freed_page_clock.

buf_pool_t: Add n_pages_made_young, n_pages_not_made_young,
n_pages_made_young_old, n_pages_not_made_young, for statistics.

buf_print(): Display buf_pool->n_pages_made_young,
buf_pool->n_pages_not_made_young.  This function is only for crash
diagnostics.

buf_print_io(): Display buf_pool->LRU_old_len and quantities derived
from buf_pool->n_pages_made_young, buf_pool->n_pages_not_made_young.
This function is invoked by SHOW ENGINE INNODB STATUS.

rb://129 approved by Heikki Tuuri.  This addresses Bug #45015.
2009-08-27 06:25:00 +00:00
inaam
99e250d407 branches/zip bug#42885 rb://148
The call to put IO threads to sleep was most probably meant for Windows
only as the comment in buf0rea.c suggests. However it was enabled on
all platforms. This patch restricts the sleep call to windows. This
approach of not putting threads to sleep makes even more sense because
now we have multiple threads working in the background and it probably
is not a good idea to put all of them to sleep because a user thread
wants to post a batch for readahead.

Approved by: Marko
2009-08-26 13:34:35 +00:00
vasil
3894dcdae7 branches/zip:
Merge a change from MySQL:

 http://lists.mysql.com/commits/80832

 2968 Jonathan Perkin	2009-08-14
      Build fixes for Windows, AIX, HP/UX and Sun Studio11, from Timothy Smith.
      modified:
        CMakeLists.txt
        cmd-line-utils/readline/util.c
        storage/innodb_plugin/handler/i_s.cc
        storage/innodb_plugin/include/univ.i
2009-08-26 12:15:59 +00:00
marko
9e7705dbb8 branches/zip: ha_innobase::add_index(): Fix Bug #46557:
after a successful operation, read innodb_table->flags from
the newly created table object, not from the old one that was just freed.

Approved by Sunny.
2009-08-13 07:46:33 +00:00
marko
38657b251e branches/zip: trx_general_rollback_for_mysql(): Remove the redundant
parameter partial. If savept==NULL, partial==FALSE.
2009-08-11 10:42:37 +00:00
calvin
173f74eabe branches/zip: remove duplicate "the" in comments. 2009-08-06 22:04:03 +00:00
inaam
c34ab748cc branches/zip
Change the read ahead parameter name to innodb_read_ahead_threshold.
Change the meaning of this parameter to signify the number of pages
that must be sequentially accessed for InnoDB to trigger a readahead
request.

Suggested by: Ken
2009-07-20 15:23:15 +00:00
vasil
667afaf123 branches/zip: Merge r5497:5518 from branches/5.1:
------------------------------------------------------------------------
  r5518 | vasil | 2009-07-20 11:29:47 +0300 (Mon, 20 Jul 2009) | 22 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
  
  branches/5.1:
  
  Merge a change from MySQL:
  
    ------------------------------------------------------------
    revno: 2874.2.1
    committer: Anurag Shekhar <anurag.shekhar@sun.com>
    branch nick: mysql-5.1-bugteam-windows-warning
    timestamp: Wed 2009-05-13 15:41:24 +0530
    message:
      Bug #39802 On Windows, 32-bit time_t should be enforced
      
      This patch fixes compilation warning, "conversion from 'time_t' to 'ulong', 
      possible loss of data". 
      The fix is to typecast time_t to ulong before assigning it to ulong. 
      Backported this from 6.0-bugteam tree.
    modified:
      storage/archive/ha_archive.cc
      storage/federated/ha_federated.cc
      storage/innobase/handler/ha_innodb.cc
      storage/myisam/ha_myisam.cc
  
  ------------------------------------------------------------------------
2009-07-20 07:45:18 +00:00
vasil
8d57fae29c branches/zip: Merge r5341:5497 from branches/5.1, skipping:
c5419 because it is merge from branches/zip into branches/5.1
c5466 because the source code has been adjusted to match the MySQL
  behavior and the innodb-autoinc test does not fail in branches/zip,
  if c5466 is merged, then innodb-autoinc starts failing, Sunny suggested
  not to merge c5466.
and resolving conflicts in c5410, c5440, c5488:

  ------------------------------------------------------------------------
  r5410 | marko | 2009-06-24 22:26:34 +0300 (Wed, 24 Jun 2009) | 2 lines
  Changed paths:
     M /branches/5.1/include/trx0sys.ic
     M /branches/5.1/trx/trx0purge.c
     M /branches/5.1/trx/trx0sys.c
     M /branches/5.1/trx/trx0undo.c
  
  branches/5.1: Add missing #include "mtr0log.h" to avoid warnings
  when compiling with -DUNIV_MUST_NOT_INLINE.
  ------------------------------------------------------------------------
  r5419 | marko | 2009-06-25 16:11:57 +0300 (Thu, 25 Jun 2009) | 18 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/mysql-test/innodb_bug42101-nonzero.result
     M /branches/5.1/mysql-test/innodb_bug42101-nonzero.test
     M /branches/5.1/mysql-test/innodb_bug42101.result
     M /branches/5.1/mysql-test/innodb_bug42101.test
  
  branches/5.1: Merge r5418 from branches/zip:
  
    ------------------------------------------------------------------------
    r5418 | marko | 2009-06-25 15:55:52 +0300 (Thu, 25 Jun 2009) | 5 lines
    Changed paths:
       M /branches/zip/ChangeLog
       M /branches/zip/handler/ha_innodb.cc
       M /branches/zip/mysql-test/innodb_bug42101-nonzero.result
       M /branches/zip/mysql-test/innodb_bug42101-nonzero.test
       M /branches/zip/mysql-test/innodb_bug42101.result
       M /branches/zip/mysql-test/innodb_bug42101.test
    
    branches/zip: Fix a race condition caused by
    SET GLOBAL innodb_commit_concurrency=DEFAULT. (Bug #45749)
    When innodb_commit_concurrency is initially set nonzero,
    DEFAULT would change it back to 0, triggering Bug #42101.
    rb://139 approved by Heikki Tuuri.
    ------------------------------------------------------------------------
  ------------------------------------------------------------------------
  r5440 | vasil | 2009-06-30 13:04:29 +0300 (Tue, 30 Jun 2009) | 8 lines
  Changed paths:
     M /branches/5.1/fil/fil0fil.c
  
  branches/5.1:
  
  Fix Bug#45814 URL reference in InnoDB server errors needs adjusting to match documentation
  
  by changing the URL from
  http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting.html to
  http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting-datadict.html
  
  ------------------------------------------------------------------------
  r5466 | vasil | 2009-07-02 10:46:45 +0300 (Thu, 02 Jul 2009) | 6 lines
  Changed paths:
     M /branches/5.1/mysql-test/innodb-autoinc.result
     M /branches/5.1/mysql-test/innodb-autoinc.test
  
  branches/5.1:
  
  Adjust the failing innodb-autoinc test to conform to the latest behavior
  of the MySQL code. The idea and the comment in innodb-autoinc.test come
  from Sunny.
  
  ------------------------------------------------------------------------
  r5488 | vasil | 2009-07-09 19:16:44 +0300 (Thu, 09 Jul 2009) | 13 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     A /branches/5.1/mysql-test/innodb_bug21704.result
     A /branches/5.1/mysql-test/innodb_bug21704.test
  
  branches/5.1:
  
  Fix Bug#21704 Renaming column does not update FK definition
  
  by checking whether a column that participates in a FK definition is being
  renamed and denying the ALTER in this case.
  
  The patch was originally developed by Davi Arnaut <Davi.Arnaut@Sun.COM>:
  http://lists.mysql.com/commits/77714
  and was later adjusted to conform to InnoDB coding style by me (Vasil),
  I also added some more comments and moved the bug specific mysql-test to
  a separate file to make it more manageable and flexible.
  
  ------------------------------------------------------------------------
2009-07-14 06:16:18 +00:00
vasil
95a9790ceb branches/zip:
Change the defaults for
innodb_sync_spin_loops: 20 -> 30
innodb_spin_wait_delay: 5 -> 6

This change was proposed by Sun/MySQL based on their performance testing,
see https://svn.innodb.com/innobase/Release_tasks_for_InnoDB_Plugin_V1.0.4
2009-07-10 08:02:22 +00:00
inaam
43fceb74f2 branches/zip rb://133
This patch introduces heuristics based flushing rate of dirty pages to
avoid IO bursts at checkpoint.

1) log_capacity / log_generated per second gives us number of seconds
in which ALL dirty pages need to be flushed. Based on this rough
assumption we can say that
n_dirty_pages / (log_capacity / log_generation_rate) = desired_flush_rate

2) We use weighted averages (hard coded to 20 seconds) of
log_generation_rate to avoid resonance.

3) From the desired_flush_rate we subtract the number of pages that have
been flushed due to LRU flushing. That gives us pages that we should
flush as part of flush_list cleanup. And that is the number (capped by
maximum io_capacity) that we try to flush from the master thread.

Knobs:
======

innodb_adaptive_flushing: boolean, global, dynamic, default TRUE.
Since this heuristic is very experimental and has the potential to
dramatically change the IO pattern I think it is a good idea to leave a
knob to turn it off.

Approved by: Heikki
2009-07-08 15:11:40 +00:00
inaam
462111149c branches/zip rb://126
Based on contribution from Google Inc.
This patch introduces a new parameter innodb_io_capacity to control the
rate at which master threads performs various tasks. The default value
is 200 and higher values imply more aggressive flushing and ibuf merges
from within the master thread.
This patch also changes the ibuf merge from synchronous to asynchronous.
Another minor change is not to force the master thread to wait for a
log flush to complete every second.

Approved by: Heikki
2009-07-07 21:57:14 +00:00
inaam
35bcc4ee2b branches/zip
Non functional change. s/Percona/Percona Inc./
2009-06-30 17:21:09 +00:00
marko
6bfbdb2d0d branches/zip: Do not crash on SET GLOBAL innodb_file_format=DEFAULT
or SET GLOBAL innodb_file_format_check=DEFAULT.

innodb_file_format.test: New test for innodb_file_format and
innodb_file_format_check.

innodb_file_format_name_validate(): Store the string in *save.
innodb_file_format_name_update(): Check the string again.

innodb_file_format_check_validate(): Store the string in *save.
innodb_file_format_check_update(): Check the string again.

Issue #282, rb://140 approved by Heikki Tuuri
2009-06-29 12:49:54 +00:00
marko
3bc2b8f158 branches/zip: ha_innobase::add_index(), ha_innobase::final_drop_index():
Start prebuilt->trx before locking the table.  This should fix Issue #293
and could fix Issue #229.
Approved by Sunny (over IM).
2009-06-29 07:52:30 +00:00
marko
bb0e1c34df branches/zip: Fix a race condition caused by
SET GLOBAL innodb_commit_concurrency=DEFAULT. (Bug #45749)
When innodb_commit_concurrency is initially set nonzero,
DEFAULT would change it back to 0, triggering Bug #42101.
rb://139 approved by Heikki Tuuri.
2009-06-25 11:55:52 +00:00
marko
3b765849d4 branches/zip: ha_innodb.cc: Move the misplaced Doxygen @file comment. 2009-06-25 11:20:56 +00:00
marko
943c28d5a8 branches/zip: Replace a DBUG_ASSERT with ut_a to track down Issue #290. 2009-06-25 09:27:08 +00:00
calvin
73823ce1d2 branches/zip: remove relative path of header files.
Suggested by Marko.
2009-06-24 12:51:08 +00:00
calvin
eebca3bfea branches/zip: change the header file path.
Change the header file path from ../storage/innobase/include/
to ../include/. In the planned 5.1 + plugin release, the source
directory of the plugin will not be in storage/innobase.

Approved by: Heikki (IM)
2009-06-23 19:59:42 +00:00
marko
55cb42519b branches/zip: ha_innobase::check_if_incompatible_data(): When
ROW_FORMAT=DEFAULT, do not compare to get_row_type().
Without this change, fast index creation will be disabled
in recent versions of MySQL 5.1.
2009-06-22 10:58:20 +00:00