summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-optunknown2007-06-031-2/+2
|\ | | | | | | | | | | into moonbone.local:/mnt/gentoo64/work/test-5.0-opt-mysql
| * item_func.cc:unknown2007-06-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Post fix for bug#28494. The Item_func_set_user_var::check method now silently doesn't use result_field if it isn't defined. sql/item_func.cc: Post fix for bug#28494. The Item_func_set_user_var::check method now silently doesn't use result_field if it isn't defined.
* | Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-optunknown2007-06-024-5/+52
|\ \ | |/ | | | | | | | | into moonbone.local:/mnt/gentoo64/work/test-5.0-opt-mysql
| * Bug#28494: Grouping by Item_func_set_user_var produces incorrect result.unknown2007-06-024-5/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an additional fix. Item::val_xxx methods are supposed to use original data source and Item::val_xxx_result methods to use the item's result field. But for the Item_func_set_user_var class val_xxx_result methods were mapped to val_xxx methods. This leads, in particular, to producing bad sort keys and thus wrong order of the result set of queries with group by/order by clauses. The set of val_xxx_result methods is added to the Item_func_set_user_var class. It's the same as the val_xxx set of method but uses the result_field to return a value. mysql-test/t/user_var.test: Corrected test case for hte bug#28494. mysql-test/r/user_var.result: Corrected test case for hte bug#28494. sql/item_func.cc: Bug#28494: Grouping by Item_func_set_user_var produces incorrect result. The set of val_xxx_result methods is added to the Item_func_set_user_var class. It's the same as the val_xxx set of method but uses the result_field to return a value. sql/item_func.h: Bug#28494: Grouping by Item_func_set_user_var produces incorrect result. The set of val_xxx_result methods is added to the Item_func_set_user_var class.
* | Post-merge fix.unknown2007-06-011-102/+7
| |
* | Merge bk-internal.mysql.com:/data0/bk/mysql-5.0unknown2007-06-0243-144/+814
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into bk-internal.mysql.com:/data0/bk/mysql-5.0-opt mysql-test/r/sp.result: Auto merged mysql-test/t/sp.test: Auto merged mysql-test/t/strict.test: Auto merged mysql-test/t/subselect3.test: Auto merged sql/mysqld.cc: Auto merged sql/sp_head.cc: Auto merged sql/sql_base.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_table.cc: Auto merged sql/sql_update.cc: Auto merged sql/sql_view.cc: Manual merge
| * Fix more mysqltest warnings.unknown2007-06-012-10/+3
| |
| * Do not ignore mysqltest language interpreter warnings.unknown2007-06-011-1/+0
| |
| * Fix a typo in the test case.unknown2007-06-012-4/+2
| | | | | | | | | | | | | | mysql-test/r/rpl_loaddata.result: Update result. mysql-test/t/rpl_loaddata.test: Fix a typo in the test file.
| * Fix some mysqltest warnings.unknown2007-06-017-9/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysql-test/r/sp.result: Update results. mysql-test/t/mysql.test: Fix a typo. mysql-test/t/mysqltest.test: Fix a typo. mysql-test/t/order_by.test: Fix a typo. mysql-test/t/row.test: Remove an unsupported command. mysql-test/t/sp.test: Fix a typo. mysql-test/t/subselect3.test: Fix mysqltest warnings - now it warns when sees some suspicious -- comment
| * Merge lthalmann@bk-internal.mysql.com:/home/bk/mysql-5.0-runtimeunknown2007-05-3122-104/+299
| |\ | | | | | | | | | | | | | | | | | | | | | into mysql.com:/nfsdisk1/lars/bk/mysql-5.0-rpl mysql-test/t/disabled.def: Auto merged
| | * Disable IM-tests.unknown2007-05-301-0/+3
| | |
| | * Merge adventure.(none):/home/thek/Development/cpp/bug24988/my50-bug24988unknown2007-05-292-8/+13
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | into adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime sql/mysqld.cc: Auto merged
| | | * Bug#24988 FLUSH PRIVILEGES causes brief unavailabilityunknown2007-05-282-8/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - A race condition caused brief unavailablility when trying to acccess a table. - The unprotected variable 'grant_option' wasn't intended to alternate during normal execution. Variable initialization moved to grant_init a lines responsible for the alternation are removed. sql/mysqld.cc: - Added documentation to describe grant_option flag. sql/sql_acl.cc: - This patch removes lines which causes grant_option to alternate and moves variable initialization to the grant_init()-function.
| | * | Code review commentsunknown2007-05-251-2/+2
| | | | | | | | | | | | | | | | | | | | sql/sql_lex.cc: Fixed parenthese typo, found during code review
| | * | Bug#27876 (SF with cyrillic variable name fails during execution (regression))unknown2007-05-255-6/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The root cause of this bug is related to the function skip_rear_comments, in sql_lex.cc Recent code changes in skip_rear_comments changed the prototype from "const uchar*" to "const char*", which had an unforseen impact on this test: (endp[-1] < ' ') With unsigned characters, this code filters bytes of value [0x00 - 0x20] With *signed* characters, this also filters bytes of value [0x80 - 0xFF]. This caused the regression reported, considering cyrillic characters in the parameter name to be whitespace, and truncated. Note that the regression is present both in 5.0 and 5.1. With this fix: - [0x80 - 0xFF] bytes are no longer considered whitespace. This alone fixes the regression. In addition, filtering [0x00 - 0x20] was found bogus and abusive, so that the code now filters uses my_isspace when looking for whitespace. Note that this fix is only addressing the regression affecting UTF-8 in general, but does not address a more fundamental problem with skip_rear_comments: parsing a string *backwards*, starting at end[-1], is not safe with multi-bytes characters, so that end[-1] can confuse the last byte of a multi-byte characters with a characters to filter out. The only known impact of this remaining issue affects objects that have to meet all the conditions below: - the object is a FUNCTION / PROCEDURE / TRIGGER / EVENT / VIEW - the body consist of only *1* instruction, and does *not* contain a BEGIN-END block - the instruction ends, lexically, with <ident> <whitespace>* ';'? For example, "select <ident>;" or "return <ident>;" - The last character of <ident> is a multi-byte character - the last byte of this character is ';' '*', '/' or whitespace In this case, the body of the object will be truncated after parsing, and stored in an invalid format. This last issue has not been fixed in this patch, since the real fix will be implemented by Bug 25411 (trigger code truncated), which is caused by the very same code. The real problem is that the function skip_rear_comments is only a work-around, and should be removed entirely: see the proposed patch for bug 25411 for details. sql/sp_head.cc: In skip_rear_comments, Filter out only whitespace, not other (non ascii or control) valid characters sql/sql_lex.cc: In skip_rear_comments, Filter out only whitespace, not other (non ascii or control) valid characters sql/sql_lex.h: In skip_rear_comments, Filter out only whitespace, not other (non ascii or control) valid characters sql/sql_view.cc: In skip_rear_comments, Filter out only whitespace, not other (non ascii or control) valid characters tests/mysql_client_test.c: Bug#27876 (SF with cyrillic variable name fails during execution (regression))
| | * | Merge bk-internal.mysql.com:/home/bk/mysql-5.0unknown2007-05-2414-90/+210
| | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into vajra.(none):/opt/local/work/mysql-5.0-runtime sql/mysql_priv.h: Auto merged sql/sql_base.cc: Auto merged
| | | * | 5.0 version of fix for:unknown2007-05-237-77/+146
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug #23667 "CREATE TABLE LIKE is not isolated from alteration by other connections" Bug #18950 "CREATE TABLE LIKE does not obtain LOCK_open" As well as: Bug #25578 "CREATE TABLE LIKE does not require any privileges on source table". The first and the second bugs resulted in various errors and wrong binary log order when one tried to execute concurrently CREATE TABLE LIKE statement and DDL statements on source table or DML/DDL statements on its target table. The problem was caused by incomplete protection/table-locking against concurrent statements implemented in mysql_create_like_table() routine. We solve it by simply implementing such protection in proper way (see comment for sql_table.cc for details). The third bug allowed user who didn't have any privileges on table create its copy and therefore circumvent privilege check for SHOW CREATE TABLE. This patch solves this problem by adding privilege check, which was missing. Finally it also removes some duplicated code from mysql_create_like_table(). Note that, altough tests covering concurrency-related aspects of CREATE TABLE LIKE behaviour will only be introduced in 5.1, they were run manually for this patch as well. mysql-test/r/grant2.result: Added test for bug#25578 "CREATE TABLE LIKE does not require any privileges on source table". mysql-test/t/grant2.test: Added test for bug#25578 "CREATE TABLE LIKE does not require any privileges on source table". sql/handler.h: Introduced new flag for HA_CREATE_INFO::options in order to be able to distinguish CREATE TABLE ... LIKE from other types of CREATE TABLE. sql/mysql_priv.h: mysql_create_like_table() now takes source table name not as a Table_ident object but as regular table list element. sql/sql_parse.cc: CREATE TABLE ... LIKE implementation now uses statement's table list for storing information about the source table. We also use flag in LEX::create_info.options for distinguishing it from other types of CREATE TABLE. Finally CREATE TABLE ... LIKE now requires the same privileges on the source tables as SHOW CREATE TABLE. Moved this privilege check to check_show_create_table_access() function. sql/sql_table.cc: mysql_create_like_table(): - Provided proper protection from concurrent statements. This is achieved by keeping name-lock on the source table and holding LOCK_open mutex during whole operation. This gives protection against concurrent DDL on source table. Also holding this mutex makes copying of .frm file, call to ha_create_table() and binlogging atomic against concurrent DML and DDL operations on target table. - Get rid of duplicated code related to source database/table name handling. All these operations are already done in st_select_lex::add_table_to_list(), so we achieve the same effect by including source table into the statement's table list. sql/sql_yacc.yy: Now we use special flag in LEX::create_info::options for distinguishing CREATE TABLE ... LIKE from other types of CREATE TABLE and store name of source table as regular element in statement's table list.
| | | * | Bug #27907 "Misleading error message when opening/locking tables"unknown2007-05-187-13/+64
| | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adjust the check that defines the error message to be returned. mysql-test/r/sp-error.result: Update results (more accurate error code) mysql-test/r/sp-prelocking.result: Update results (more accurate error code) mysql-test/r/trigger.result: Update results (more accurate error code) mysql-test/t/sp-error.test: ER_NOT_LOCKED -> ER_NO_SUCH_TABLE mysql-test/t/sp-prelocking.test: Add a test case for Bug#27907 mysql-test/t/trigger.test: ER_NOT_LOCKED -> ER_NO_SUCH_TABLE sql/sql_base.cc: Adjust the check for where-we-are for a better error message.
| * | | bug#22725 unknown2007-05-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | refining the test because of Bug #28786 'reset master' does not reset binlogging on embeded server mysql-test/t/binlog_killed.test: the test can not pass on embedded server. Setting the include-guard.
| * | | bug#22725unknown2007-05-302-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | test comments correction mysql-test/r/binlog_killed.result: changed mysql-test/t/binlog_killed.test: wrong comments (but important ones) left; little refinement in result calc
| * | | bug#22725unknown2007-05-302-31/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | combining the final result variable in such way that either option of the test execution will yield zero. mysql-test/r/binlog_killed.result: results changed mysql-test/t/binlog_killed.test: there are two options for the test passing: 1. no rows inserted and the INSERT gets killed, then there is no INSERT query in binlog 2. all rows inserted, then INSERT gets to binlog and error_code is zero
| * | | bug#22725unknown2007-05-292-5/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tests refining, see binlog_killed.test file for details mysql-test/r/binlog_killed.result: results changed mysql-test/t/binlog_killed.test: killer conn waits for the first row to appear; log-disabling kill query since prey's id is not deterministic; correcting pattern to search in binlog for insert query;
| * | | bug#22725unknown2007-05-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | refining the test. mysql-test/t/binlog_killed.test: due to killing reap may catch an error though it's indeterministic.
| * | | bug#22725unknown2007-05-291-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | result file updated mysql-test/r/binlog_killed.result: results updated
| * | | Bug#22725 Replication outages from ER_SERVER_SHUTDOWN (1053) set in ↵unknown2007-05-293-112/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | replication events Refining the tests since pb revealed the older version's fragality - the error from SF() due to killed may be different on different env:s. DBUG_ASSERT instead of assert. mysql-test/r/binlog_killed.result: new result file mysql-test/t/binlog_killed.test: regression for bug#22725 simplified. tests for bug27563, BUG#27565 made inactive. sql/sql_insert.cc: DBUG_ASSERT
| * | | Bug#22725 Replication outages from ER_SERVER_SHUTDOWN (1053) set in ↵unknown2007-05-287-9/+406
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | replication events The reason for the bug was that replaying of a query on slave could not be possible since its event was recorded with the killed error. Due to the specific of handling INSERT, which per-row-while-loop is unbreakable to killing, the query on transactional table should have not appeared in binlog unless there was a call to a stored routine that got interrupted with killing (and then there must be an error returned out of the loop). The offered solution added the following rule for binlogging of INSERT that accounts the above specifics: For INSERT on transactional-table if the error was not set the only raised flag is harmless and is ignored via masking out on time of creation of binlog event. For both table types the combination of raised error and KILLED flag indicates that there was potentially partial execution on master and consistency is under the question. In that case the code continues to binlog an event with an appropriate killed error. The fix relies on the specified behaviour of stored routine that must propagate the error to the top level query handling if the thd->killed flag was raised in the routine execution. The patch adds an arg with the default killed-status-unset value to Query_log_event::Query_log_event. sql/log_event.cc: killed_status as the value of thd->killed can be passed as an arg to the constructor. if the value is different from the default the arg is set to the current thd->killed value. A caller might need to masquerade thd->killed with THD::NOT_KILLED. So far only mysql_insert() uses such explicit way to tell the constructor about killing status. sql/log_event.h: default arg to the constructor with meaning of killed status of the query. if the arg is not explicitly provided the status of thd->killed will be snapshot inside of the constuctor, which is potentially incorrect (see bug#27571) sql/sql_class.h: extending killed_state with no-state member. sql/sql_insert.cc: ignore the KILLED flag incl KILL_BAD_DATA when the INSERT query event is created without an `error'; sql/sql_update.cc: Suggestion how to fix bug#27571 as comments. mysql-test/r/binlog_killed.result: new result file mysql-test/t/binlog_killed.test: regression tests also apply for bug27563, BUG#27565
| * | | Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rplunknown2007-05-286-12/+48
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge mysql-test/mysql-test-run.pl: Auto merged mysql-test/t/disabled.def: Auto merged sql/sql_load.cc: Auto merged
| | * | | Bug#27636 mysqlbinlog-cp932 and ctype_cp932 tests fails if LC_* variables ↵unknown2007-05-231-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | set to *_*.UTF-8 As MySQL character set tests can print results in many character sets (latin1, utf8-8, sjis, cp932 and others) - its output can be incompatible with the current locale settings, which makes PERL confuse. Fix: reset LC_ALL and LC_CTYPE to "C", which is compatible with any character set. mysql-test/mysql-test-run.pl: Ignore current locale settings, because "mysqltest" output can be not compatible with the locale.
| | * | | BUG#17233 : LOAD DATA INFILE: failure causes mysqld dbug_assert, binlog not ↵unknown2007-05-111-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | flushed This patch enables the NDB test ndb_load that was previously disabled as a result of the LOAD DATA INFILE bug reported in BUG#17233.
| | * | | Fixing crash when compiled using -DNEW_HASH_FUNCTIONSunknown2007-05-081-8/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (an experimental feature).
| | * | | BUG#17233 : LOAD DATA INFILE: failure causes mysqld dbug_assert, binlog not ↵unknown2007-05-073-3/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | flushed This patch corrects a bug involving a LOAD DATA INFILE operation on a transactional table. It corrects a problem in the error handler moving the transactional table check and autocommit_or_rollback operation to the end of the error handler. An additional test case was added to detect this condition. mysql-test/r/rpl_loaddata.result: BUG#17233 : LOAD DATA INFILE: failure causes mysqld dbug_assert, binlog not flushed This patch adds the results for the additional test for properly handling the duplicate key error on LOAD DATA INFILE. mysql-test/t/rpl_loaddata.test: BUG#17233 : LOAD DATA INFILE: failure causes mysqld dbug_assert, binlog not flushed This patch adds an additional test to rpl_loaddata for handling the duplicate key error on LOAD DATA INFILE. sql/sql_load.cc: BUG#17233 : LOAD DATA INFILE: failure causes mysqld dbug_assert, binlog not flushed This patch moves the check for a transactional table and rollback in the error handler for mysql_load(). The patch moves the transactional table check to the end of the error handler matching the implementation for other similar operations (see sql_insert).
* | | | | Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-optunknown2007-06-0149-236/+730
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into magare.gmz:/home/kgeorge/mysql/autopush/B28366-5.0-opt-win
| * \ \ \ \ Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-optunknown2007-06-015-18/+178
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into gleb.loc:/home/uchum/work/bk/mysql-5.0-opt
| | * \ \ \ \ Merge gleb.loc:/home/uchum/work/bk/mysql-5.0-opt-27827-freshunknown2007-06-014-17/+177
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into gleb.loc:/home/uchum/work/bk/mysql-5.0-opt mysql-test/r/view.result: Merge with bug #27827 fix. mysql-test/t/view.test: Merge with bug #27827 fix.
| | | * | | | | Fixed bug #27827.unknown2007-06-014-17/+177
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ON conditions from JOIN expression were ignored at CHECK OPTION check when updating a multi-table view with CHECK OPTION. The st_table_list::prep_check_option function has been modified to to take into account ON conditions at CHECK OPTION check It was also changed to build the check option condition only once for any update used in PS/SP. sql/table.h: Fixed bug #27827. The st_table_list::check_option_processed variable has been added to build the check option condition only once for any update used in PS/SP. sql/table.cc: Fixed bug #27827. The st_table_list::prep_check_option function has been modified to to take into account ON conditions at CHECK OPTION check It was also changed to build the check option condition only once for any update used in PS/SP. mysql-test/t/view.test: Updated test case for bug #27827. mysql-test/r/view.result: Updated test case for bug #27827.
| | * | | | | | sql_view.cc:unknown2007-06-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Additional patch for bug #28244 to workaround valgrind warnings. sql/sql_view.cc: Additional patch for bug #28244 to workaround valgrind warnings.
| * | | | | | | Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-optunknown2007-06-014-3/+26
| |\ \ \ \ \ \ \ | | |/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into moonbone.local:/mnt/gentoo64/work/28494-bug-5.0-opt-mysql
| | * | | | | | Bug#28494: Grouping by Item_func_set_user_var produces incorrect result.unknown2007-06-014-3/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The end_update() function uses the Item::save_org_in_field() function to save original values of items into the group buffer. But for the Item_func_set_user_var this method was mapped to the save_in_field method. The latter function wrongly decides to use the result_field. This leads to saving incorrect value in the grouping buffer and wrong result of the whole query. The can_use_result_field argument of the bool type is added to the Item_func_set_user_var::save_in_field() function. If it is set to FALSE then the item's result field won't be used. Otherwise it will be detected whether the result field will be used (old behaviour). Two wrapping functions for the function above are added to the Item_func_set_user_var class: the save_in_field(Field *field, bool no_conversions) - it calls the above function with the can_use_result_field set to TRUE. the save_org_in_field(Field *field) - same, but the can_use_result_field is set to FALSE. mysql-test/t/user_var.test: Added a test case for the bug#28494: Grouping by Item_func_set_user_var produces incorrect result. mysql-test/r/user_var.result: Added a test case for the bug#28494: Grouping by Item_func_set_user_var produces incorrect result. sql/item_func.cc: Bug#28494: Grouping by Item_func_set_user_var produces incorrect result. The can_use_result_field argument of the bool type is added to the Item_func_set_user_var::save_in_field() function. If it is set to FALSE then the item's result field won't be used. Otherwise it will be detected whether the result field will be used (old behaviour). sql/item_func.h: Bug#28494: Grouping by Item_func_set_user_var produces incorrect result. The can_use_result_field argument of the bool type is added to the Item_func_set_user_var::save_in_field() function. Two wrapping functions for the function above are added to the Item_func_set_user_var class: the save_in_field(Field *field, bool no_conversions) - it calls the above function with the can_use_result_field set to TRUE. the save_org_in_field(Field *field) - same, but the can_use_result_field is set to FALSE.
| * | | | | | | Merge gleb.loc:/home/uchum/work/bk/mysql-5.0-optunknown2007-05-311-1/+1
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into gleb.loc:/home/uchum/work/bk/mysql-5.0-opt-28244
| | * | | | | | | sql_view.cc:unknown2007-05-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch to eliminate compilation warning. sql/sql_view.cc: Patch to eliminate warning.
| * | | | | | | | Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-optunknown2007-05-313-57/+90
| |\ \ \ \ \ \ \ \ | | |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into gleb.loc:/home/uchum/work/bk/mysql-5.0-opt
| | * | | | | | | Merge gleb.loc:/home/uchum/work/bk/mysql-5.0-optunknown2007-05-313-57/+90
| | |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into gleb.loc:/home/uchum/work/bk/mysql-5.0-opt-28244
| | | * | | | | | | Fixed bug #28244.unknown2007-05-313-57/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the same VIEW was created at the master side twice, malformed (truncated after the word 'AS') query string was forwarded to client side, so error messages on the master and client was different, and replication was broken. The mysql_register_view function call failed too early: fields of `view' output argument of this function was not filled yet with correct data required for query replication. The mysql_register_view function also copied pointers to local buffers into a memory allocated by the caller. sql/sql_view.cc: Fixed bug #28244. Checking of existence of VIEW .frm file has been moved down to the place, when `view' argument is completely filled with proper data. view->query.str and view->query.md5 pointers has been set to the NULL before return from the mysql_register_view function. mysql-test/t/rpl_view.test: Updated test case for bug #28244. mysql-test/r/rpl_view.result: Updated test case for bug #28244.
| * | | | | | | | | Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-optunknown2007-05-313-40/+108
| |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into gleb.loc:/home/uchum/work/bk/mysql-5.0-opt-28598 sql/sql_select.cc: Auto merged
| | * | | | | | | | | Fixed bug #28598.unknown2007-05-313-40/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysqld crashed when a long-running explain query was killed from another connection. When the current thread caught a kill signal executing the function best_extension_by_limited_search it just silently returned to the calling function greedy_search without initializing elements of the join->best_positions array. However, the greedy_search function ignored thd->killed status after a calls to the best_extension_by_limited_search function, and after several calls the greedy_search function used an uninitialized data from the join->best_positions[idx] to search position in the join->best_ref array. That search failed, and greedy_search tried to call swap_variables function with NULL argument - that caused a crash. sql/sql_select.cc: Fixed bug #28598. choose_plan(), greedy_search(), best_extension_by_limited_search() and find_best() functions have been changed to return TRUE in case of fatal error. mysql-test/t/kill.test: Updated test case for bug #28598. mysql-test/r/kill.result: Updated test case for bug #28598.
| * | | | | | | | | | Bug#28729: Field_enum wrongly reported an error while storing an empty string.unknown2007-05-303-0/+17
| | |_|_|/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ENUM fields internally store their values as integers and may use integer values as indexes to their values. Invalid values are mapped to zero value. When storing an empty string the ENUM field fails to find an appropriate value and tries to convert the provided string to integer. The conversion also fails and error is returned even if the thd->count_cuted_fields is set to CHECK_FIELD_IGNORE. This makes the range optimizer wrongly decide that an impossible range is present. Now the Field_enum::store() returns error while storing an empty string only if the thd->count_cuted_fields isn't set to CHECK_FIELD_IGNORE. sql/field.cc: Bug#28729: Field_enum wrongly reported an error while storing an empty string. Now the Field_enum::store() returns error while storing an empty string only if the thd->count_cuted_fields isn't set to CHECK_FIELD_IGNORE. mysql-test/r/type_enum.result: Added a test case for the bug#28729: Field_enum wrongly reported an error while storing an empty string. mysql-test/t/type_enum.test: Added a test case for the bug#28729: Field_enum wrongly reported an error while storing an empty string.
| * | | | | | | | | Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.0-optunknown2007-05-302-1/+9
| |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into dl145s.mysql.com:/users/mhansson/mysql/autopush/my50-bug28250 sql/item_func.cc: Auto merged
| | * | | | | | | | | Bug #28250: Run-Time Check Failure #3 - The variable 'value' is unknown2007-05-232-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | being used without being def Inside method Item_func_unsigned::val_int, the variable value can be returned without being initialized when the CAST argument is of type DECIMAL and has a NULL value. This gives a run-time error when building debug binaries using Visual C++ 2005. Solution: Initialize value to 0 mysql-test/t/cast.test: bug#28250: There is no need for an extra test case, but we recognize that this one catches the bug. sql/item_func.cc: bug#28250: initialization of value.
| * | | | | | | | | | Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0-optunknown2007-05-3019-46/+45
| |\ \ \ \ \ \ \ \ \ \ | | |_|_|/ / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/home/gluh/MySQL/Merge/5.0-opt mysql-test/r/view.result: Auto merged