- 29 May, 2009 1 commit
-
-
Tatiana A. Nurnberg authored
When doing ALTER TABLE, we forgot to point out that we actually have ROW_FORMAT information (from the original table), so we dropped to "sensible defaults". This affects both ALTER TABLE and OPTIMIZE TABLE which may fall back on ALTER TABLE for InnoDB. We now flag that we do indeed know the row-type, thereby preserving compression-type etc. No .test in 5.1 since we'd need a reasonable new plugin from InnoDB to show this properly; in higher versions, maria can demonstrate this. sql/sql_table.cc: In mysql_alter_table() flag that we have row-type info from old table. In compare_tables(), we must explicitly check whether row-type has changed (rather than rely on the flag which will always be set at this point now).
-
- 25 May, 2009 2 commits
-
-
Davi Arnaut authored
The problem is that the server failed to follow the rule that every X509 object retrieved using SSL_get_peer_certificate() must be explicitly freed by X509_free(). This caused a memory leak for builds linked against OpenSSL where the X509 object is reference counted -- improper counting will prevent the object from being destroyed once the session containing the peer certificate is freed. The solution is to explicitly free every X509 object used. mysql-test/r/openssl_1.result: Add test case result for Bug#42158 mysql-test/t/openssl_1.test: Add test case for Bug#42158 sql/sql_acl.cc: Deallocate X509 objects.
-
Georgi Kodinov authored
HAVING When calculating GROUP BY the server caches some expressions. It does that by allocating a string slot (Item_copy_string) and assigning the value of the expression to it. This effectively means that the result type of the expression can be changed from whatever it was to a string. As this substitution takes place after the compile-time result type calculation for IN but before the run-time type calculations, it causes the type calculations in the IN function done at run time to get unexpected results different from what was prepared at compile time. In the CASE ... WHEN ... THEN ... statement there was a similar problem and it was solved by artificially adding a STRING argument to the set of types of the IN/CASE arguments at compile time, so if any of the arguments of the CASE function changes its type to a string it will still be covered by the information prepared at compile time. mysql-test/include/mix1.inc: Bug #44399: extended the test to cover the different types mysql-test/r/func_in.result: Bug #44399: test case mysql-test/r/innodb_mysql.result: Bug #44399: extended the test to cover the different types mysql-test/t/func_in.test: Bug #44399: test case sql/item.cc: Bug #44399: Implement typed caching for GROUP BY sql/item.h: Bug #44399: Implement typed caching for GROUP BY sql/item_cmpfunc.cc: Bug #44399: remove the special case sql/sql_select.cc: Bug #44399: Implement typed caching for GROUP BY
-
- 23 May, 2009 1 commit
-
-
Davi Arnaut authored
tests/mysql_client_test.c: Use a suitable constant for specifying the size of the array.
-
- 22 May, 2009 6 commits
-
-
Luis Soares authored
-
Luis Soares authored
stop/start slave When stopping and restarting the slave while it is replicating temporary tables, the server would crash or raise an assertion failure. This was due to the fact that although temporary tables are saved between slave threads restart, the reference to the thread in use (table->in_use) was not being properly updated when the restart happened (it would still reference the old/invalid thread instead of the new one). This patch addresses this issue by resetting the reference to the new slave thread on slave thread restart. mysql-test/r/rpl_temporary.result: Result file. mysql-test/t/rpl_temporary.test: Test case that checks that both failures go away. sql/slave.cc: Changed slave.cc to reset sql_thd reference in temporary tables.
-
Patrick Crews authored
-
Patrick Crews authored
-
Patrick Crews authored
Created new .test file - mysqldump_restore that does test restore from mysqldump output for a limited number of basic cases. Create new .inc file - mysqldump.inc - renames original table and uses mysqldump output to recreate the table, then uses diff_tables.inc to compare the two tables. Backported include/diff_tables.inc to facilitate this testing. New patch incorporating review feedback prior to push. mysqldump.test - removed redundant call to include/have_log_bin.inc (was used twice in the test!)
-
Gleb Shchepa authored
assertion .\filesort.cc, line 797 Minor fix to test case (embedded server failure).
-
- 21 May, 2009 15 commits
-
-
Gleb Shchepa authored
assertion .\filesort.cc, line 797 A query with the "ORDER BY @@some_system_variable" clause, where @@some_system_variable is NULL, causes assertion failure in the filesort procedures. The reason of the failure is in the value of Item_func_get_system_var::maybe_null: it was unconditionally set to false even if the value of a variable was NULL. mysql-test/r/variables.result: Added test case for bug #42778. mysql-test/suite/sys_vars/r/innodb_data_home_dir_basic.result: Updated test case for bug #42778: system variables were NOT NULL, now they are nullable. mysql-test/suite/sys_vars/r/innodb_flush_method_basic.result: Updated test case for bug #42778: system variables were NOT NULL, now they are nullable. mysql-test/suite/sys_vars/r/rpl_init_slave_func.result: Updated test case for bug #42778: system variables were NOT NULL, now they are nullable. mysql-test/suite/sys_vars/r/ssl_capath_basic.result: Updated test case for bug #42778: system variables were NOT NULL, now they are nullable. mysql-test/suite/sys_vars/r/ssl_cipher_basic.result: Updated test case for bug #42778: system variables were NOT NULL, now they are nullable. mysql-test/suite/sys_vars/t/innodb_data_home_dir_basic.test: Updated test case for bug #42778: system variables were NOT NULL, now they are nullable. mysql-test/suite/sys_vars/t/innodb_flush_method_basic.test: Updated test case for bug #42778: system variables were NOT NULL, now they are nullable. mysql-test/suite/sys_vars/t/ssl_capath_basic.test: Updated test case for bug #42778: system variables were NOT NULL, now they are nullable. mysql-test/suite/sys_vars/t/ssl_cipher_basic.test: Updated test case for bug #42778: system variables were NOT NULL, now they are nullable. mysql-test/t/variables.test: Added test case for bug #42778. sql/item.cc: Bug #42778: delete order by null global variable causes assertion .\filesort.cc, line 797 The longlong_from_string_with_check function has been modified to skip unwanted warnings: now it uses the THD::no_errors flag to suppress warnings. The Item_func_get_system_var::update_null_value method sets the no_error flag. sql/item_func.cc: Bug #42778: delete order by null global variable causes assertion .\filesort.cc, line 797 1. The Item_func_get_system_var::fix_length_and_dec method has been modified to make system variables truly nullable. 2. The Item_func_get_system_var::update_null_value method method has been overloaded with a simple wrapper (like Item_field::update_null_value) to suppress unwanted warnings from Item_func_get_system_var::val_int() calls on non-numeric variable values: the Item_func_get_system_var::update_null_value method sets and restores THD::no_errors flag for a nested call of the longlong_from_string_with_check function. sql/item_func.h: Bug #42778: delete order by null global variable causes assertion .\filesort.cc, line 797 The Item_func_get_system_var::update_null_value method method has been overloaded.
-
Patrick Crews authored
Created new .test file - mysqldump_restore that does this for a limited number of basic cases. Created new .inc file - mysqldump.inc - renames original table and uses mysqldump output to recreate the table, then uses diff_tables.inc to compare the two tables. Backported include/diff_tables.inc to facilitate this testing.
-
Alexey Kopytov authored
-
Alexey Kopytov authored
-
Alexey Kopytov authored
Since max_allowed_packet is a read-only variable in 5.1 and up, disable warnings to avoid unnecessary test case complication.
-
Alexey Kopytov authored
-
Alexey Kopytov authored
-
Alexey Kopytov authored
Set max_allowed_packet to get a consistent error message.
-
Alexey Kopytov authored
-
Alexey Kopytov authored
-
Alexey Kopytov authored
-
Alexey Kopytov authored
-
Ramil Kalimullin authored
-
Alfranio Correia authored
-
Ramil Kalimullin authored
bug#44766: valgrind error when using convert() in a subquery Problem: input and output buffers may be the same converting a string to some charset. That may lead to wrong results/valgrind warnings. Fix: use different buffers. mysql-test/r/cast.result: Fix for bug#44743: Join in combination with concat does not always work bug#44766: valgrind error when using convert() in a subquery - test result. mysql-test/r/func_concat.result: Fix for bug#44743: Join in combination with concat does not always work bug#44766: valgrind error when using convert() in a subquery - test result. mysql-test/t/cast.test: Fix for bug#44743: Join in combination with concat does not always work bug#44766: valgrind error when using convert() in a subquery - test case. mysql-test/t/func_concat.test: Fix for bug#44743: Join in combination with concat does not always work bug#44766: valgrind error when using convert() in a subquery - test case. sql/item.cc: Fix for bug#44743: Join in combination with concat does not always work bug#44766: valgrind error when using convert() in a subquery - comment added. sql/item_strfunc.cc: Fix for bug#44743: Join in combination with concat does not always work bug#44766: valgrind error when using convert() in a subquery - '&args[0]->str_value' used as a parameter of args[0]->val_str(), as 'str' may be equal to 'str_value' which we use as the output buffer converting strings. sql/sql_string.cc: Fix for bug#44743: Join in combination with concat does not always work bug#44766: valgrind error when using convert() in a subquery - input and output buffers must NOT be the same.
-
- 20 May, 2009 9 commits
-
-
Matthias Leich authored
-
Staale Smedseng authored
-
Staale Smedseng authored
-
Matthias Leich authored
-
He Zhenxing authored
-
Georgi Kodinov authored
-
He Zhenxing authored
-
Alexey Kopytov authored
warnings after uncompressed_length UNCOMPRESSED_LENGTH() did not validate its argument. In particular, if the argument length was less than 4 bytes, an uninitialized memory value was returned as a result. Since the result of COMPRESS() is either an empty string or a 4-byte length prefix followed by compressed data, the bug was fixed by ensuring that the argument of UNCOMPRESSED_LENGTH() is either an empty string or contains at least 5 bytes (as done in UNCOMPRESS()). This is the best we can do to validate input without decompressing. mysql-test/r/func_compress.result: Added a test case for bug #44796. mysql-test/t/func_compress.test: Added a test case for bug #44796. sql/item_strfunc.cc: Make sure that the argument of UNCOMPRESSED_LENGTH() contains at least 5 bytes (as done in UNCOMPRESS()).
-
He Zhenxing authored
Change the warning message to 'Statement may not be safe to log in statement format' to indicate that the decision on whether a statement is safe or not is heuristic, and we are conservative.
-
- 19 May, 2009 1 commit
-
-
Sergey Glukhov authored
Internal InnoDN FK parser does not recognize '\'' as quotation symbol. Suggested fix is to add '\'' symbol check for quotation condition (dict_strip_comments() function). innobase/dict/dict0dict.c: Internal InnoDN FK parser does not recognize '\'' as quotation symbol. Suggested fix is to add '\'' symbol check for quotation condition (dict_strip_comments() function). mysql-test/r/innodb_mysql.result: test result mysql-test/t/innodb_mysql.test: test case
-
- 18 May, 2009 2 commits
-
-
Gleb Shchepa authored
with a "HAVING" clause though query works SELECT from views defined like: CREATE VIEW v1 (view_column) AS SELECT c AS alias FROM t1 HAVING alias fails with an error 1356: View '...' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them CREATE VIEW form with a (column list) substitutes SELECT column names/aliases with names from a view column list. However, alias references in HAVING clause was not substituted. The Item_ref::print function has been modified to write correct aliased names of underlying items into VIEW definition generation/.frm file. mysql-test/r/view.result: Added test file for bug #40825. mysql-test/t/view.test: Added test file for bug #40825. sql/item.cc: Bug#40825: Error 1356 while selecting from a view with a "HAVING" clause though query works The Item_ref::print function has been modified to write correct aliased names of underlying items into VIEW definition generation/.frm file.
-
Gleb Shchepa authored
The RAND(N) function where the N is a field of "constant" table (table of single row) failed with a SIGFPE. Evaluation of RAND(N) rely on constant status of its argument. Current server "seeded" random value for each constant argument only once, in the Item_func_rand::fix_fields method. Then the server skipped a call to seed_random() in the Item_func_rand::val_real method for such constant arguments. However, non-constant state of an argument may be changed after the call to fix_fields, if an argument is a field of "constant" table. Thus, pre-initialization of random value in the fix_fields method is too early. Initialization of random value by seed_random() has been removed from Item_func_rand::fix_fields method. The Item_func_rand::val_real method has been modified to call seed_random() on the first evaluation of this method if an argument is a function. mysql-test/r/func_math.result: Added test case for bug #44768. mysql-test/t/func_math.test: Added test case for bug #44768. sql/item_func.cc: Bug #44768: SIGFPE crash when selecting rand from a view containing null 1. Initialization of random value by seed_random() has been removed from Item_func_rand::fix_fields method. 2. The Item_func_rand::val_real method has been modified to call seed_random() on the first evaluation of this method if an argument is a function. sql/item_func.h: Bug #44768: SIGFPE crash when selecting rand from a view containing null 1. The Item_func_rand::first_eval has been added to trace the first evaluation of the val_real method. 2. The Item_func_rand::cleanup method has been added to cleanup the first_eval flag.
-
- 17 May, 2009 3 commits
-
-
Kristofer Pettersson authored
Fix bug in mtr_cases.pm script visible only when InnoDB isn't configured. mysql-test/lib/mtr_cases.pm: If InnoDB isn't configured the help texts won't show the "innodb" option and mysqld_variables will not contain any "innodb" entry.
-
Narayanan V authored
Occasionally, if both the partition_pruning and partition_range tests are run sequentially against the IBMDB2I engine, the partition_range test will fail. Compiler padding on a 64-bit build allowed garbage data in the hash key used for caching open iconv descriptors. As a result, cached descriptors were not found, and multiple duplicate iconv descriptors were opened for a single character set. Eventually, the maximum number of open iconv descriptors was reached, and further iconv_open() calls would fail, leading the storage engine to report incorrectly that the character set was not supported. This patch widens the 16-bit members of the hash key to 32 bits to eliminate compiler padding. The entire length of the hash key is now initialized correctly on both 32-bit and 64-bit builds. storage/ibmdb2i/db2i_charsetSupport.cc: Bug#44856 IBMDB2I gives misleading 2504 error widen the 16-bit members of the hash key to 32 bits to eliminate compiler padding.
-
Narayanan V authored
In order to better support the usage of IBMDB2I tables from within RPG programs, the storage engine should ensure that the RCDFMT name is consistent and predictable for DB2 tables. This patch appends a "RCDFMT <name>" clause to the CREATE TABLE statement that is passed to DB2. <name> is generated from the original name of the table itself. This ensures a consistent and deterministic mapping from the original table. For the sake of simplicity only the alpha-numeric characters are preserved when generating the new name, and these are upper-cased; other characters are replaced with an underscore (_). Following DB2 system identifier rules, the name always begins with an alpha-character and has a maximum of ten characters. If no usable characters are found in the table name, the name X is used. mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_44610.result: Bug#44610 RCDFMT clause requested when creating DB2 table Result file for the test case. mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_44610.test: Bug#44610 RCDFMT clause requested when creating DB2 table Test case that confirms that the names that are being generated are valid. storage/ibmdb2i/ha_ibmdb2i.cc: Bug#44610 RCDFMT clause requested when creating DB2 table This patch appends a "RCDFMT <name>" clause to the CREATE TABLE statement that is passed to DB2. <name> is generated from the original name of the table itself. This ensures a consistent and deterministic mapping from the original table. storage/ibmdb2i/ha_ibmdb2i.h: Bug#44610 RCDFMT clause requested when creating DB2 table This patch appends a "RCDFMT <name>" clause to the CREATE TABLE statement that is passed to DB2. <name> is generated from the original name of the table itself. This ensures a consistent and deterministic mapping from the original table.
-