- 19 Apr, 2006 1 commit
-
-
unknown authored
After a locking error the open table(s) were not fully cleaned up for reuse. But they were put into the open table cache even before the lock was tried. The next statement reused the table(s) with a wrong lock type set up. This tricked MyISAM into believing that it don't need to update the table statistics. Hence CHECK TABLE reported a mismatch of record count and table size. Fortunately nothing worse has been detected yet. The effect of the test case was that the insert worked on a read locked table. (!) I added a new function that clears the lock type from all tables that were prepared for a lock. I call this function when a lock failes. No test case. One test would add 50 seconds to the test suite. Another test requires file mode modifications. I added a test script to the bug report. It contains three cases for failing locks. All could reproduce a table corruption. All are fixed by this patch. This bug was not lock timeout specific. sql/lock.cc: Bug#18544 - LOCK TABLES timeout causes MyISAM table corruption Resetting the lock type in the open table(s) lock data after a locking error.
-
- 18 Apr, 2006 2 commits
- 14 Apr, 2006 2 commits
- 13 Apr, 2006 5 commits
-
-
unknown authored
into april.(none):/home/svoj/devel/mysql/BUG17917/mysql-4.1
-
unknown authored
sql/mysqld.cc: Fix a typo.
-
unknown authored
into april.(none):/home/svoj/devel/mysql/BUG17917/mysql-4.1
-
unknown authored
Retrieving data from compressed MyISAM table which is bigger than 4G on 32-bit box with mmap() support results in server crash. mmap() accepts length of bytes to be mapped in second param, which is 32-bit size_t. But we pass data_file_length, which is 64-bit my_off_t. As a result only first data_file_length % 4G were mapped. This fix adds additional condition for mmap() usage, that is use mmap() for compressed table which size is no more than 4G on 32-bit platform. myisam/mi_packrec.c: Use mmap() for compressed table which size is no more than 4G on 32-bit platform.
-
unknown authored
Conversion from int and real numbers to UCS2 didn't work fine: CONVERT(100, CHAR(50) UNICODE) CONVERT(103.9, CHAR(50) UNICODE) The problem appeared because numbers have binary charset, so, simple charset recast binary->ucs2 was performed instead of real conversion. Fixed to make numbers pretend to be non-binary. mysql-test/r/ctype_ucs.result: Adding test case mysql-test/t/ctype_ucs.test: Adding test case sql/item_timefunc.cc: Adding new member from_cs, to replace my_charset_bin to a non-binary charset when converting from numbers to UCS2 sql/item_timefunc.h: Adding new member from_cs, to replace my_charset_bin to a non-binary charset when converting from numbers to UCS2
-
- 12 Apr, 2006 1 commit
-
-
unknown authored
used In a simple queries a result of the GROUP_CONCAT() function was always of varchar type. But if length of GROUP_CONCAT() result is greater than 512 chars and temporary table is used during select then the result is converted to blob, due to policy to not to store fields longer than 512 chars in tmp table as varchar fields. In order to provide consistent behaviour, result of GROUP_CONCAT() now will always be converted to blob if it is longer than 512 chars. Item_func_group_concat::field_type() is modified accordingly. mysql-test/t/func_gconcat.test: Added test case for bug#14169: type of group_concat() result changed to blob if tmp_table was used mysql-test/r/func_gconcat.result: Added test case for bug#14169: type of group_concat() result changed to blob if tmp_table was used sql/unireg.h: Added the CONVERT_IF_BIGGER_TO_BLOB constant sql/sql_select.cc: Fixed bug#14169: type of group_concat() result changed to blob if tmp_table was used The unnamed constant 255 in the create_tmp_field() and create_tmp_field_from_item() functions now defined as the CONVERT_IF_BIGGER_TO_BLOB constant. The create_tmp_field() function now converts the Item_sum string result to a blob field based on its char length. sql/item_sum.h: Fixed bug#14169: type of group_concat() result changed to blob if tmp_table was used To the Item_func_group_concat calls added the member function field_type() which returns the BLOB or VAR_STRING type based on the items length. sql/item_func.cc: Fixed bug#14169: type of group_concat() result changed to blob if tmp_table was used In the Item_func::tmp_table_field() function the unnamed constant 255 is changed to the CONVERT_IF_BIGGER_TO_BLOB constant. The Item_func::tmp_table_field() function now measures the result length in chars rather than bytes when converting string result to a blob.
-
- 11 Apr, 2006 7 commits
-
-
unknown authored
into mysql.com:/home/mydev/mysql-4.1-bug5390
-
unknown authored
into mysql.com:/home/mydev/mysql-4.1-bug5390
-
unknown authored
into sanja.is.com.ua:/home/bell/mysql/bk/work-4.1 acinclude.m4: Auto merged configure.in: Auto merged
-
unknown authored
-
unknown authored
into mysql.com:/usr/home/ram/work/mysql-4.1 mysql-test/r/func_op.result: Auto merged sql/item_func.cc: Auto merged mysql-test/t/func_op.test: SCCS merged
-
unknown authored
into sanja.is.com.ua:/home/bell/mysql/bk/work-4.0
-
unknown authored
into mysql.com:/usr/home/ram/work/mysql-4.0
-
- 10 Apr, 2006 4 commits
-
-
unknown authored
into sanja.is.com.ua:/home/bell/mysql/bk/work-4.0
-
unknown authored
code. (Bug #13621) configure.in: Test whether atomic_add() and atomic_sub() are available in C++ code, since that is primarily where we will be using them.
-
unknown authored
into mysql.com:/usr/local/mysql/mysql-4.1
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/mysql-4.1
-
- 08 Apr, 2006 3 commits
- 07 Apr, 2006 10 commits
-
-
unknown authored
into mysql.com:/opt/local/work/mysql-4.1-16365 sql/mysql_priv.h: Auto merged sql/sql_class.h: Auto merged mysql-test/r/ps.result: Manual merge mysql-test/t/ps.test: Manual merge
-
unknown authored
too many open statements". The patch adds a new global variable @@max_prepared_stmt_count. This variable limits the total number of prepared statements in the server. The default value of @@max_prepared_stmt_count is 16382. 16382 small statements (a select against 3 tables with GROUP, ORDER and LIMIT) consume 100MB of RAM. Once this limit has been reached, the server will refuse to prepare a new statement and return ER_UNKNOWN_ERROR (unfortunately, we can't add new errors to 4.1 without breaking 5.0). The limit is changeable after startup and can accept any value from 0 to 1 million. In case the new value of the limit is less than the current statement count, no new statements can be added, while the old still can be used. Additionally, the current count of prepared statements is now available through a global read-only variable @@prepared_stmt_count. mysql-test/r/ps.result: Test results fixed (a test case for Bug#16365) mysql-test/t/ps.test: A test case for Bug#16365 "Prepared Statements: DoS with too many open statements". Also fix statement leaks in other tests. sql/mysql_priv.h: Add declarations for new global variables. sql/mysqld.cc: Add definitions of max_prepared_stmt_count, prepared_stmt_count. sql/set_var.cc: Implement support for @@prepared_stmt_count and @@max_prepared_stmt_count. Currently these variables are queried without acquiring LOCK_prepared_stmt_count due to limitations of the set_var/sys_var class design. Updates are, however, protected with a lock. sql/set_var.h: New declarations to add support for @@max_prepared_stmt_count. Implement a new class, where the lock to be used when updating a variable is a parameter. sql/sql_class.cc: Add accounting of the total number of prepared statements in the server to the methods of Statement_map. sql/sql_class.h: Add accounting of the total number of prepared statements in the server to the methods of Statement_map. sql/sql_prepare.cc: Statement_map::insert will now send a message in case of an error.
-
unknown authored
into mysql.com:/M41/mtr-4.1
-
unknown authored
gives wrong results". Implement previously missing Item_row::cleanup. The bug is not repeatable in 5.0, probably due to a coincidence: the problem is present in 5.0 as well. mysql-test/r/ps.result: Update the result file (Bug#16248) mysql-test/t/ps.test: Add a test case for Bug#16248 "WHERE (col1,col2) IN ((?,?)) gives wrong results" sql/item_row.cc: Implement Item_row::cleanup(): we should reset used_tables_cache before reexecution of a prepared statement. In case ROW arguments contain a placeholder, used_tables_cache has PARAM_TABLE bit set in statement prepare. As a result, when executing a statement, the condition push down algorithm (make_cond_for_table) would think that the WHERE clause belongs to the non-existent PARAM_TABLE and wouldn't attach the WHERE clause to any of the real tables, effectively optimizing the clause away. sql/item_row.h: Remove a never used member 'array_holder'. Add declaration for Item_row::cleanup.
-
unknown authored
-
unknown authored
mysql-test/mysql-test-run.sh: Provide info about the options used for this run to any evaluation tool.
-
unknown authored
mysql-test/mysql-test-run.pl: Add option "with-ndbcluster-only" (ignored) for compatibility with newer "Do-compile".
-
unknown authored
mysql-test/lib/mtr_process.pl: Change from "mtr_error()" to "mtr_warning()" on some problems, because "error" makes the whole suite abort which then makes "Do-compile" terminate, so none of the following steps (including other etst suites) will be done.
-
unknown authored
mysql-test/mysql-test-run.sh: Manual merge from 4.0 (which was a 5.1 backport): "--with-ndbcluster" is already present, "--with-ndbcluster-only" is really usable here.
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/41-work
-
- 06 Apr, 2006 5 commits
-
-
unknown authored
mysql-test/mysql-test-run.sh: Make "mysql-test-run.sh" accept (and ignore) the options "--with-ndbcluster" and "--with-ndbcluster-only". This is necessary because newer build tools will issue them, and the test script should tolerate that. Backport from 5.1 (Tomas Ulin, 2006-01-17)
-
unknown authored
1) make sure that check_multi_node_shutdown does not proceed (in stop case) 2) Fix printout ndb/src/kernel/blocks/qmgr/Qmgr.hpp: make sure that check_multi_node_shutdown does not proceed (in stop case) ndb/src/kernel/blocks/qmgr/QmgrMain.cpp: make sure that check_multi_node_shutdown does not proceed (in stop case)
-
unknown authored
ndb/src/kernel/SimBlockList.cpp: NEW_BLOCK allocates the elements with new, we should free them with delete but only if we're not building with VM_TRACE
-
unknown authored
ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp: Also init a few internals before start phase 1 as they can be accessed before that
-
unknown authored
Bug#18830: incompatibility new libraries with old server Don't execute SET NAMES with pre-4.1 server. libmysql/libmysql.c: Bug#18830: incompatibility new libraries with old server Don't execute SET NAMES with pre-4.1 server.
-