MariaDB server is a community developed fork of MySQL server. Started by core members of the original MySQL team, MariaDB actively works with outside developers to deliver the most featureful, stable, and sanely licensed open SQL server in the industry.
Find a file
V Narayanan e80537b791 Bug#40675 MySQL 5.1 crash with index merge algorithm and Merge tables
A Query in the MyISAM merge table was crashing 
if the index merge algorithm was being used

Index Merge optimization requires the reading of 
multiple indexes at the same time. Reading multiple 
indexes at once with current SE API means that we 
need to have handler instance for each to-be-read 
index. This is done by creating clones of the handlers 
instances. The clone internally does a open of the handler.

The open for a MERGE engine is handled in the following 
phases

1) open parent table
2) generate list of underlying
   table
3) attach underlying tables

But the current implementation does only the first 
phase (i.e.) open parent table.

The current patch fixes this at the MERGE engine level, 
by handling the clone operation within the MERGE engine 
rather than in the storage engine API. It opens and 
attaches the MyISAM tables on the MyISAM storage engine 
interface directly within the MERGE engine. The new MyISAM 
table instances, as well as the MERGE clone itself, are not 
visible in the table cache. This is not a problem because
all locking is handled by the original MERGE table from which
this is cloned of.

mysql-test/r/merge.result:
  updated the result file to reflect the new tests
  added to test the fix
mysql-test/t/merge.test:
  Added new tests to verify that the index merge
  algorithm does not crash in the merge engine.
storage/myisammrg/ha_myisammrg.cc:
  Implement the clone method, that handles
  
  1) Cloning the handler
  2) Opening underlying MYISAM child tables
  3) Copies the state of the original handler and the children
     into the cloned instances
  4) Sets the appropriate flags
storage/myisammrg/ha_myisammrg.h:
  Added a flag that is set to indicate that the current 
  instance is cloned. Also added the prototype or the clone 
  method.
storage/myisammrg/myrg_open.c:
  Since we do now again use myrg_open() in the server
  removed the comments marking this as deadcode.
2009-02-12 16:42:07 +05:30
.bzr-mysql changed the version in .bzr-mysql/default.conf 2009-02-03 11:04:22 +02:00
BitKeeper Merge trift2.:/MySQL/M51/mysql-5.1 2008-01-28 15:16:40 +01:00
BUILD Merge the bashism removal from 5.0 up to 5.1-build 2008-12-28 16:18:08 +01:00
client merged 5.0-bugteam -> 5.1-bugteam 2009-02-10 16:26:18 +02:00
cmd-line-utils merged 5.0-bugteam to 5.1-bugteam 2009-02-10 20:22:34 +02:00
config/ac-macros Fix Bug#32831: libmysql should be built with all charsets 2009-01-13 16:16:03 +01:00
dbug Bug#38522: 5 seconds delay when closing application using embedded server 2008-12-04 19:41:53 +01:00
Docs Makefile.am: 2008-04-08 11:44:18 +02:00
extra Bug#41612: resolve_stack_dump does not decode 5.1 stack trace 2008-12-19 08:47:28 -02:00
include Merge from bugteam team tree. 2009-02-10 10:07:54 -05:00
libmysql Bug#38522: 5 seconds delay when closing application using embedded server 2008-12-04 19:41:53 +01:00
libmysql_r Makefile.am: 2007-10-08 20:55:44 +02:00
libmysqld Fix merge error, mysqltest.cc should be mysqltest.c 2008-12-18 19:36:01 +01:00
man Bug#37098 Get rid of "Installed (but unpackaged)" files in the RPM build 2008-08-27 16:03:39 +02:00
mysql-test Bug#40675 MySQL 5.1 crash with index merge algorithm and Merge tables 2009-02-12 16:42:07 +05:30
mysys merging 2009-02-05 10:33:06 +04:00
netware Auto-merge up from 5.0 2009-02-07 16:50:31 +01:00
plugin Use pkglibdir to simplify pkgplugindir, and fix the path in a 2008-01-02 13:00:46 +00:00
pstack Makefile.am, configure.in: 2007-09-27 21:39:23 +02:00
regex Fix for server bug experienced in Maria (wrong "Truncated incorrect <var_name> 2008-02-18 23:29:39 +01:00
scripts Auto-merge 5.1-build -> 5.1-bugteam 2009-02-07 16:29:37 +01:00
server-tools merge 2008-09-01 11:48:21 +02:00
sql merged bug 33813 to 5.1-bugteam 2009-02-12 11:52:01 +02:00
sql-bench Bug #41580 opt_threads option is not used anywhere at all 2009-02-03 13:46:25 +01:00
sql-common auto-merge 2009-01-09 14:22:15 +01:00
storage Bug#40675 MySQL 5.1 crash with index merge algorithm and Merge tables 2009-02-12 16:42:07 +05:30
strings merged 5.1-main -> 5.1-bugteam 2009-01-05 18:10:20 +02:00
support-files Merge 2008-12-28 08:03:44 +01:00
tests Merge from 5.0-bugteam 2009-01-15 08:28:10 -02:00
unittest Fix for server bug experienced in Maria (wrong "Truncated incorrect <var_name> 2008-02-18 23:29:39 +01:00
vio Merge bk-internal.mysql.com:/home/bk/mysql-5.1-build 2008-02-21 19:53:37 -05:00
win Bug#38784: Mysql server crash if table is altered with partition changes. 2008-11-12 13:36:53 +01:00
zlib The header "config.h" needs to be included "early" to control other headers. 2008-10-13 14:23:39 +02:00
.bzrignore merge 5.1 --> 5.1-rpl 2008-12-13 19:42:12 +00:00
.cvsignore Import changeset 2000-07-31 21:29:14 +02:00
CMakeLists.txt merge: 5.1 -> 5.1-rpl 2009-01-23 13:22:05 +01:00
configure.in Raise version number after cloning 5.0.78 2009-02-07 05:47:21 +01:00
COPYING - manual.texi will be replaced with a manual written in DocBook/XML. This ChangeSet removes all 2005-04-13 11:51:38 +02:00
EXCEPTIONS-CLIENT EXCEPTIONS-CLIENT: 2007-03-14 18:28:16 +01:00
INSTALL-SOURCE ReadMe.txt, INSTALL-WIN-SOURCE, INSTALL-BINARY, INSTALL-SOURCE: 2007-11-23 10:15:55 +01:00
INSTALL-WIN-SOURCE ReadMe.txt, INSTALL-WIN-SOURCE, INSTALL-BINARY, INSTALL-SOURCE: 2007-11-23 10:15:55 +01:00
Makefile.am merge: 5.1 -> 5.1-rpl 2009-01-08 19:03:56 +00:00
README make_binary_distribution.sh: 2006-11-07 22:26:37 +01:00

This is a release of MySQL, a dual-license SQL database server.
MySQL is brought to you by the MySQL team at MySQL AB.

License information can be found in these files:
- For GPL (free) distributions, see the COPYING file and
  the EXCEPTIONS-CLIENT file.
- For commercial distributions, see the LICENSE.mysql file.


For further information about MySQL or additional documentation, see:
- The latest information about MySQL: http://www.mysql.com
- The current MySQL documentation: http://dev.mysql.com/doc

Some manual sections of special interest:

- If you are migrating from an older version of MySQL, please read the
  "Upgrading from..." section first!
- To see what MySQL can do, take a look at the features section.
- For installation instructions, see the Installing and Upgrading chapter.
- For the new features/bugfix history, see the Change History appendix.
- For the currently known bugs/misfeatures (known errors) see the Problems
  and Common Errors appendix.
- For a list of developers and other contributors, see the Credits
  appendix.

A local copy of the MySQL Reference Manual can be found in the Docs
directory in GNU Info format.  You can also browse the manual online or
download it in any of several formats at the URL given earlier in this
file.

************************************************************

IMPORTANT:

Bug or error reports should be sent to http://bugs.mysql.com.