1
0
mirror of https://github.com/MariaDB/server.git synced 2025-10-27 05:56:07 +03:00
Commit Graph

40 Commits

Author SHA1 Message Date
bin.x.su@oracle.com
7b66df16a1 Bug 16876388 - PLEASE BACKPORT BUG#16208542 TO 5.5
Straight forward backport.

Approved by Jimmy, rb#2656
2013-06-25 09:42:54 +08:00
Murthy Narkedimilli
cf2d852653 Fixing the bug 16919882 - WRONG FSF ADDRESS IN LICENSES HEADERS 2013-06-10 22:29:41 +02:00
Satya Bodapati
a14009a0ae Merge Post Fix for BUG#14628410 from mysql-5.1 to mysql-5.5 2013-01-04 17:34:02 +05:30
Satya Bodapati
8d5c4af8bb Merge fix for Bug#14628410 from mysql-5.1 to mysql-5.5 2012-12-13 18:56:47 +05:30
Marko Mäkelä
49b51dd221 Merge mysql-5.1 to mysql-5.5. 2012-11-15 20:38:04 +02:00
Jimmy Yang
7a6479d18f Fix Bug #14753402 - FAILING ASSERTION: LEN == IFIELD->FIXED_LEN
rb://1411 approved by Marko
2012-11-14 17:00:41 +08:00
Annamalai Gurusami
a2c3ba2446 Merging from mysql-5.1 to mysql-5.5. 2012-11-09 18:56:20 +05:30
Marko Mäkelä
f491c04f37 Merge mysql-5.1 to mysql-5.5. 2012-08-09 10:06:59 +03:00
Jimmy Yang
32df28595e Fix Bug #64432 Port bug fix #54330 from mysql-5.1 to mysql-5.5 2012-02-24 21:21:07 +08:00
Sunny Bains
f36fb62bad Merge from mysql-5.1-innodb. 2012-02-10 13:04:10 +11:00
Marko Mäkelä
8e6bba3ec6 Merge mysql-5.1 to mysql-5.5. 2012-02-02 13:50:54 +02:00
Jimmy Yang
177d8b0c12 Fix bug #11830883, SUPPORT "CORRUPTED" BIT FOR INNODB TABLES AND INDEXES.
Also addressed issues in bug #11745133, where we could mark a table
corrupted instead of crashing the server when found a corrupted buffer/page
if the table created with innodb_file_per_table on.
2011-08-16 18:07:59 -07:00
Marko Mäkelä
272fa443f8 Bug 12323643 - CLEAN UP THE INNODB THREAD SHUTDOWN AND ASSERTIONS (WL#5136)
Remove most references to thread id in InnoDB. Three references
remain: the current holder of a mutex, and the current x-lock holder
of a rw-lock, and some references in UNIV_SYNC_DEBUG checks. This
allows MySQL to change the thread associated to a client connection.

Tighten the UNIV_SYNC_DEBUG checks, trying to ensure that no InnoDB
mutex or x-lock is being held when returning control to MySQL. The
only semaphore that may be held is the btr_search_latch in shared mode.

sync_thread_levels_empty_except_dict(): A wrapper for
sync_thread_levels_empty_gen(TRUE).

sync_thread_levels_nonempty_trx(): Check that the current thread is
not holding any InnoDB semaphores, except btr_search_latch if
trx->has_search_latch.

sync_thread_levels_empty(): Unused function; remove.

trx_t: Remove mysql_thread_id and mysql_process_no.

srv_slot_t: Remove id and handle.

row_search_for_mysql(), srv_conc_enter_innodb(),
srv_conc_force_enter_innodb(), srv_conc_force_exit_innodb(),
srv_conc_exit_innodb(), srv_suspend_mysql_thread: Assert
!sync_thread_levels_nonempty_trx().

rb:634 approved by Sunny Bains
2011-04-05 10:18:43 +03:00
Jonathan Perkin
d06e324e66 Merge from mysql-5.5.9-release 2011-02-08 14:59:03 +01:00
Jimmy Yang
fe4e126849 Fix Bug #59390 row_merge_build_indexes() fails to register tmpfd for PFS
rb://582 approved by Marko
2011-01-28 01:38:21 -08:00
Jimmy Yang
e73cb16593 Merge from mysql-5.1-security to mysql-5.5-security 2011-01-07 00:00:36 -08:00
Jimmy Yang
956ada2e2d Merge from mysql-5.1-innodb to mysql-5.5-innodb 2010-11-10 21:51:00 -08:00
Jimmy Yang
c0923d396a Manual port Bug #Bug #54582 "stack overflow when opening many tables
linked with foreign keys at once" from mysql-5.1-security to
mysql-5.5-security again.

rb://391 approved by Heikki
2010-10-06 06:55:34 -07:00
Vasil Dimov
8152cd0ac8 Merge mysql-trunk-bugfixing -> mysql-trunk-innodb
(resolving conflicts in mysql-test/suite/rpl/t/rpl_sync-slave.opt and
configure.cmake)
2010-07-21 17:22:29 +03:00
Marc Alff
508522e5f7 Implemented code review comments.
Fixed style according to the specific innodb style, for innodb code.
2010-07-14 10:23:21 -06:00
Marc Alff
6090cbe552 Bug#55087 Performance schema: optimization of the instrumentation interface
This change is for performance optimization.

Fixed the performance schema instrumentation interface as follows:
- simplified mysql_unlock_mutex()
- simplified mysql_unlock_rwlock()
- simplified mysql_cond_signal()
- simplified mysql_cond_broadcast()

Changed the get_thread_XXX_locker apis to have one extra parameter,
to provide memory to the instrumentation implementation.
This API change allows to use memory provided by the caller,
to avoid having to use thread local storage.
Using this extra parameter will be done in a separate fix,
this change is for the interface only.

Adjusted all the code and unit tests accordingly.
2010-07-09 17:00:24 -06:00
Marko Mäkelä
6e6d119a25 Merge Bug#54358 fix from mysql-5.1-innodb:
------------------------------------------------------------
revno: 3529
revision-id: marko.makela@oracle.com-20100629125518-m3am4ia1ffjr0d0j
parent: jimmy.yang@oracle.com-20100629024137-690sacm5sogruzvb
committer: Marko Mäkelä <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Tue 2010-06-29 15:55:18 +0300
message:
  Bug#54358: READ UNCOMMITTED access failure of off-page DYNAMIC or COMPRESSED
  columns

  When the server crashes after a record stub has been inserted and
  before all its off-page columns have been written, the record will
  contain incomplete off-page columns after crash recovery. Such records
  may only be accessed at the READ UNCOMMITTED isolation level or when
  rolling back a recovered transaction in recv_recovery_rollback_active().
  Skip these records at the READ UNCOMMITTED isolation level.

  TODO: Add assertions for checking the above assumptions hold when an
  incomplete BLOB is encountered.

  btr_rec_copy_externally_stored_field(): Return NULL if the field is
  incomplete.

  row_prebuilt_t::templ_contains_blob: Clarify what "BLOB" means in this
  context. Hint: MySQL BLOBs are not the same as InnoDB BLOBs.

  row_sel_store_mysql_rec(): Return FALSE if not all columns could be
  retrieved. Previously this function always returned TRUE.  Assert that
  the record is not delete-marked.

  row_sel_push_cache_row_for_mysql(): Return FALSE if not all columns
  could be retrieved.

  row_search_for_mysql(): Skip records containing incomplete off-page
  columns. Assert that the transaction isolation level is READ
  UNCOMMITTED.

  rb://380 approved by Jimmy Yang
2010-06-29 16:19:07 +03:00
Marko Mäkelä
deaba603e4 Bug#52199 utf32: mbminlen=4, mbmaxlen=4, type->mbminlen=0, type->mbmaxlen=4
Merge and adjust a forgotten change to fix this bug.
rb://393 approved by Jimmy Yang
  ------------------------------------------------------------------------
  r3794 | marko | 2009-01-07 14:14:53 +0000 (Wed, 07 Jan 2009) | 18 lines

  branches/6.0: Allow the minimum length of a multi-byte character to be
  up to 4 bytes. (Bug #35391)

  dtype_t, dict_col_t: Replace mbminlen:2, mbmaxlen:3 with mbminmaxlen:5.
  In this way, the 5 bits can hold two values of 0..4, and the storage size
  of the fields will not cross the 64-bit boundary.  Encode the values as
  DATA_MBMAX * mbmaxlen + mbminlen.  Define the auxiliary macros
  DB_MBMINLEN(mbminmaxlen), DB_MBMAXLEN(mbminmaxlen), and
  DB_MINMAXLEN(mbminlen, mbmaxlen).

  Try to trim and pad UTF-16 and UTF-32 with spaces as appropriate.

  Alexander Barkov suggested the use of cs->cset->fill(cs, buff, len, 0x20).
  ha_innobase::store_key_val_for_row() now does that, but the added function
  row_mysql_pad_col() does not, because it doesn't have the MySQL TABLE object.

  rb://49 approved by Heikki Tuuri
  ------------------------------------------------------------------------
2010-06-29 14:32:48 +03:00
Marko Mäkelä
d26a9ed0d3 Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
Vasil Dimov
e3d842c60d Merge Bug#47991 fix from mysql-5.1-innodb
------------------------------------------------------------
  revno: 3517
  revision-id: vasil.dimov@oracle.com-20100622163043-dc0lxy0byg74viet
  parent: marko.makela@oracle.com-20100621095148-8g73k8k68dpj080u
  committer: Vasil Dimov <vasil.dimov@oracle.com>
  branch nick: mysql-5.1-innodb
  timestamp: Tue 2010-06-22 19:30:43 +0300
  message:
    Fix Bug#47991 InnoDB Dictionary Cache memory usage increases indefinitely
    when renaming tables
    
    Allocate the table name using ut_malloc() instead of table->heap because
    the latter cannot be freed.
    
    Adjust dict_sys->size calculations all over the code.
    
    Change dict_table_t::name from const char* to char* because we need to
    ut_malloc()/ut_free() it.
    
    Reviewed by:	Inaam, Marko, Heikki (rb://384)
    Approved by:	Heikki (rb://384)
  ------------------------------------------------------------
2010-06-23 10:17:21 +03:00
Vasil Dimov
df1a56253f Use the correct len instead of sizeof(void) in posix_fadvise()
Also explain in the comment the units of the "offset" parameter
2010-05-21 21:09:51 +03:00
Vasil Dimov
b22407dadc Move os_file_write() before posix_fadvise(POSIX_FADV_DONTNEED).
It is wrong to tell the OS that a block is not going to be accessed and
write to it immediately afterwards.
2010-05-21 20:56:47 +03:00
Vasil Dimov
198a0ae9ae Fix comment on row_merge_write() 2010-05-21 20:53:37 +03:00
Sunny Bains
33e6fc1ffa Fix a bug reported by PushBuild on OSX 10.6.3. It turned out to be a compiler
bug. The code has been changed to work around it. To reprocude the bug simply
revert this change and build the binary with:

GCC Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5659~1/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5659)

export LDFLAGS='-g -arch i386'
export CFLAGS='-g -no-cpp-precomp -arch i386 -O2'
export CXXFLAGS='-g -no-cpp-precomp -arch i386 -O2'

./configure --enable-thread-safe-client --enable-local-infile --with-pic --with-client-ldflags=-static --with-mysqld-ldflags=-static --with-zlib-dir=bundled --without-ndb-debug --with-big-tables --with-ssl --with-readline --with-embedded-server --with-archive-storage-engine --with-blackhole-storage-engine --with-csv-storage-engine --with-example-storage-engine --with-federated-storage-engine --with-partition --with-extra-charsets=all --with-innodb --with-ndbcluster --with-libevent --target=i386-apple-darwin --program-transform-name=

Approved by Marko on IM.
2010-05-19 20:19:27 +10:00
Marko Mäkelä
636575249b Merge from mysql-5.1-innodb:
------------------------------------------------------------
  revno: 3460
  revision-id: marko.makela@oracle.com-20100512053925-ovwmpo0838fs2roo
  parent: marko.makela@oracle.com-20100511165845-lsw7seixftgzpfqt
  committer: Marko Mäkelä <marko.makela@oracle.com>
  branch nick: mysql-5.1-innodb
  timestamp: Wed 2010-05-12 08:39:25 +0300
  message:
    row_merge_drop_temp_indexes(): Do not reference freed memory.
    (Bug #53471)
2010-05-12 09:21:46 +03:00
Marko Mäkelä
65c34aaf41 Merge from mysql-5.1-innodb:
------------------------------------------------------------
  revno: 3459
  revision-id: marko.makela@oracle.com-20100511105308-grp2t3prh3tqivw0
  parent: marko.makela@oracle.com-20100511105012-b2t7wvz6mu6bll74
  parent: marko.makela@oracle.com-20100505123901-xjxu93h1xnbkfkq0
  committer: Marko Mäkelä <marko.makela@oracle.com>
  branch nick: mysql-5.1-innodb
  timestamp: Tue 2010-05-11 13:53:08 +0300
  message:
    Merge a patch from Facebook to fix Bug #53290

    commit e759bc64eb5c5eed4f75677ad67246797d486460
    Author: Ryan Mack
    Date:   3 days ago

        Bugfix for 53290, fast unique index creation fails on duplicate null values

        Summary:
        Bug in the fast index creation code incorrectly considers null
        values to be duplicates during block merging.  Innodb policy is that
        multiple null values are allowed in a unique index.  Null duplicates
        were correctly ignored while sorting individual blocks and with slow
        index creation.

        Test Plan:
        mtr, including new test, load dbs using deferred index creation

        License:
        Copyright (C) 2009-2010 Facebook, Inc.  All Rights Reserved.

        Dual licensed under BSD license and GPLv2.

        Redistribution and use in source and binary forms, with or without
        modification, are permitted provided that the following conditions are met:
        1. Redistributions of source code must retain the above copyright notice,
           this list of conditions and the following disclaimer.
        2. Redistributions in binary form must reproduce the above copyright notice,
           this list of conditions and the following disclaimer in the documentation
           and/or other materials provided with the distribution.

        THIS SOFTWARE IS PROVIDED BY FACEBOOK, INC. ``AS IS'' AND ANY EXPRESS OR
        IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
        MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
        EVENT SHALL FACEBOOK, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
        PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
        OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
        WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
        OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
        ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

        This program is free software; you can redistribute it and/or modify it
        under the terms of the GNU General Public License as published by the Free
        Software Foundation; version 2 of the License.

        This program is distributed in the hope that it will be useful, but WITHOUT
        ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
        FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
        more details.

        You should have received a copy of the GNU General Public License along with
        this program; if not, write to the Free Software Foundation, Inc., 59 Temple
        Place, Suite 330, Boston, MA  02111-1307  USA
      ------------------------------------------------------------
      revno: 3453.2.1
      revision-id: marko.makela@oracle.com-20100505123901-xjxu93h1xnbkfkq0
      parent: marko.makela@oracle.com-20100505120555-ukoq1gklpheslrxs
      committer: Marko Mäkelä <marko.makela@oracle.com>
      branch nick: 5.1-innodb
      timestamp: Wed 2010-05-05 15:39:01 +0300
      message:
        Merge a contribution from Ryan Mack at Facebook:

        Bugfix for 53290, fast unique index creation fails on duplicate null values

            Summary:
            Bug in the fast index creation code incorrectly considers null
            values to be duplicates during block merging.  Innodb policy is that
            multiple null values are allowed in a unique index.  Null duplicates
            were correctly ignored while sorting individual blocks and with slow
            index creation.

            Test Plan:
            mtr, including new test, load dbs using deferred index creation

            DiffCamp Revision: 110840
            Reviewed By: mcallaghan
            CC: mcallaghan, mysql-devel@lists
            Revert Plan:
            OK
2010-05-11 19:18:28 +03:00
Marko Makela
213aa2f5a4 Merge from mysql-5.1-innodb:
------------------------------------------------------------
  revno: 3450
  committer: Marko Mäkelä <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Wed 2010-05-05 14:24:11 +0300
  message:
    row_merge_drop_temp_indexes(): Load the table via the dictionary cache.
    Allow multiple indexes to be dropped. (Bug #53256)
2010-05-10 14:34:14 +02:00
Vasil Dimov
ef5b7c2e89 Merge from mysql-5.1-innodb:
------------------------------------------------------------
  revno: 3422
  revision-id: marko.makela@oracle.com-20100427134738-1poi5n4hn29ndne5
  parent: marko.makela@oracle.com-20100426131029-1ffja69h6n88q6bo
  committer: Marko M?kel? <marko.makela@oracle.com>
  branch nick: 5.1-innodb
  timestamp: Tue 2010-04-27 16:47:38 +0300
  message:
    row_merge_drop_temp_indexes(): Remove a bogus char-to-ulint cast.
  modified:
    storage/innodb_plugin/row/row0merge.c 1414@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Frow%2Frow0merge.c
  ------------------------------------------------------------
2010-05-04 13:21:33 +03:00
Vasil Dimov
5f9ba24f91 Import branches/innodb+ from SVN on top of storage/innobase. 2010-04-12 18:20:41 +03:00
Alexander Nozdrin
69cfd5c8ec Manual merge from mysql-trunk.
Conflicts:
  - client/mysqltest.cc
  - mysql-test/collections/default.experimental
  - mysql-test/suite/rpl/t/disabled.def
  - sql/mysqld.cc
  - sql/opt_range.cc
  - sql/sp.cc
  - sql/sql_acl.cc
  - sql/sql_partition.cc
  - sql/sql_table.cc
2009-12-11 12:39:38 +03:00
Satya B
57f7f1fdf3 Merge Innodb Plugin 1.0.6 from mysql-5.1-bugteam storage/innodb_plugin to mysql-trunk-merge.
Merging revisions 3221 to 3230 from mysql-5.1-bugteam
2009-12-02 19:30:50 +05:30
Alexander Nozdrin
069d78c067 Merge from mysql-next-mr. 2009-10-23 15:22:21 +04:00
Satya B
a0e12ec269 Merging Innodb plugin 1.0.5 revisions from 5.1-main from revisions 3149 to 3163
also merged missing Innodb plugin revisions r5636,r5635 manually
2009-10-16 17:28:02 +05:30
Konstantin Osipov
4db335dcee Backport of:
----------------------------------------------------------
revno: 2630.22.8
committer: Konstantin Osipov <konstantin@mysql.com>
branch nick: mysql-6.0-runtime
timestamp: Sun 2008-08-10 18:49:52 +0400
message:
  Get rid of typedef struct for the most commonly used types:
  TABLE, TABLE_SHARE, LEX. This simplifies use of tags
  and forward declarations.
2009-10-14 15:14:58 +04:00
Guilhem Bichot
29a46b4cf9 Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same
layout as we always had in trees containing only the builtin
2) win\configure.js WITH_INNOBASE_STORAGE_ENGINE still works.
2009-08-07 12:16:00 +02:00