summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Bug#28323: Server crashed in xid cache operationsDavi Arnaut2008-10-216-11/+145
| | | | | | | | | | | | | | | | | | | | | | | | | | The problem was that the server did not robustly handle a unilateral roll back issued by the Resource Manager (RM) due to a resource deadlock within the transaction branch. By not acknowledging the roll back, the server (TM) would eventually corrupt the XA transaction state and crash. The solution is to mark the transaction as rollback-only if the RM indicates that it rolled back its branch of the transaction. mysql-test/r/xa.result: Add test case result for Bug#28323 mysql-test/t/xa.test: Add test case for Bug#28323 sql/handler.cc: Reset XID only at the end of the global transaction. sql/share/errmsg.txt: Add new error codes. sql/sql_class.h: Remember the error reported by the Resource Manager. sql/sql_parse.cc: Rollback the transaction if the Resource Manager reported a error and rolled back its branch of the transaction.
* merge 5.0-bugteam -> bug 38693-5.0-bugteamGeorgi Kodinov2008-10-2015-13/+230
|\
| * Auto commitKristofer Pettersson2008-10-2024-30/+617
| |\
| | * merged 5.0-bugteam -> bug 39958Georgi Kodinov2008-10-173-0/+35
| | |\
| | | * Bug #39844: Query Crash Mysql Server 5.0.67Gleb Shchepa2008-10-163-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Server crashed during a sort order optimization of a dependent subquery: SELECT (SELECT t1.a FROM t1, t2 WHERE t1.a = t2.b AND t2.a = t3.c ORDER BY t1.a) FROM t3; Bitmap of tables, that the reference to outer table column uses, in addition to the regular table bit has the OUTER_REF_TABLE_BIT bit set. The only_eq_ref_tables function traverses this map bit by bit simultaneously with join->map2table list. Obviously join->map2table never contains an entry for the OUTER_REF_TABLE_BIT pseudo-table, so the server crashed there. The only_eq_ref_tables function has been modified to traverse regular table bits only like the update_depend_map function (resetting of the OUTER_REF_TABLE_BIT there is enough, but resetting of the whole set of PSEUDO_TABLE_BITS is used there for sure). mysql-test/r/order_by.result: Added test case for bug #39844. mysql-test/t/order_by.test: Added test case for bug #39844. sql/sql_select.cc: Bug #39844: Query Crash Mysql Server 5.0.67 The only_eq_ref_tables function has been modified to traverse regular table bits only like the update_depend_map function (resetting of the OUTER_REF_TABLE_BIT there is enough, but resetting of the whole set of PSEUDO_TABLE_BITS is used there for sure).
| | * | Bug #39958: Test "windows" lacks a cleanupGeorgi Kodinov2008-10-162-0/+2
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | Added the missing DROP TABLE mysql-test/r/windows.result: Bug #39958: added the missing DROP TABLE mysql-test/t/windows.test: Bug #39958: added the missing DROP TABLE
| | * Bug#37075: offset of limit clause might be truncated on 32-bits server w/o ↵Davi Arnaut2008-10-153-4/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | big tables The problem is that the offset argument of the limit clause might be truncated on a 32-bits server built without big tables support. The truncation was happening because the original 64-bits long argument was being cast to a 32-bits (ha_rows) offset counter. The solution is to check if the conversing resulted in value truncation and if so, the offset is set to the maximum possible value that can fit on the type. mysql-test/r/limit.result: Add test case result for Bug#37075 mysql-test/t/limit.test: Add test case for Bug#37075 sql/sql_lex.cc: Check for truncation of the offset value. If value was truncated, set to the maximum possible value.
| * | automergeKristofer Pettersson2008-10-157-9/+164
| |\ \
| | * | Bug#24289 Status Variable "Questions" gets wrong values with Stored RoutinesKristofer Pettersson2008-10-097-9/+164
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When running Stored Routines the Status Variable "Questions" was wrongly incremented. According to the manual it should contain the "number of statements that clients have sent to the server" Introduced a new status variable 'questions' to replace the query_id variable which currently corresponds badly with the number of statements sent by the client. The new behavior is ment to be backward compatible with 4.0 and at the same time work with new features in a similar way. This is a backport from 6.0 mysql-test/r/status2.result: Added test case mysql-test/t/status2.test: Added test case sql/mysqld.cc: Introduced a new status variable 'questions' to replace the query_id variable which currently corresponds badly with the number of statements sent by the client. sql/sql_class.h: Introduced a new status variable 'questions' to replace the query_id variable which currently corresponds badly with the number of statements sent by the client. sql/sql_parse.cc: To be backward compatible with 4.0 and at the same time extend the interpretation of the Question variable, it should be increased on all COM-commands but COM_STATISTICS, COM_PING, COM_STMT_PREPARE, COM_STMT_CLOSE and COM_STMT_RESET. Since COM_QUERY can process multiple statements, there has to be an extra increase there as well. sql/sql_show.cc: Removed deprecated SHOW_QUESTION status code. sql/structs.h: Removed deprecated SHOW_QUESTION status code.
* | | | Bug #38693: leaked memory with blobs!Georgi Kodinov2008-10-152-0/+13
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If delayed insert fails to upgrade the lock it was not freeing the temporary memory storage used to keep newly constructed blob values in memory. Fixed by iterating over the remaining rows in the delayed insert rowset and freeing the blob storage for each row. No test suite because it involves concurrent delayed inserts on a table and cannot easily be made deterministic. Added a correct valgrind suppression for Fedora 9. mysql-test/valgrind.supp: Added a vagrind suppression for Fedora 9 sql/sql_insert.cc: Bug #38693: free the blobs temp storage on error.
* | | Bug#38823: Invalid memory access when a SP statement does wildcard expansionDavi Arnaut2008-10-143-1/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem is that field names constructed due to wild-card expansion done inside a stored procedure could point to freed memory if the expansion was performed after the first call to the stored procedure. The problem was solved by patch for Bug#38691. The solution was to allocate the database, table and field names in the in the statement memory instead of table memory. mysql-test/r/sp.result: Add test case result for Bug#38823 mysql-test/t/sp.test: Add test case for Bug#38823 sql/item.cc: Remark that this also impacts wildcard expansion inside SPs.
* | | merged 5.0-main -> 5.0-bugteamGeorgi Kodinov2008-10-1010-25/+441
|\ \ \
| * | | Bug#38499: flush tables and multitable table update withGleb Shchepa2008-10-094-1/+240
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | derived table cause crash When a multi-UPDATE command fails to lock some table, and subsequently succeeds, the tables need to be reopened if they were altered. But the reopening procedure failed for derived tables. Extra cleanup has been added. mysql-test/r/lock_multi.result: Added test case for bug #38499. mysql-test/t/lock_multi.test: Added test case for bug #38499. sql/sql_union.cc: Bug#38499: flush tables and multitable table update with derived table cause crash Obsolete assertion has been removed. sql/sql_update.cc: Bug#38499: flush tables and multitable table update with derived table cause crash Extra cleanup for derived tables has been added: 1) unit.cleanup(), 2) unit->reinit_exec_mechanism().
| * | | merged 5.0-5.1.29-rc -> 5.0-bugteamGeorgi Kodinov2008-10-089-24/+201
| |\ \ \ | | |/ / | |/| |
| | * | Bug #38691: segfault/abort in ``UPDATE ...JOIN'' whileGleb Shchepa2008-10-089-24/+201
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ``FLUSH TABLES WITH READ LOCK'' Concurrent execution of 1) multitable update with a NATURAL/USING join and 2) a such query as "FLUSH TABLES WITH READ LOCK" or "ALTER TABLE" of updating table led to a server crash. The mysql_multi_update_prepare() function call is optimized to lock updating tables only, so it postpones locking to the last, and if locking fails, it does cleanup of modified syntax structures and repeats a query analysis. However, that cleanup procedure was incomplete for NATURAL/USING join syntax data: 1) some Field_item items pointed into freed table structures, and 2) the TABLE_LIST::join_columns fields was not reset. Major change: short-living Field *Natural_join_column::table_field has been replaced with long-living Item*. mysql-test/r/lock_multi.result: Added test case for bug #38691. mysql-test/t/lock_multi.test: Added test case for bug #38691. sql/item.cc: Bug #38691: segfault/abort in ``UPDATE ...JOIN'' while ``FLUSH TABLES WITH READ LOCK'' The Item_field constructor has been modified to allocate and copy original database/table/field names always (not during PS preparation/1st execution only), because an initialization of Item_field items with a pointer to short-living Field structures is a common practice. sql/sql_base.cc: Bug #38691: segfault/abort in ``UPDATE ...JOIN'' while ``FLUSH TABLES WITH READ LOCK'' 1) Type adjustment for Natural_join_column::table_field (Field to Item_field); 2) The setup_natural_join_row_types function has been updated to take into account new first_natural_join_processing flag to skip unnecessary reinitialization of Natural_join_column::join_columns during table reopening after lock_tables() failure (like the 'first_execution' flag for PS). sql/sql_lex.cc: Bug #38691: segfault/abort in ``UPDATE ...JOIN'' while ``FLUSH TABLES WITH READ LOCK'' Initialization of the new st_select_lex::first_natural_join_processing flag has been added. sql/sql_lex.h: Bug #38691: segfault/abort in ``UPDATE ...JOIN'' while ``FLUSH TABLES WITH READ LOCK'' The st_select_lex::first_natural_join_processing flag has been added to skip unnecessary rebuilding of NATURAL/USING JOIN structures during table reopening after lock_tables failure. sql/sql_update.cc: Bug #38691: segfault/abort in ``UPDATE ...JOIN'' while ``FLUSH TABLES WITH READ LOCK'' Extra cleanup calls have been added to reset Natural_join_column::table_field items. sql/table.cc: Bug #38691: segfault/abort in ``UPDATE ...JOIN'' while ``FLUSH TABLES WITH READ LOCK'' Type adjustment for Natural_join_column::table_field (Field to Item_field). sql/table.h: Bug #38691: segfault/abort in ``UPDATE ...JOIN'' while ``FLUSH TABLES WITH READ LOCK'' Type of the Natural_join_column::table_field field has been changed from Field that points into short-living TABLE memory to long-living Item_field that can be linked to (fixed) reopened table.
* | | | Bug #37894: Assertion in init_read_record_seq in handler.h line 1444Gleb Shchepa2008-10-103-1/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Select with a "NULL NOT IN" condition containing complex subselect from the same table as in the outer select failed with an assertion. The failure was caused by a concatenation of circumstances: 1) an inner select was optimized by make_join_statistics to use the QUICK_RANGE_SELECT access method (that implies an index scan of the table); 2) a subselect was independent (constant) from the outer select; 3) a condition was pushed down into inner select. During the evaluation of a constant IN expression an optimizer temporary changed the access method from index scan to table scan, but an engine handler was already initialized for index access by make_join_statistics. That caused an assertion. Unnecessary index initialization has been removed from the QUICK_RANGE_SELECT::init method (QUICK_RANGE_SELECT::reset reinvokes this initialization). mysql-test/r/subselect3.result: Added test case for bug #37894. mysql-test/t/subselect3.test: Added test case for bug #37894. sql/opt_range.cc: Bug #37894: Assertion in init_read_record_seq in handler.h line 1444 Unnecessary index initialization has been removed from the QUICK_RANGE_SELECT::init method (QUICK_RANGE_SELECT::reset reinvokes this initialization).
* | | | Bug #39283: Date returned as VARBINARY to client for queriesGleb Shchepa2008-10-103-0/+35
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | with COALESCE and JOIN The server returned to a client the VARBINARY column type instead of the DATE type for a result of the COALESCE, IFNULL, IF, CASE, GREATEST or LEAST functions if that result was filesorted in an anonymous temporary table during the query execution. For example: SELECT COALESCE(t1.date1, t2.date2) AS result FROM t1 JOIN t2 ON t1.id = t2.id ORDER BY result; To create a column of various date/time types in a temporary table the create_tmp_field_from_item() function uses the Item::tmp_table_field_from_field_type() method call. However, fields of the MYSQL_TYPE_NEWDATE type were missed there, and the VARBINARY columns were created by default. Necessary condition has been added. mysql-test/r/metadata.result: Added test case for bug #39283. mysql-test/t/metadata.test: Added test case for bug #39283. sql/sql_select.cc: Bug #39283: Date returned as VARBINARY to client for queries with COALESCE and JOIN To create a column of various date/time types in a temporary table the create_tmp_field_from_item() function uses the Item::tmp_table_field_from_field_type() method call. However, fields of the MYSQL_TYPE_NEWDATE type were missed there, and the VARBINARY columns were created by default. Necessary condition has been added.
* | | merged 5.0-5.1.29-rc -> 5.0-bugteamGeorgi Kodinov2008-10-076-8/+82
|\ \ \ | |/ /
| * | mergeRamil Kalimullin2008-10-0242-209/+885
| |\ \
| * | | Fix for bug#39182: Binary log producing incompatible character set queryRamil Kalimullin2008-10-016-8/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | from stored procedure. Problem: we replace all references to local variables in stored procedures with NAME_CONST(name, value) logging to the binary log. However, if the value's collation differs we might get an 'illegal mix of collation' error as we don't pass the collation to the function. Fix: pass the value's collation to NAME_CONST(). Note: actually we should pass to NAME_CONST() the value's derivation as well. It's impossible without the parser modifying. Now we always set the derivation to DERIVATION_IMPLICIT, the same as local variables have. mysql-test/r/binlog.result: Fix for bug#39182: Binary log producing incompatible character set query from stored procedure. - test result. mysql-test/r/ctype_cp932_binlog.result: Fix for bug#39182: Binary log producing incompatible character set query from stored procedure. - results adjusted. mysql-test/r/rpl_sp.result: Fix for bug#39182: Binary log producing incompatible character set query from stored procedure. - results adjusted. mysql-test/t/binlog.test: Fix for bug#39182: Binary log producing incompatible character set query from stored procedure. - test case. sql/item.cc: Fix for bug#39182: Binary log producing incompatible character set query from stored procedure. - allow NAME_CONST() to get _charset'foo' COLLATE 'bar' strings (see Item_func_set_collation). sql/sp_head.cc: Fix for bug#39182: Binary log producing incompatible character set query from stored procedure. - pass the value's collation to NAME_CONST().
* | | | Fix autoconf substitution and evaluation of a string inside single quotesChad MILLER2008-10-061-9/+10
| | | | | | | | | | | | | | | | | | | | so that if the substitution contains single-quotes, the program will fail.
* | | | Merge fix for bug 11122.Chad MILLER2008-10-061-15/+18
|\ \ \ \
| * | | | Remove part of comment for b-g#11122 that is no longer true.Chad MILLER2008-10-061-6/+1
| | | | |
| * | | | Bug#11122: Server won't always start when cold-booting after a crashChad MILLER2008-10-021-15/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The grep expression that finds a running "mysqld" program fails if the "mysqld_safe" is running with the same PID. Now, excise "ps" output that has the word " grep" or "mysqld_safe" in it, to be a little more certain that the matched process is not a false positive hit. This will fail when the path to mysqld contains either of those two names, which should be acceptable. Additionally, some text to search could be truncated if very long. Expand the number of lines "ps" emits.
* | | | | Merge fix for join-testcase failure.Chad MILLER2008-10-062-6/+6
|\ \ \ \ \
| * | | | | Fix for test for b-g#35754 which fails based on hostname ?= "localhost".Chad MILLER2008-10-062-6/+6
| | | | | |
* | | | | | Merge of fixes for Bug#38427 and Bug#38762 into actual treeMatthias Leich2008-10-043-1/+24
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | (no conflicts)
| * | | | | | Fix for Bug#38427 "Data too long" in some configurations,Matthias Leich2008-10-021-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tests "<ENGINE>_func_view" fail
| * | | | | | Fix for Bug#38762 main.federated_bug_25714 fails sporadicallyMatthias Leich2008-10-022-0/+17
| | | | | | |
* | | | | | | Merge fix for Bug#35754.Chad MILLER2008-10-035-23/+27
|\ \ \ \ \ \ \ | | |/ / / / / | |/| | | | |
| * | | | | | Bug#35754: mysql_install_db does not work if no hostname is setChad MILLER2008-09-245-23/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Machines with hostname set to "localhost" cause uniqueness errors in the SQL bootstrap data. Now, insert zero lines for cases where the (lowercased) hostname is the same as an already-inserted 'localhost' name. Also, fix a few tests that expect certain local accounts to have a certain host name.
* | | | | | | mergeVladislav Vaintroub2008-10-025-2/+41
|\ \ \ \ \ \ \
| * | | | | | | Bug#35924 DEFINER should be stored 'quoted' in I_SSergey Glukhov2008-10-025-2/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The '@' symbol can not be used in the host name according to rfc952. The fix: added function check_host_name(LEX_STRING *str) which checks that all symbols in host name string are valid and host name length is not more than max host name length (just moved check_string_length() function from the parser into check_host_name()). mysql-test/r/create.result: test result mysql-test/t/create.test: test case sql/mysql_priv.h: added function check_host_name(LEX_STRING *str) sql/sql_parse.cc: added function check_host_name(LEX_STRING *str) which checks that all symbols in host name string are valid and host name length is not more than max host name length(HOSTNAME_LENGTH). sql/sql_yacc.yy: using newly added function check_host_name()
* | | | | | | | Bug #38629 Vladislav Vaintroub2008-10-021-1/+10
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysql-test-run.pl --start-and-exit starts but does not exit Instead, it hangs with ActiveState perl. The error is believed to be a bug in ActiveState implementation. Workaround is using POSIX::_exit, as described here http://www.perlmonks.org/?node_id=334610 Thanks to Philip Stoev for the idea of the patch.
* | | | | | | Bug#22763 Disrepancy between SHOW CREATE VIEW and I_S.VIEWSSergey Glukhov2008-10-023-0/+72
| |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem: I_S views table does not check the presence of SHOW_VIEW_ACL|SELECT_ACL privileges for a view. It leads to discrepancy between SHOW CREATE VIEW and I_S.VIEWS. The fix: added appropriate check. mysql-test/r/information_schema_db.result: test result mysql-test/t/information_schema_db.test: test case sql/sql_show.cc: The problem: I_S views table does not check the presence of SHOW_VIEW_ACL|SELECT_ACL privileges for a view. It leads to discrepancy between SHOW CREATE VIEW and I_S.VIEWS. The fix: added appropriate check.
* | | | | | Bug#37943: Reproducible mysqld crash/sigsegv in sel_trees_can_be_oredGeorgi Kodinov2008-10-013-1/+98
| |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When analyzing the possible index use cases the server was re-using an internal structure. This is wrong, as this internal structure gets updated during the analysis. Fixed by making a copy of the internal structure for every place it needs to be used. Also stopped the generation of empty SEL_TREE structures that unnecessary complicate the analysis. mysql-test/r/index_merge.result: Bug#37943: test case mysql-test/t/index_merge.test: Bug#37943: test case sql/opt_range.cc: Bug#37943: - Make copy constructors for SEL_TREE and sub-structures and use them when OR-ing trees. - don't generate empty SEL_TREEs. Return NULL instead.
* | | | | fixed a failure in symlink.test caused by replacing rm with remove_fileGeorgi Kodinov2008-10-011-1/+5
| | | | |
* | | | | fixed a wrong directory in distinct.testGeorgi Kodinov2008-10-011-2/+2
| | | | |
* | | | | merged 5.0-main -> 5.0-bugteamGeorgi Kodinov2008-10-011-2/+2
|\ \ \ \ \
| * | | | | Raise version number after cloning 5.0.70unknown2008-09-191-2/+2
| | | | | |
* | | | | | merged 5.0-5.1.29-rc into 5.0-bugteamGeorgi Kodinov2008-10-015-13/+38
|\ \ \ \ \ \ | | |_|_|_|/ | |/| | | |
| * | | | | merged 5.0-5.1.29-rc into B39353 treeGeorgi Kodinov2008-09-1917-907/+102
| |\ \ \ \ \
| | * \ \ \ \ auto-mergeTatiana A. Nurnberg2008-09-1615-895/+84
| | |\ \ \ \ \ | | | |/ / / /
| | * | | | | Bug#31434 mysqldump dumps view as tableTatiana A. Nurnberg2008-09-112-12/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysqldump creates stand-in tables before dumping the actual view. Those tables were of the default type; if the view had more columns than that (a pathological case, arguably), loading the dump would fail. We now make the temporary stand-ins MyISAM tables to prevent this. client/mysqldump.c: When creating a stand-in table, specify its type to avoid defaulting to a type with a column-number limit (like Inno). The type is always MyISAM as we know that to be available. mysql-test/r/mysqldump.result: mysqldump sets engine-type (MyISAM) for stand-in tables for views now. Update test results.
| * | | | | | Bug #39353: Multiple conditions on timestamp column crashes serverGeorgi Kodinov2008-09-183-1/+20
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The fix for bug 31887 was incomplete : it assumes that all the field types returned by the IS_NUM macro are descendants of Item_num and tries to zero-fill the values before doing constant substitution with such fields when they are compared to constant string values. The only exception to this is Field_timestamp : it's in the IS_NUM macro, but is not a descendant of Field_num. Fixed by excluding timestamp fields (Field_timestamp) when zero-filling when converting the constant to compare with to a string. Note that this will not exclude the timestamp columns from const propagation. mysql-test/r/compare.result: Bug #39353: test case mysql-test/t/compare.test: Bug #39353: test case sql/item.cc: Bug #39353: don't zero-fill timestamp fields when const propagating to a string : they'll be converted to a string in a date/time format and not as an integer.
* | | | | | Bug#38311 Some tests use 'rm' which is not portablePatrick Crews2008-09-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Repush of change to fix tests on Pushbuild.
* | | | | | automergePatrick Crews2008-09-304-11/+39
|\ \ \ \ \ \
| * | | | | | Fixed bug #17823: 'arc' directories inside database directories.Gleb Shchepa2008-09-304-11/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Server created "arc" directories inside database directories and maintained there useless copies of .frm files. Creation and renaming procedures of those copies as well as creation of "arc" directories has been discontinued. Removal procedure has been kept untouched to be able to cleanup existent database directories by the DROP DATABASE query. Also view renaming procedure has been updated to remove these directories. sql/parse_file.cc: Fixed bug #17823: 'arc' directories inside database directories. View/table creation and renaming procedures maintained backup copies of .frm files. Those copies are unused yet, so this feature was incomplete and unnecessary. 1. Unwanted code has been hidden by FRM_ARCHIVE ifdefs (the FRM_ARCHIVE macro is not defined). 2. Renaming procedure has been modified to remove obsolete "arc" directories. sql/parse_file.h: Fixed bug #17823: 'arc' directories inside database directories. The "thd" parameter has been added to the rename_in_schema_file() function. sql/sql_db.cc: Fixed bug #17823: 'arc' directories inside database directories. Scope of the mysql_rm_arc_files() function has been changed to global for use from the parse_file.cc file. sql/sql_view.cc: Fixed bug #17823: 'arc' directories inside database directories. Added the "thd" argument to rename_in_schema_file() calls.
* | | | | | | AutomergePatrick Crews2008-09-307-3/+68
|\ \ \ \ \ \ \ | |/ / / / / /
| * | | | | | Bug#37949 Crash if argument to SP is a subquery that returns more than one row Alexey Botchkov2008-09-293-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JOIN for the subselect wasn't cleaned if we came upon an error during sub_select() execution. That leads to the assertion failure in close_thread_tables() part of the 6.0 code backported per-file comments: mysql-test/r/sp-error.result Bug#37949 Crash if argument to SP is a subquery that returns more than one row test result mysql-test/t/sp-error.test Bug#37949 Crash if argument to SP is a subquery that returns more than one row test case sql/sp_head.cc Bug#37949 Crash if argument to SP is a subquery that returns more than one row lex->unit.cleanup() call added if not substatement