- 04 Oct, 2008 1 commit
-
-
Mattias Jonsson authored
InnoDB Plugin locks table The fast/on-line add/drop index handler calls was not implemented whithin the partitioning. This implements it in the partitioning handler. Since this is only used by the not included InnoDB plugin, there is no test case. (Have tested it manually with the plugin, and it does not allow unique indexes not including partitioning function, or removal of pk, which in innodb generates a new pk, which is not in the partitioning function.) NOTE: This introduces a new handler method, and because of that changes the storage engine api. (One cannot use a handlerton to see the capabilities of a table's handler if it is partitioned. So I added a wrapper function in the handler that defaults to the handlerton function, which the partitioning handler overrides. sql/ha_partition.cc: Bug#37453: Dropping/creating index on partitioned table with InnoDB Plugin locks table Added support for fast/on-line add/drop index. Implemented alter_table_flags as bit-or of the partitioned hton and the first partitions alter_table_flags. It is only to forward the calls for the other functions: check_if_incompatible_data add_index prepare_drop_index final_drop_index to all parts handler sql/ha_partition.h: Bug#37453: Dropping/creating index on partitioned table with InnoDB Plugin locks table Added support for fast/on-line add/drop index. sql/handler.h: Bug#37453: Dropping/creating index on partitioned table with InnoDB Plugin locks table Added the function on handler level, defaulting to use the handlerton function, but a handler can override it. Needed for partitioned tables. NOTE: Change of storage engine api. sql/sql_partition.cc: Bug#37453: Dropping/creating index on partitioned table with InnoDB Plugin locks table Using the new handler function, instead of the handlerton function. This works better with the partitioning handler. sql/sql_table.cc: Bug#37453: Dropping/creating index on partitioned table with InnoDB Plugin locks table Using the new handler function, instead of the handlerton function. This works better with the partitioning handler. Also using new process info for 'manage keys' (kind of fix for bug-37550).
-
- 25 Sep, 2008 1 commit
-
-
Kristofer Pettersson authored
-
- 23 Sep, 2008 1 commit
-
-
Mattias Jonsson authored
-
- 22 Sep, 2008 3 commits
-
-
Patrick Crews authored
-
Patrick Crews authored
Trimmed some error-prone and variable portions of the test and added 'flush status' to ensure deterministic test
-
Magnus Svensson authored
mysql-test/lib/mtr_cases.pl: forward port the algorithm to check if a binlog format is supported mysql-test/mysql-test-run.pl: Don't use dynamic setting of binlog format - does not work
-
- 20 Sep, 2008 4 commits
-
-
Kristofer Pettersson authored
-
Kristofer Pettersson authored
-
Kristofer Pettersson authored
A stored procedure involving substrings could crash the server on certain platforms because of invalid memory reads. During storing the new blob-field value, the cached value's address range overlapped that of the new field value. This caused problems when the cached value storage was reallocated to provide access for a new characater set representation. The patch checks the address ranges, and if they overlap, the new field value is copied to a new storage before it is converted to the new character set. mysql-test/r/sp.result: Added result set mysql-test/t/sp.test: Added test case sql/field.cc: The source and destination address ranges of a character conversion must not overlap or the 'from' address will be invalidated as the temporary value- object is re-allocated to fit the new character set. sql/field.h: Added comments
-
Davi Arnaut authored
-
- 18 Sep, 2008 8 commits
-
-
Matthias Leich authored
no conflicts, no real code changes
-
Matthias Leich authored
no conflicts
-
Matthias Leich authored
-
Tatiana A. Nurnberg authored
-
Tatiana A. Nurnberg authored
-
Tatiana A. Nurnberg authored
Bug#37114: sql_mode NO_BACKSLASH_ESCAPES does not work properly with LOAD DATA Bug#37114: sql_mode NO_BACKSLASH_ESCAPES does not work properly with LOAD DATA INFILE tweaked test to make embedded server happy
-
Mattias Jonsson authored
It is a very big test and as such it takes a lot of time. Solution is to divide the test in two parts, one for testing increasing column size and one for decreasing size. The innodb branch does extended tests (that myisam is not) due to the $do_pk_tests variabel, that is the reason why the innodb branch takes longer. No increase of memory usage in innodb was found when analyzing, (tested with looping some millions time of create/drop and alter commands) The memory exhaust discovered in the test is due to mysqltest which stores the result in memory (result-file) and this was the biggest result file in the test framework, so by dividing the test into two parts also cuts the memory usage of mysqltest. mysql-test/suite/parts/inc/partition_alter2_1.inc: Bug#37803: Test "partition_alter2_innodb" exhausts resources (time and/or memory) Splitted the test into two parts (one for increasing column size and one for decreasing) This leads to lower test case time (to avoid test case timeout) and less memory consumption of mysqltest (due to smaller result file) mysql-test/suite/parts/inc/partition_alter2_2.inc: Bug#37803: Test "partition_alter2_innodb" exhausts resources (time and/or memory) Splitted the test into two parts (one for increasing column size and one for decreasing) This leads to lower test case time (to avoid test case timeout) and less memory consumption of mysqltest (due to smaller result file) mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#37803: Test "partition_alter2_innodb" exhausts resources (time and/or memory) Splitted the test into two parts (one for increasing column size and one for decreasing) This leads to lower test case time (to avoid test case timeout) and less memory consumption of mysqltest (due to smaller result file) mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#37803: Test "partition_alter2_innodb" exhausts resources (time and/or memory) Splitted the test into two parts (one for increasing column size and one for decreasing) This leads to lower test case time (to avoid test case timeout) and less memory consumption of mysqltest (due to smaller result file) mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#37803: Test "partition_alter2_innodb" exhausts resources (time and/or memory) Splitted the test into two parts (one for increasing column size and one for decreasing) This leads to lower test case time (to avoid test case timeout) and less memory consumption of mysqltest (due to smaller result file) mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#37803: Test "partition_alter2_innodb" exhausts resources (time and/or memory) Splitted the test into two parts (one for increasing column size and one for decreasing) This leads to lower test case time (to avoid test case timeout) and less memory consumption of mysqltest (due to smaller result file) mysql-test/suite/parts/t/disabled.def: Bug#37803: Test "partition_alter2_innodb" exhausts resources (time and/or memory) Removed the test completely (since it has never been supported) mysql-test/suite/parts/t/partition_alter2_1_innodb.test: Bug#37803: Test "partition_alter2_innodb" exhausts resources (time and/or memory) Splitted the test into two parts (one for increasing column size and one for decreasing) This leads to lower test case time (to avoid test case timeout) and less memory consumption of mysqltest (due to smaller result file) mysql-test/suite/parts/t/partition_alter2_1_myisam.test: Bug#37803: Test "partition_alter2_innodb" exhausts resources (time and/or memory) Splitted the test into two parts (one for increasing column size and one for decreasing) This leads to lower test case time (to avoid test case timeout) and less memory consumption of mysqltest (due to smaller result file) mysql-test/suite/parts/t/partition_alter2_2_innodb.test: Bug#37803: Test "partition_alter2_innodb" exhausts resources (time and/or memory) Splitted the test into two parts (one for increasing column size and one for decreasing) This leads to lower test case time (to avoid test case timeout) and less memory consumption of mysqltest (due to smaller result file) mysql-test/suite/parts/t/partition_alter2_2_myisam.test: Bug#37803: Test "partition_alter2_innodb" exhausts resources (time and/or memory) Splitted the test into two parts (one for increasing column size and one for decreasing) This leads to lower test case time (to avoid test case timeout) and less memory consumption of mysqltest (due to smaller result file) mysql-test/suite/parts/t/partition_alter2_ndb.test: Bug#37803: Test "partition_alter2_innodb" exhausts resources (time and/or memory) Removing test since ndb has never supported these tests
-
Chad MILLER authored
-
- 17 Sep, 2008 4 commits
-
-
Tatiana A. Nurnberg authored
-
Tatiana A. Nurnberg authored
-
Tatiana A. Nurnberg authored
-
Tatiana A. Nurnberg authored
NO_BACKSLASH_ESCAPES was not heeded in LOAD DATA INFILE and SELECT INTO OUTFILE. It is now. mysql-test/r/loaddata.result: Show that SQL-mode NO_BACKSLASH_ESCAPES is heeded in INFILE/OUTFILE, and that dump/restore cycles work! mysql-test/t/loaddata.test: Show that SQL-mode NO_BACKSLASH_ESCAPES is heeded in INFILE/OUTFILE, and that dump/restore cycles work! sql/sql_class.cc: Add function to enquire whether ESCAPED BY was given. When doing SELECT...OUTFILE, use ESCAPED BY if specifically given; otherwise use sensible default value depending on SQL-mode features NO_BACKSLASH_ESCAPES. sql/sql_class.h: Add function to enquire whether ESCAPED BY was given. sql/sql_load.cc: When doing LOAD DATA INFILE, use ESCAPED BY if specifically given; otherwise use sensible default value depending on SQL-mode features NO_BACKSLASH_ESCAPES.
-
- 16 Sep, 2008 6 commits
-
-
Matthias Leich authored
-
Matthias Leich authored
Details: - backport of some improvements which prevent sporadic failures from 5.1 to 5.0 - @@GLOBAL.CONCURRENT_INSERT= 0 also for slave server - --sorted_result before all selects which have result sets with more than one row - Replace error numbers by error names
-
Narayanan V authored
-
Vladislav Vaintroub authored
-
Narayanan V authored
Fix the write_record function to record auto increment values in a consistent way. mysql-test/r/auto_increment.result: Updated the test result file with the output of the new test case added to verify this bug. mysql-test/t/auto_increment.test: Added a new test case to verify this bug. sql/sql_insert.cc: The algorithm for the write_record function in sql_insert.cc is (more emphasis given to the parts that deal with the autogenerated values) 1) If a write fails 1.1) save the autogenerated value to avoid thd->insert_id_for_cur_row to become 0. 1.2) <logic to handle INSERT ON DUPLICATE KEY UPDATE and REPLACE> 2) record the first successful insert id. explanation of the failure -------------------------- As long as 1.1) was executed 2) worked fine. 1.1) was always executed when REPLACE worked with the last row update optimization, but in cases where 1.1) was not executed 2) would fail and would result in the autogenerated value not being saved. solution -------- repeat a check for thd->insert_id_for_cur_row being zero similar to 1.1) before 2) and ensure that the correct value is saved.
-
Vladislav Vaintroub authored
Correct usage of strncat() in get_symbol_path() 3rd parameter to strncat is changed to be count of remaining bytes in the output buffer minus 1.
-
- 15 Sep, 2008 9 commits
-
-
Kristofer Pettersson authored
-
Patrick Crews authored
-
Patrick Crews authored
Merge of fixes from 5.0 -> 5.1 Moved restoration of concurrent_insert's original value to the end of the 5.1 tests Re-recorded .result file to account for changes to test file.
-
Patrick Crews authored
Moved fix for this bug to 5.0 as other mysqldump bugs seem tied to concurrent_insert being on Setting concurrent_insert off during this test as INSERTs weren't being completely processed before the calls to mysqldump, resulting in failing tests. Altered .test file to turn concurrent_insert off during the test and to restore it to whatever the value was at the start of the test when complete. Re-recorded .result file to account for changes to variables in the test.
-
Patrick Crews authored
Fixed bad path in .test file Moved test to suite/rpl_ndb (per Cluster QA) Re-recorded .result file to updated expected results.
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
The problem here is that symbols can not be loaded, because symbol path is not set and default path does not include the directory where PDB is located. The problem is _not_ reproducible on the same machine where mysqld.exe is built - if PDB is not found in the symbol path, dbghelp would fallback to fully qualified PDB path as given in the executable header and on the build host this will succeed. The solution is to calculate symbol path and pass it to SymInitialize() call.
-
Alexander Barkov authored
Problem: with @@sql_mode=pad_char_to_full_length a CHAR column returned additional garbage after trailing space characters due to incorrect my_charpos() call. Fix: call my_charpos() with correct arguments.
-
Martin Skold authored
bug#31233 mysql_alter_table() fails to drop UNIQUE KEY mysql-test/suite/ndb/r/ndb_alter_table.result: bug#31233 mysql_alter_table() fails to drop UNIQUE KEY: added test cases mysql-test/suite/ndb/t/ndb_alter_table.test: bug#31233 mysql_alter_table() fails to drop UNIQUE KEY: added test cases sql/ha_ndbcluster.cc: bug#31233 mysql_alter_table() fails to drop UNIQUE KEY: Removed check for non-pk tables, not needed when mysql_alter_table checks apropriate flags sql/mysql_priv.h: bug #31231 mysql_alter_table() tries to drop a non-existing table: added FRM_ONLY flag sql/sql_table.cc: bug #31231 mysql_alter_table() tries to drop a non-existing table Don't invoke handler for tables defined with FRM_ONLY flag. bug#31233 mysql_alter_table() fails to drop UNIQUE KEY When a table is defined without an explicit primary key mysql will choose the first found unique index defined over non-nullable fields (if such an index exists). This means that if such an index is added (the first) or dropped (the last) through an alter table, this equals adding or dropping a primary key. The implementation for on-line add/drop index did not consider this semantics. This patch ensures that only handlers with the correctly defined flags (see handler.h for explanation of the flags): HA_ONLINE_ADD_PK_INDEX HA_ONLINE_ADD_PK_INDEX_NO_WRITES HA_ONLINE_DROP_PK_INDEX HA_ONLINE_DROP_PK_INDEX_NO_WRITES are invoked for such on-line operations. All others handlers must perform a full (offline) alter table.
-
- 11 Sep, 2008 3 commits
-
-
Kristofer Pettersson authored
-
Timothy Smith authored
-
Timothy Smith authored
-