Commit graph

3504 commits

Author SHA1 Message Date
Marko Mäkelä
8c65e887a0 ha_innobase::add_index(): Only check for duplicate indexes
when the data dictionary is locked.
This fixes a UNIV_DEBUG assertion failure in innodb-index.test.
2010-04-21 13:00:29 +03:00
Marko Mäkelä
8c828e3afd dtuple_convert_big_rec(): Store locally any fields whose maximum length
is less than 256 bytes. (Bug #52745)
Add related comments and debug assertions to the "offsets"
functions in rem0rec.c.
Approved by Sunny Bains
2010-04-21 12:50:33 +03:00
Marko Mäkelä
37062fc62f rec_convert_dtuple_to_rec(): Correct the debug check.
The "extern" accessor functions return zero or nonzero, not 0 or 1.
2010-04-21 12:16:11 +03:00
Marko Mäkelä
1ed5fab27b rec_convert_dtuple_to_rec(): Add a debug check. 2010-04-21 09:39:16 +03:00
Marko Makela
0aba4871c9 btr_cur_optimistic_insert(): Remove unused variable "heap". 2010-04-20 23:15:50 +03:00
Marko Makela
bac9559ecf dict_create_index_step(): Invoke dict_index_add_to_cache()
in strict mode only if innodb_strict_mode is set. (Bug #50495)

trx_is_strict(): New function, for checking innodb_strict_mode.
2010-04-20 14:42:22 +03:00
Marko Mäkelä
3b7ff90d7e Implement UNIV_BTR_AVOID_COPY, an optimization of page splits. 2010-04-20 11:29:08 +03:00
Marko =?ISO-8859-1?Q?M=E4kel=E4?=
ca85feba83 Enable UNIV_DEBUG_VALGRIND when HAVE_purify is set. 2010-04-19 13:36:03 +03:00
Marko Makela
6c354ffc51 storage/innodb_plugin: Relax too strict assertions about prefix
indexed BLOBs for ROW_FORMAT=DYNAMIC and ROW_FORMAT_COMPRESSED tables
(Bug #52746). In these tables, the locally stored prefix of a BLOB can
be as small as 20 bytes (BTR_EXTERN_FIELD_REF_SIZE). ROW_FORMAT=REDUNDANT
and ROW_FORMAT=COMPACT store a prefix of 768 bytes (REC_MAX_INDEX_COL_LEN).

trx_undo_rec_get_col_val(): Relax the ut_ad() assertion and add a
reference to dtuple_convert_big_rec().

trx_undo_rec_get_partial_row(): Relax the ut_a() assertion that
prompted Bug #52746.
2010-04-15 09:01:22 +02:00
Vasil Dimov
5a0e20715d Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where
they are ignored to a new test suite "innodb_plugin".

Remove a hack in mtr that was deployed to run the builtin InnoDB tests against
the InnoDB Plugin. Also detect if a test is an 'innodb plugin test' and if so
then transparently replace the builtin InnoDB with the InnoDB Plugin.
2010-04-09 15:56:51 +03:00
Vasil Dimov
9e451f11a1 Merge from innodb-branches-zip 2010-04-07 22:42:25 +03:00
Vasil Dimov
7bacdb6a97 Merge from innodb-branches-zip 2010-04-07 22:00:06 +03:00
Vasil Dimov
3e7b21ca55 Merge from innodb-branches-5.1 2010-04-07 21:59:02 +03:00
Vasil Dimov
f4f1f0af3e Repply changes to storage/innodb_plugin/plug.in that were made by MySQL 2010-04-07 21:33:36 +03:00
Vasil Dimov
50dcbe69b4 Repply changes to storage/innodb_plugin/mysql-test/innodb_bug42101-nonzero-master.opt that were made by MySQL 2010-04-07 21:30:44 +03:00
Vasil Dimov
18420c70de Repply changes to storage/innodb_plugin/mysql-test/*.opt that were made by MySQL 2010-04-07 21:17:13 +03:00
Vasil Dimov
41e5a2fb78 Repply changes to storage/innodb_plugin/handler/ha_innodb.cc that were made by MySQL 2010-04-07 20:44:47 +03:00
Vasil Dimov
f30e7a4c4a Repply changes to storage/innodb_plugin/Makefile.am that were made by MySQL 2010-04-07 20:24:43 +03:00
Vasil Dimov
e436d25b7f Reapply changes to storage/innodb_plugin/CMakeLists.txt that were made by MySQL 2010-04-07 20:21:15 +03:00
Vasil Dimov
9a6d13afed Import branches/zip@r6960 from SVN on top of storage/innodb_plugin 2010-04-07 19:53:14 +03:00
Vasil Dimov
4798cb0754 Merge from mysql-5.1-innodb 2010-04-07 15:43:25 +03:00
Vasil Dimov
10cff88638 Merge from mysql-5.1 2010-04-07 15:32:51 +03:00
Sergey Vojtovich
40de15baa1 Merge fix for BUG40980 to mysql-5.1-bugteam. 2010-04-01 22:17:34 +04:00
Sergey Vojtovich
ab1242b9e3 BUG#40980 - Drop table can remove another MyISAM table's
data and index files

It was possible if DATA/INDEX DIRECTORY is pointing to
symlinked MySQL data home directory.

Do not allow to drop data/index files implicitly symlinked
to data home directory. For such tables remove symlink only.

mysql-test/r/symlink.result:
  A test case for BUG#40980.
mysql-test/t/symlink.test:
  A test case for BUG#40980.
storage/myisam/mi_delete_table.c:
  Do not allow to drop data/index files implicitly symlinked
  to data home directory. For such tables remove symlink only.
2010-04-01 18:49:02 +04:00
Sergey Vojtovich
377078eaf0 Applying InnoDB snapshot
Detailed revision comments:

r6900 | mmakela | 2010-03-29 13:54:57 +0300 (Mon, 29 Mar 2010) | 5 lines
branches/zip: Merge c6899 from branches/innodb+:

Add debug assertions to track down Bug #52360.
hash_table_t::magic_n: Add HASH_TABLE_MAGIC_N checks, which were fully absent.
ut_hash_ulint(): Assert table_size > 0 before division.
2010-04-01 17:02:01 +04:00
Sergey Vojtovich
ec271fd3c7 Applying InnoDB snapshot
Detailed revision comments:

r6897 | mmakela | 2010-03-29 11:36:19 +0300 (Mon, 29 Mar 2010) | 3 lines
branches/zip: innodb_mutex_show_status(): Fix a condition
that was accidentally negated in r6781, making SHOW ENGINE INNODB MUTEX STATUS
display only locks with no OS waits.
2010-04-01 17:01:43 +04:00
Sergey Vojtovich
0aa607e414 Applying InnoDB snapshot
Detailed revision comments:

r6891 | vdimov | 2010-03-26 16:19:01 +0200 (Fri, 26 Mar 2010) | 5 lines
Non-functional change: update copyright year to 2010 of the files
that have been modified after 2010-01-01 according to svn.

for f in $(svn log -v -r{2010-01-01}:HEAD |grep "^   M " |cut -b 16- |sort -u) ; do sed -i "" -E 's/(Copyright \(c\) [0-9]{4},) [0-9]{4}, (.*Innobase Oy.+All Rights Reserved)/\1 2010, \2/' $f ; done
2010-04-01 17:01:22 +04:00
Sergey Vojtovich
e76abe0c9c Applying InnoDB snapshot
Detailed revision comments:

r6875 | vdimov | 2010-03-25 18:18:15 +0200 (Thu, 25 Mar 2010) | 4 lines
branches/zip:

Wrap line at 78 column in ChangeLog.
2010-04-01 17:00:43 +04:00
Sergey Vojtovich
cfd2537e26 Applying InnoDB snapshot
Detailed revision comments:

r6874 | vdimov | 2010-03-25 17:17:52 +0200 (Thu, 25 Mar 2010) | 4 lines
branches/zip:

Wrap ChangeLog at 78th column
2010-04-01 17:00:23 +04:00
Sergey Vojtovich
3689c1280c Applying InnoDB snapshot
Detailed revision comments:

r6873 | vdimov | 2010-03-25 17:06:56 +0200 (Thu, 25 Mar 2010) | 4 lines
branches/zip:

Use Bug#N instead of Bug #N to be consistent with the rest of the fil.
2010-04-01 17:00:03 +04:00
Sergey Vojtovich
e94b0f2ba2 Applying InnoDB snapshot
Detailed revision comments:

r6872 | vdimov | 2010-03-25 17:03:17 +0200 (Thu, 25 Mar 2010) | 4 lines
branches/zip:

Fix ChangeLog - write only the bug title in bugs.mysql.com-related entires.
2010-04-01 16:59:41 +04:00
Sergey Vojtovich
ed034065ef Applying InnoDB snapshot
Detailed revision comments:

r6871 | vdimov | 2010-03-25 16:39:44 +0200 (Thu, 25 Mar 2010) | 4 lines
branches/zip:

Whitespace fixup to be consistent with the rest of the file.
2010-04-01 16:58:34 +04:00
Sergey Vojtovich
2b33751d00 Applying InnoDB snapshot
Detailed revision comments:

r6868 | mmakela | 2010-03-25 13:03:08 +0200 (Thu, 25 Mar 2010) | 1 line
branches/zip: page_validate(): Check the buf[] bounds.
2010-04-01 16:58:02 +04:00
Sergey Vojtovich
242f45fd08 Applying InnoDB snapshot
Detailed revision comments:

r6864 | mmakela | 2010-03-24 14:05:53 +0200 (Wed, 24 Mar 2010) | 1 line
branches/zip: dtype_new_store_for_order_and_null_size(): Add ut_ad() on mtype.
2010-04-01 16:57:39 +04:00
Sergey Vojtovich
743aa8780d Applying InnoDB snapshot
Detailed revision comments:

r6861 | vdimov | 2010-03-23 19:31:02 +0200 (Tue, 23 Mar 2010) | 36 lines
branches/zip:

Merge joerg@mysql.com-20100322150231-vdq0afbqtmbs6phy from BZR,

Including univ.i before mysql/plugin.h is needed to avoid this
compiler error:

o  This is how gcc puts it:
o  > > ccache /usr/local/gcc-4.3.2/bin/gcc -static-libgcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I./include -I../../sql -I. -I../../zlib    -g -O3 -march=i686   -DUNIV_LINUX -MT libinnobase_a-trx0i_s.o -MD -MP -MF .deps/libinnobase_a-trx0i_s.Tpo -c -o libinnobase_a-trx0i_s.o `test -f 'trx/trx0i_s.c' || echo './'`trx/trx0i_s.c
o  > > In file included from ./include/univ.i:114,
o  > >                  from trx/trx0i_s.c:36:
o  > > ../../include/my_pthread.h:628: error: expected ')' before '*' token
o  > > In file included from ../../include/my_pthread.h:732,
o  > >                  from ./include/univ.i:114,
o  > >                  from trx/trx0i_s.c:36:
o  > > ../../include/mysql/psi/mysql_thread.h💯 error: expected specifier-qualifier-list before 'pthread_rwlock_t'
o  > > ../../include/mysql/psi/mysql_thread.h:116: error: expected specifier-qualifier-list before 'pthread_rwlock_t'
o  > > ../../include/mysql/psi/mysql_thread.h: In function 'inline_mysql_rwlock_init':
o  > > ../../include/mysql/psi/mysql_thread.h:711: error: 'mysql_rwlock_t' has no member named 'm_psi'
o  > > ../../include/mysql/psi/mysql_thread.h:716: error: 'mysql_rwlock_t' has no member named 'm_rwlock'
o  > > .... ((continued))
o  
o  Intel's icc gives slightly clearer messages:
o  > > icc -static-intel -static-libgcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I./include -I../../sql -I. -I../../zlib    -O3 -g -unroll2 -ip -mp -restrict -no-ftz -no-prefetch   -DUNIV_LINUX -MT libinnobase_a-trx0i_s.o -MD -MP -MF .deps/libinnobase_a-trx0i_s.Tpo -c -o libinnobase_a-trx0i_s.o `test -f 'trx/trx0i_s.c' || echo './'`trx/trx0i_s.c
o  > > ../../include/my_pthread.h(628): error: identifier "pthread_rwlock_t" is undefined
o  > >   extern int rw_pr_init(rw_pr_lock_t *);
o  > >                         ^
o  > > 
o  > > ../../include/mysql/psi/mysql_thread.h(100): error: identifier "pthread_rwlock_t" is undefined
o  > >     rw_lock_t m_rwlock;
o  > >     ^
o  > > 
o  > > ../../include/mysql/psi/mysql_thread.h(116): error: identifier "pthread_rwlock_t" is undefined
o  > >     rw_pr_lock_t m_prlock;
o  > >     ^
2010-04-01 16:57:08 +04:00
Sergey Vojtovich
7119e7b78c Applying InnoDB snapshot
Detailed revision comments:

r6860 | jyang | 2010-03-23 18:20:36 +0200 (Tue, 23 Mar 2010) | 5 lines
branches/zip: This is patch from Inaam that uses red-black tree
to speed up insertions into the flush_list and thus the recovery
process. The patch has been tested by Nokia.
2010-04-01 16:56:22 +04:00
Sergey Vojtovich
c16f76bed6 Applying InnoDB snapshot
Detailed revision comments:

r6858 | mmakela | 2010-03-23 14:09:24 +0200 (Tue, 23 Mar 2010) | 1 line
branches/zip: innodb_read_ahead_threshold: Add missing space to help string.
2010-04-01 16:55:08 +04:00
Sergey Vojtovich
4da9286ddd Applying InnoDB snapshot
Detailed revision comments:

r6857 | mmakela | 2010-03-23 14:07:53 +0200 (Tue, 23 Mar 2010) | 1 line
branches/zip: innodb_change_buffering: Correct the documentation.
2010-04-01 16:54:42 +04:00
Sergey Vojtovich
ba580ebcf3 Applying InnoDB snapshot
Detailed revision comments:

r6853 | marko | 2010-03-22 13:35:29 +0200 (Mon, 22 Mar 2010) | 1 line
branches/zip: mutex_own(), rw_lock_own(): Add attribute((warn_unused_result)).
2010-04-01 16:54:22 +04:00
Sergey Vojtovich
b48174e6fe Applying InnoDB snapshot, fixes BUG#52102.
Detailed revision comments:

r6840 | calvin | 2010-03-19 00:32:23 +0200 (Fri, 19 Mar 2010) | 6 lines
branches/zip: Fix Bug #52102 InnoDB Plugin shows performance drop
comparing to builtin InnoDB (Windows only).

Disable Windows atomics by default.

Approved by: Inaam
2010-04-01 16:53:56 +04:00
Sergey Vojtovich
b5fb2639d8 Applying InnoDB snapshot
Detailed revision comments:

r6830 | marko | 2010-03-18 09:48:18 +0200 (Thu, 18 Mar 2010) | 3 lines
branches/zip: buf_page_peek_if_too_old(): Use 32-bit arithmetics
when comparing the age of access_time to buf_LRU_old_threshold_ms.
This fixes a bug on 64-bit systems.
2010-04-01 16:52:37 +04:00
Sergey Vojtovich
51af103725 Applying InnoDB snapshot
Detailed revision comments:

r6828 | calvin | 2010-03-17 17:16:38 +0200 (Wed, 17 Mar 2010) | 7 lines
branches/zip: rename IB_HAVE_PAUSE_INSTRUCTION to
HAVE_IB_PAUSE_INSTRUCTION in CMakeLists.txt.

The rename was done as r5871, but CMakeLists.txt was
forgotten. Also, add INNODB_RW_LOCKS_USE_ATOMICS to
CMake.
2010-04-01 16:52:14 +04:00
Sergey Vojtovich
9e8ffa495a Applying InnoDB snapshot
Detailed revision comments:

r6805 | inaam | 2010-03-11 23:15:17 +0200 (Thu, 11 Mar 2010) | 6 lines
branches/zip issue#463

Fixed compiler warning about uninitialized variable.

Non-functional change.
2010-04-01 16:27:53 +04:00
Sergey Vojtovich
624f088457 Applying InnoDB snapshot
Detailed revision comments:

r6801 | marko | 2010-03-11 13:34:28 +0200 (Thu, 11 Mar 2010) | 2 lines
branches/zip: mtr_memo_contains(): Relax the assertion of r6800,
allowing mtr->state == MTR_COMMITTING.
2010-04-01 16:27:34 +04:00
Sergey Vojtovich
923d34a97f Applying InnoDB snapshot
Detailed revision comments:

r6800 | marko | 2010-03-11 12:02:57 +0200 (Thu, 11 Mar 2010) | 1 line
branches/zip: Add ut_ad(mtr->state == MTR_ACTIVE) to various places.
2010-04-01 16:27:13 +04:00
Sergey Vojtovich
56ce1fc0d1 Applying InnoDB snapshot
Detailed revision comments:

r6798 | marko | 2010-03-11 09:53:01 +0200 (Thu, 11 Mar 2010) | 14 lines
branches/zip: Fix and clarify the latching of some buf_block_t members.

buf_block_t::check_index_page_at_flush: Note that this field is not
protected by any mutex. Make it a separate field, not a bitfield that
could share the machine word with other fields.

buf_block_t::lock_hash_val: Note that this field is protected by
buf_block_t::lock (or during block creation, by buf_pool_mutex and
buf_block_t::mutex).

buf_block_get_lock_hash_val(): Assert that block->lock is held by the
current thread.

Issue #465, rb://267 approved by Inaam Rana
2010-04-01 16:21:00 +04:00
Sergey Vojtovich
2b38090990 Applying InnoDB snapshot
Detailed revision comments:

r6792 | marko | 2010-03-10 13:56:41 +0200 (Wed, 10 Mar 2010) | 1 line
branches/zip: Copy tests from branches/5.1 that were lost in some merge.
r6793 | marko | 2010-03-10 14:02:19 +0200 (Wed, 10 Mar 2010) | 60 lines
branches/zip: Merge revisions 6669:6788 from branches/5.1:

  ------------------------------------------------------------------------
  r6774 | calvin | 2010-03-03 23:56:10 +0200 (Wed, 03 Mar 2010) | 2 lines
  Changed paths:
     M /branches/5.1/trx/trx0sys.c

  branches/5.1: fix bug#51653: outdated reference to set-variable
  Non functional change.
  ------------------------------------------------------------------------
  r6780 | vasil | 2010-03-08 19:13:20 +0200 (Mon, 08 Mar 2010) | 4 lines
  Changed paths:
     M /branches/5.1/plug.in

  branches/5.1:

  Whitespace fixup.
  ------------------------------------------------------------------------
  r6783 | jyang | 2010-03-09 17:54:14 +0200 (Tue, 09 Mar 2010) | 9 lines
  Changed paths:
     M /branches/5.1/handler/ha_innodb.cc
     M /branches/5.1/mysql-test/innodb_bug21704.result
     A /branches/5.1/mysql-test/innodb_bug47621.result
     A /branches/5.1/mysql-test/innodb_bug47621.test

  branches/5.1: Fix bug #47621 "MySQL and InnoDB data dictionaries
  will become out of sync when renaming columns". MySQL does not
  provide new column name information to storage engine to
  update the system table. To avoid column name mismatch, we shall
  just request a table copy for now.

  rb://246 approved by Marko.
  ------------------------------------------------------------------------
  r6785 | vasil | 2010-03-10 09:04:38 +0200 (Wed, 10 Mar 2010) | 11 lines
  Changed paths:
     M /branches/5.1/mysql-test/innodb_bug38231.test

  branches/5.1:

  Add the missing --reap statements in innodb_bug38231.test. Probably MySQL
  enforced the presence of those recently and the test started failing like:

    main.innodb_bug38231                     [ fail ]
            Test ended at 2010-03-10 08:48:32

    CURRENT_TEST: main.innodb_bug38231
    mysqltest: At line 49: Cannot run query on connection between send and reap
  ------------------------------------------------------------------------
  r6788 | vasil | 2010-03-10 10:53:21 +0200 (Wed, 10 Mar 2010) | 8 lines
  Changed paths:
     M /branches/5.1/mysql-test/innodb_bug38231.test

  branches/5.1:

  In innodb_bug38231.test: replace the fragile sleep 0.2 that depends on timing
  with a more robust condition which waits for the TRUNCATE and LOCK commands
  to appear in information_schema.processlist. This could also break if there
  are other sessions executing the same SQL commands, but there are none during
  the execution of the mysql test.
  ------------------------------------------------------------------------
2010-04-01 16:20:37 +04:00
Sergey Vojtovich
96322594b2 Applying InnoDB snapshot
Detailed revision comments:

r6791 | marko | 2010-03-10 13:39:06 +0200 (Wed, 10 Mar 2010) | 1 line
branches/zip: Add ChangeLog entries for r6789, r6790.
2010-04-01 16:15:15 +04:00
Sergey Vojtovich
1fb843587c Applying InnoDB snapshot, fixes BUG#51356.
Detailed revision comments:

r6790 | jyang | 2010-03-10 13:09:41 +0200 (Wed, 10 Mar 2010) | 7 lines
branches/zip: Fix bug #51356: "many valgrind errors in error messages
with concurrent ddl". Null terminate the name string returned
from innobase_convert_identifier() call when reporting DB_DUPLICATE_KEY
error in create_table_def().
rb://266 approved by Marko
2010-04-01 16:14:51 +04:00
Sergey Vojtovich
5676876884 Applying InnoDB snapshot, fixes BUG#51378.
Detailed revision comments:

r6789 | jyang | 2010-03-10 11:18:18 +0200 (Wed, 10 Mar 2010) | 10 lines
branches/zip: If a unique index is on a column prefix, such
unique index cannot be upgrade to primary index even if there
is no primary index already defined. Also fix possible corruption
when initialize "ref_length" value in case there is a mismatch
between MySQL and InnoDB primary key. Fix bug #51378: "Init
'ref_length'  to correct value, in case an out of bound MySQL
primary_key".
rb://262 approved by Marko.
2010-04-01 16:12:44 +04:00