Commit graph

3354 commits

Author SHA1 Message Date
Marko Mäkelä
aa3a0fcbe9 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ä
6a4919d874 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ä
6517c87a02 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ä
d1923d4cb7 rec_convert_dtuple_to_rec(): Add a debug check. 2010-04-21 09:39:16 +03:00
Marko Makela
36ad5f8a4c btr_cur_optimistic_insert(): Remove unused variable "heap". 2010-04-20 23:15:50 +03:00
Marko Makela
10c53c3913 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ä
8b2f33f873 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?=
e67b5257a2 Enable UNIV_DEBUG_VALGRIND when HAVE_purify is set. 2010-04-19 13:36:03 +03:00
Marko Makela
3188a795ea 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
164dedbad0 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
bb4e5b5484 Merge from innodb-branches-zip 2010-04-07 22:42:25 +03:00
Vasil Dimov
e351c94ab5 Merge from innodb-branches-zip 2010-04-07 22:00:06 +03:00
Vasil Dimov
a4588d748c Merge from innodb-branches-5.1 2010-04-07 21:59:02 +03:00
Vasil Dimov
8bfeb4d181 Repply changes to storage/innodb_plugin/plug.in that were made by MySQL 2010-04-07 21:33:36 +03:00
Vasil Dimov
ebb514f809 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
b844d6acaa Repply changes to storage/innodb_plugin/mysql-test/*.opt that were made by MySQL 2010-04-07 21:17:13 +03:00
Vasil Dimov
5ce66fdde6 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
793a8e95cb Repply changes to storage/innodb_plugin/Makefile.am that were made by MySQL 2010-04-07 20:24:43 +03:00
Vasil Dimov
3c2335be17 Reapply changes to storage/innodb_plugin/CMakeLists.txt that were made by MySQL 2010-04-07 20:21:15 +03:00
Vasil Dimov
c834fa0260 Import branches/zip@r6960 from SVN on top of storage/innodb_plugin 2010-04-07 19:53:14 +03:00
Vasil Dimov
46e5bbaa24 Merge from mysql-5.1-innodb 2010-04-07 15:43:25 +03:00
Vasil Dimov
2bfc788f7f Merge from mysql-5.1 2010-04-07 15:32:51 +03:00
Sergey Vojtovich
645ee41e26 Merge fix for BUG40980 to mysql-5.1-bugteam. 2010-04-01 22:17:34 +04:00
Sergey Vojtovich
4050910f03 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.
2010-04-01 18:49:02 +04:00
Sergey Vojtovich
f770db5185 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
7324f7628e 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
a47cb8f055 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
905c3d993e 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
a244b1d34f 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
ca7e28039d 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
7b4858c158 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
0a5b19e5af 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
f2415eb426 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
538d3f2a75 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
64d2ade65d 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
58cb820271 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
9f0592dd38 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
d56ea0322e 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
0e9c2ea168 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
e1d20aefe1 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
74dffaa610 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
5183fe49f0 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
2ce59df6ed 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
15568b946e 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
edba051bee 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
2d33096d87 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
1ce8091b22 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
36f1a009f8 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
aacb485899 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
178dccaae5 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