summaryrefslogtreecommitdiff
path: root/storage
Commit message (Collapse)AuthorAgeFilesLines
* Merge from mysql-5.1.38-releaseJonathan Perkin2009-09-033-10/+14
|\
| * Apply patch from bug#46834 to install the test suite in RPMs.Jonathan Perkin2009-08-211-1/+2
| |
| * Build fixes for Windows, AIX, HP/UX and Sun Studio11, from Timothy Smith.Jonathan Perkin2009-08-142-9/+12
| |
| * Apply build fixJonathan Perkin2009-08-122-2/+2
| |
* | Increase thread stack size on HP-UX when built with debug.Davi Arnaut2009-09-021-1/+6
| |
* | Bug#45611: Minor code cleanupDavi Arnaut2009-09-012-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | Remove a self assignment. Rework a few constructs to avoid a potential overflow. Based upon patch contributed by Michal Hrusecky storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp: Remove self assignment, the object is being initialized. storage/ndb/src/mgmsrv/InitConfigFileParser.cpp: Setup the string in a single snprintf.
* | Merge from 5.0 for 43414Staale Smedseng2009-08-2814-44/+26
| |
* | Fix for a few assorted compiler warnings.Davi Arnaut2009-08-282-330/+357
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | client/mysql.cc: Remove leading whitespace. Remove extra text after #else directive. client/mysqldump.c: Function does not take a parameter. mysys/array.c: buffer is a uchar pointer. sql/item.cc: Assert if it should not happen. storage/myisam/mi_check.c: Cast to expected type. This is probably a bug, but it is casted in a similar way in another part of the code. storage/ndb/include/mgmapi/ndb_logevent.h: Apply fix from cluster team. tests/mysql_client_test.c: Remove extraneous slash.
* | Bug#46639: 1030 (HY000): Got error 124 from storage engine onMattias Jonsson2009-08-211-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | INSERT ... SELECT ... Problem was that when bulk insert is used on an empty table/partition, it disables the indexes for better performance, but in this specific case it also tries to read from that partition using an index, which is not possible since it has been disabled. Solution was to allow index reads on disabled indexes if there are no records. Also reverted the patch for bug#38005, since that was a workaround in the partitioning engine instead of a fix in myisam. mysql-test/r/partition.result: Bug#46639: 1030 (HY000): Got error 124 from storage engine on INSERT ... SELECT ... updated result file mysql-test/t/partition.test: Bug#46639: 1030 (HY000): Got error 124 from storage engine on INSERT ... SELECT ... Added testcase sql/ha_partition.cc: Bug#46639: 1030 (HY000): Got error 124 from storage engine on INSERT ... SELECT ... reverted the patch for bug#38005, since that was a workaround around this problem, not needed after fixing it in myisam. storage/myisam/mi_search.c: Bug#46639: 1030 (HY000): Got error 124 from storage engine on INSERT ... SELECT ... Return HA_ERR_END_OF_FILE instead of HA_ERR_WRONG_INDEX when there are no rows.
* | Fix 5.1 build error.Alexander Nozdrin2009-08-122-2/+2
|/
* Merge mysql-5.1-innodb_plugin to mysql-5.1.Sergey Vojtovich2009-08-11399-91/+216122
|\
| * Fixed build failure on Win.Sergey Vojtovich2009-08-041-0/+1
| | | | | | | | Reverted lost in the merge line.
| * Added fsp0types.h to source distribution.Sergey Vojtovich2009-07-311-0/+1
| |
| * Update to innoplug-1.0.4.Sergey Vojtovich2009-07-30101-1168/+5256
| |
| * Merge 5.1-bugteam -> 5.1-innodb_plugin.Sergey Vojtovich2009-07-1431-293/+857
| |\
| * | This patch pretends to fix run-time symbols clash on Solaris:Sergey Vojtovich2009-07-091-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | - when finding out a way to hide symbols, make decision basing on compiler, not operating system. - Sun Studio supports __hidden declaration specifier for this purpose.
| * | On Solaris shared objects must be linked from PIC code.Sergey Vojtovich2009-07-031-3/+6
| | |
| * | Fixed InnoDB plugin compilation failure from source distributionSergey Vojtovich2009-06-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | on Windows. Added missing file to a source distribution.
| * | Fixed build failures.Sergey Vojtovich2009-06-181-1/+1
| | | | | | | | | | | | | | | | | | | | | storage/innodb_plugin/Makefile.am: Removed handler0vars.h from source distribution. win/Makefile.am: Fixed incorrect merge.
| * | mergeVladislav Vaintroub2009-06-172-3/+3
| |\ \
| | * | When using bundled zlib, INNODB_PLUGIN was looking forSergey Vojtovich2009-06-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | zlib headers in wrong location. Fixed by using path exported by zlib.m4 macro. storage/innodb_plugin/Makefile.am: Include zlib headers from a proper location.
| | * | Removed legacy name for innodb_plugin SE, so --with[out]-innodbSergey Vojtovich2009-06-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | option doesn't affect innodb_plugin. Currently it works as following: * configure without relevant options producing two dynamic plugins * configure --with-plugin-innodb (or legacy --with-innodb) producing static standard InnoDB * configure --without-plugin-innodb (or legacy --without-innodb) disabling standard InnoDB * configure --with-plugin-innodb_plugin producing dynamic innodb_plugin * configure --without-plugin-innodb_plugin disabling innodb_plugin storage/innodb_plugin/plug.in: Removed legacy name for innodb_plugin SE.
| | * | add missing file in Makefile.amTomas Ulin2009-06-091-1/+1
| | | |
| * | | Fixed type defintion for os_thread_id_t on 64 bit Windows.Vladislav Vaintroub2009-06-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It used to be declared as ulint, which is 32/64 bit integer depending on OS bitness. However this declaration lead to problems with os_compare_and_swap_thread_id implementation which operated on 32 bit integers (InterlockedCompareExchange) Using 64 bit int lead to wrong result in os_compare_and_swap_thread_id and to crash/assertion in rw_lock_set_writer_id_and_recursion_flag() The fix is to use 4 byte integer to os_thread_id type definition.
| * | | Backport WL#3653 to 5.1 to enable bundled innodb plugin.Vladislav Vaintroub2009-06-1019-1258/+170
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove custom DLL loader code from innodb plugin code, use symbols exported from mysqld. storage/innodb_plugin/handler/ha_innodb.cc: Remove a Win32 workaround for current_thd. The original problem that innodb plugin used value of TLS variable across DLL boundaries is solved in MySQL server (current_thd is a function not TLS variable now) storage/innodb_plugin/handler/handler0alter.cc: Remove custom delay loader storage/innodb_plugin/handler/handler0vars.h: Remove custom delay loader storage/innodb_plugin/handler/i_s.cc: Remove custom delay loader storage/innodb_plugin/handler/win_delay_loader.cc: Remove custom delay loader storage/innodb_plugin/plug.in: Remove commented out MYSQL_PLUGIN_STATIC, CMake would not parse that correctly
| * | merge from mysql-5.1-innodb_plugin branch.Satya B2009-06-053-8/+8
| |\ \ | | | | | | | | | | | | | | | | change tree name to 'mysql-5.1-innodb_plugin'
| * | | Compile the Innodb plugin so that it can be installed as dynamic plugin only ↵Satya B2009-05-294-3199/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for now. The Innodb plugin 1.0.4 can be installed dynamically using the 'INSTALL PLUGIN' syntax If mysqld is already statically linked with the inbuilt innodb, it is not possible to install the innodb plugin 1.0.4 dynamically. Doing so would throw this error - Function 'innodb' already exists. storage/innodb_plugin/Makefile.am: Remove references of 'storage/innobase' and use $(srcdir) instead. Renamed the dynamic plugin library name to 'ha_innodb_plugin' so that it can be installed along with inbuilt plugin. storage/innodb_plugin/Makefile.in: Remove this file as it can be generated automatically by automake using the Makefile.am storage/innodb_plugin/handler/ha_innodb.cc: Remove refernces to "storage/innobase" and the headers can be included directly. Declare the plugin with the new name innodb_plugin storage/innodb_plugin/plug.in: Rename the plugin innobase as innodb_plugin
| * | | Adding innodb_plugin-1.0.4 as storage/innodb_plugin.Satya B2009-05-27375-0/+216180
| | | |
* | | | Remove the 'single' space character after include/lock0iter.h in fileSatya B2009-08-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | storage/innobase/Makefile.am storage/innobase/Makefile.am: Remove the 'single' space character after include/lock0iter.h
* | | | Auto-mergeIgnacio Galarza2009-07-311-1/+1
| | | |
* | | | Bug#45800 crash when replacing into a merge table and there is a duplicateV Narayanan2009-07-303-2/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A REPLACE in the MERGE engine is actually a REPLACE into one (FIRST or LAST) of the underlying MyISAM tables. So in effect the server works on the meta data of the MERGE table, while the real insert happens in the MyISAM table. The MERGE table has no index, while MyISAM has a unique index. When a REPLACE into a MERGE table ( and the REPLACE conflicts with a duplicate in a child table) is done, we try to access the duplicate key information for the MERGE table. This information actually does not exist, hence this results in a crash. The problem can be resolved by modifying the MERGE engine to provide us the duplicate key information directly, instead of just returning the MyISAM index number as the error key. Then the SQL layer (or "the server") does not try to access the key_info of the MERGE table, which does not exist. The current patch modifies the MERGE engine to provide the position for a record where a unique key violation occurs. include/myisammrg.h: Bug#45800 crash when replacing into a merge table and there is a duplicate Add a member to the st_mymerge_info structure that will store the duplicate key offset in the MERGE table. This offset will be the sum of the record offset of the MyISAM table within the MERGE table and the offset of the record within the MyISAM table. mysql-test/r/merge.result: Bug#45800 crash when replacing into a merge table and there is a duplicate Result file for the test case. mysql-test/t/merge.test: Bug#45800 crash when replacing into a merge table and there is a duplicate Added test case for both REPLACE and INSERT...ON DUPLICATE UPDATE. storage/myisammrg/ha_myisammrg.cc: Bug#45800 crash when replacing into a merge table and there is a duplicate The info method now will process the HA_STATUS_ERRKEY flag and will return the index and the offset of the duplicate key. storage/myisammrg/ha_myisammrg.h: Bug#45800 crash when replacing into a merge table and there is a duplicate Set the HA_DUPLICATE_POS flag to indicate that the duplicate key information is now available in the MERGE storage engine. storage/myisammrg/myrg_info.c: Bug#45800 crash when replacing into a merge table and there is a duplicate We modify the myrg_status function to return the position of the duplicate key. The duplicate key position in the MERGE table will be the MyISAM file_offset and the offset within the MyISAM table of the start position of the records.
* | | | merging with mysql-5.1-bugteam branchSatya B2009-07-271-8/+3
|\ \ \ \
| * | | | Merge from 5.0Gleb Shchepa2009-07-241-8/+3
| | |_|/ | |/| | | | | | | | | | | | | | ****** manual merge 5.0-bugteam --> 5.1-bugteam (bug 38816)
* | | | merge 5.0-bugteam to 5.1-bugteamSatya B2009-07-241-11/+1
|/ / /
* | | Automerge.Alexey Kopytov2009-07-122-7/+16
|\ \ \
| * | | Bug #45796: invalid memory reads and writes when altering merge Alexey Kopytov2009-07-102-7/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and base tables myrg_attach_children() could reuse a buffer that was allocated previously based on a definition of a child table. The problem was that the child's definition might have been changed, so reusing the buffer could lead to crashes or valgrind errors under some circumstances. Fixed by changing myrg_attach_children() so that the rec_per_key_part buffer is reused only when the child table have not changed, and reallocated otherwise (the old buffer is deallocated if necessary). include/myisammrg.h: Added a pointer to need_compat_check as an argument to myrg_attach_children(). mysql-test/r/merge.result: Added a test case for bug #45796. mysql-test/t/merge.test: Added a test case for bug #45796. storage/myisammrg/ha_myisammrg.cc: Pass a pointer to need_compat_check to myrg_attach_children(). storage/myisammrg/myrg_open.c: Changed myrg_attach_children() so that the rec_per_key_part buffer is reused only when the child table have not changed, and reallocated otherwise (the old buffer is deallocated if necessary).
* | | | Applying InnoDB snapshot 5.1-ss5488,part 4. Fixes BUG#21704Satya B2009-07-101-0/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. BUG#21704 - Renaming column does not update FK definition 2. Changes in mysql-test/include/mtr_warnings.sql so that the testcase for BUG#21704 doesn't fail because of the warnings generated. Detailed revision comments: r5488 | vasil | 2009-07-09 19:16:44 +0300 (Thu, 09 Jul 2009) | 13 lines 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.
* | | | Applying InnoDB snapshot 5.1-ss5488 part3,Fixes BUG#45814Satya B2009-07-101-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Detailed revision comments: r5440 | vasil | 2009-06-30 13:04:29 +0300 (Tue, 30 Jun 2009) | 8 lines 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
* | | | Applying InnoDB snapshot 5.1-ss5488,part 2. Fixes BUG#45749Satya B2009-07-101-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BUG#45749 - Race condition in SET GLOBAL innodb_commit_concurrency=DEFAULT Detailed revision comments: r5419 | marko | 2009-06-25 16:11:57 +0300 (Thu, 25 Jun 2009) | 18 lines 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. ------------------------------------------------------------------------
* | | | Applying InnoDB snashot 5.1-ss5488, part 1Satya B2009-07-105-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Fixes build warnings caused by applying snapshot 5.1-ss5282 2. Fix the Makefile.am in storage/innobase to remove the header file 'fsp0types.h' which was added twice to fix build warning generated after applying the 5.1-ss5282 snapshot Detailed revision comments: r5410 | marko | 2009-06-24 22:26:34 +0300 (Wed, 24 Jun 2009) | 2 lines branches/5.1: Add missing #include "mtr0log.h" to avoid warnings when compiling with -DUNIV_MUST_NOT_INLINE.
* | | | merging with mysql-5.1-bugteamV Narayanan2009-07-092-65/+141
|\ \ \ \
| * | | | Bug#45983 ibmdb2i_create_index_option=1 not working for primary keyV Narayanan2009-07-082-65/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With ibmdb2i_create_index_option set to 1, creating an IBMDB2I table with a primary key should produce an additional index that uses EBCDIC hexadecimal sorting. However, this does not work. Adding indexes that are not primary keys does work. The ibmdb2i_create_index_option should be honoured when creating a table with a primary key. This patch adds code to the create() function to check for the value of the ibmdb2i_create_index_option variable and, when appropriate, to generate a *HEX-based shadow index in DB2 for the primary key. Previously this behavior was limited to secondary indexes. Additionally, this patch restricts the creation of shadow indexes to cases in which a non-*HEX sort sequence is used, as the documentation for ibmdb2i_create_index_option describes. Previously, the shadow index would in some cases be created even when the MySQL-specific index used *HEX sorting, leading to redundant indexes. Finally, the code used to generate the list of fields for indexes and the code used to generate the SQL statement for the shadow indexes has been refactored into individual functions. mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_45983.result: Bug#45983 ibmdb2i_create_index_option=1 not working for primary key Result file for the test case. mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_45983.test: Bug#45983 ibmdb2i_create_index_option=1 not working for primary key Add tests to verify that the ibmdb2i_create_index_option is being honoured when creating a table with a primary key. storage/ibmdb2i/ha_ibmdb2i.cc: Bug#45983 ibmdb2i_create_index_option=1 not working for primary key - Add code to the create() function to check for the value of the ibmdb2i_create_index_option variable and, when appropriate, to generate a *HEX-based shadow index in DB2 for the primary key. - Restrict the creation of shadow indexes to cases in which a non-*HEX sort sequence is used. - Refractor code used to generate the list of fields for indexes and the code used to generate the SQL statement for the shadow indexes into individual functions. storage/ibmdb2i/ha_ibmdb2i.h: Bug#45983 ibmdb2i_create_index_option=1 not working for primary key Add function prototypes for the functions that. - Generate the list of fields for indexes - Generate the SQL statement for the shadow indexes
* | | | | Bug#35111 - Truncate a MyISAM partitioned table does not resetSatya B2009-07-084-0/+16
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the auto_increment value This is an alternative patch that instead of allowing RECREATE TABLE on TRUNCATE TABLE it implements reset_auto_increment that is called after delete_all_rows. Note: this bug was fixed by Mattias Jonsson: Pusing this patch: http://lists.mysql.com/commits/70370 mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#35111: Truncate a MyISAM partitioned table does not reset the auto_increment value mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#35111: Truncate a MyISAM partitioned table does not reset the auto_increment value sql/ha_partition.cc: Bug#35111: Truncate a MyISAM partitioned table does not reset the auto_increment value Added reset_auto_increment, to be used after delete_all_rows to simulate truncate. storage/heap/ha_heap.cc: Bug#35111: Truncate a MyISAM partitioned table does not reset the auto_increment value Added reset_auto_increment, to be used after delete_all_rows to simulate truncate storage/heap/ha_heap.h: Bug#35111: Truncate a MyISAM partitioned table does not reset the auto_increment value Added reset_auto_increment, to be used after delete_all_rows to simulate truncate storage/myisam/ha_myisam.cc: Bug#35111: Truncate a MyISAM partitioned table does not reset the auto_increment value Added reset_auto_increment, to be used after delete_all_rows to simulate truncate. storage/myisam/ha_myisam.h: Bug#35111: Truncate a MyISAM partitioned table does not reset the auto_increment value Added reset_auto_increment, to be used after delete_all_rows to simulate truncate.
* | | | Bug#45803 Inaccurate estimates for partial key values with IBMDB2IV Narayanan2009-07-064-110/+346
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some collations were causing IBMDB2I to report inaccurate key range estimations to the optimizer for LIKE clauses that select substrings. This can be seen by running EXPLAIN. This problem primarily affects multi-byte and unicode character sets. This patch involves substantial changes to several modules. There are a number of problems with the character set and collation handling. These problems have been or are being fixed, and a comprehensive test has been included which should provide much better coverage than there was before. This test is enabled only for IBM i 6.1, because that version has support for the greatest number of collations. mysql-test/suite/ibmdb2i/r/ibmdb2i_collations.result: Bug#45803 Inaccurate estimates for partial key values with IBMDB2I result file for test case. mysql-test/suite/ibmdb2i/t/ibmdb2i_collations.test: Bug#45803 Inaccurate estimates for partial key values with IBMDB2I Tests for character sets and collations. This test is enabled only for IBM i 6.1, because that version has support for the greatest number of collations. storage/ibmdb2i/db2i_conversion.cc: Bug#45803 Inaccurate estimates for partial key values with IBMDB2I - Added support in convertFieldChars to enable records_in_range to determine how many substitute characters were inserted and to suppress conversion warnings. - Fixed bug which was causing all multi-byte and Unicode fields to be created as UTF16 (CCSID 1200) fields in DB2. The corrected code will now create UCS2 fields as UCS2 (CCSID 13488), UTF8 fields (except for utf8_general_ci) as UTF8 (CCSID 1208), and all other multi-byte or Unicode fields as UTF16. This will only affect tables that are newly created through the IBMDB2I storage engine. Existing IBMDB2I tables will retain the original CCSID until recreated. The existing behavior is believed to be functionally correct, but it may negatively impact performance by causing unnecessary character conversion. Additionally, users accessing IBMDB2I tables through DB2 should be aware that mixing tables created before and after this change may require extra type casts or other workarounds. For this reason, users who have existing IBMDB2I tables using a Unicode collation other than utf8_general_ci are encouraged to recreate their tables (e.g. ALTER TABLE t1 ENGINE=IBMDB2I) in order to get the updated CCSIDs associated with their DB2 tables. - Improved error reporting for unsupported character sets by forcing a check for the iconv conversion table at table creation time, rather than at data access time. storage/ibmdb2i/db2i_myconv.h: Bug#45803 Inaccurate estimates for partial key values with IBMDB2I Fix to set errno when iconv fails. storage/ibmdb2i/db2i_rir.cc: Bug#45803 Inaccurate estimates for partial key values with IBMDB2I Significant improvements were made to the records_in_range code that handles partial length string data in keys for optimizer plan estimation. Previously, to obtain an estimate for a partial key value, the implementation would perform any necessary character conversion and then attempt to determine the unpadded length of the partial key by searching for the minimum or maximum sort character. While this algorithm was sufficient for most single-byte character sets, it did not treat Unicode and multi-byte strings correctly. Furthermore, due to an operating system limitation, partial keys having UTF8 collations (ICU sort sequences in DB2) could not be estimated with this method. With this patch, the code no longer attempts to explicitly determine the unpadded length of the key. Instead, the entire key is converted (if necessary), including padding, and then passed to the operating system for estimation. Depending on the source and target character sets and collations, additional logic is required to correctly handle cases in which MySQL uses unconvertible or differently -weighted values to pad the key. The bulk of the patch exists to implement this additional logic. storage/ibmdb2i/ha_ibmdb2i.h: Bug#45803 Inaccurate estimates for partial key values with IBMDB2I The convertFieldChars declaration was updated to support additional optional behaviors.
* | | Bug#45793 macce charset causes error with IBMDB2IV Narayanan2009-07-021-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Creating an IBMDB2I table with the macce character set is successful, but any attempt to insert data into the table was failing. This was happening because the character set name "macce" is not a valid iconv descriptor for IBM i PASE. This patch adds an override to convertTextDesc to use the equivalent valid iconv descriptor "IBM-1282" instead. mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_45793.result: Bug#45793 macce charset causes error with IBMDB2I Result file for the test case. mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_45793.test: Bug#45793 macce charset causes error with IBMDB2I Add a testcase for the macce charater set. storage/ibmdb2i/db2i_charsetSupport.cc: Bug#45793 macce charset causes error with IBMDB2I The character set name "macce" is not a valid iconv descriptor for IBM i PASE. Add an override to convertTextDesc to use the equivalent valid iconv descriptor "IBM-1282" instead.
* | | merge to 5.1-bugteamSatya B2009-07-011-1/+1
|\ \ \
| * | | Post-merge fix for Innodb snapshot.Davi Arnaut2009-06-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add new header to Makefile.am so it gets bundled. storage/innobase/Makefile.am: Add header so it becomes part of a source distribution.
* | | | Fix build failure after applying Innodb snapshot 5.1-ss5282Satya B2009-07-011-1/+2
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge from 5.0Staale Smedseng2009-06-291-1/+1
| | |
* | | merge to mysql-5.1-bugteamSatya B2009-06-295-67/+122
|\ \ \