- 25 May, 2007 1 commit
-
-
unknown authored
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))
-
- 24 May, 2007 1 commit
-
-
unknown authored
into vajra.(none):/opt/local/work/mysql-5.0-runtime sql/mysql_priv.h: Auto merged sql/sql_base.cc: Auto merged
-
- 23 May, 2007 4 commits
-
-
unknown authored
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.
-
unknown authored
into mysql.com:/home/svoj/devel/mysql/merge/mysql-5.0-engines
-
unknown authored
into mysql.com:/home/svoj/devel/mysql/merge/mysql-5.0-engines
-
unknown authored
into mysql.com:/home/svoj/devel/mysql/merge/mysql-4.1-engines
-
- 22 May, 2007 3 commits
- 21 May, 2007 6 commits
-
-
unknown authored
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/50
-
unknown authored
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/50 configure.in: Auto merged mysql-test/r/strict.result: Auto merged mysql-test/r/type_datetime.result: Auto merged mysql-test/t/type_datetime.test: Auto merged sql/item.cc: Auto merged sql/item_cmpfunc.cc: Auto merged
-
unknown authored
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/41
-
unknown authored
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
-
unknown authored
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
-
unknown authored
into whalegate.ndb.mysql.com:/home/tomas/mysql-4.1-ndb
-
- 19 May, 2007 2 commits
-
-
unknown authored
into pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
-
unknown authored
- The SQL commands used by mysql_upgrade are written to be run with sql_mode set to '' - thus the scripts should change sql_mode for the session to make sure the SQL is legal. mysql-test/r/mysql_upgrade.result: Update test result mysql-test/t/mysql_upgrade.test: The SQL commands used by mysql_upgrade are written to be run with sql_mode set to '' - thus the scripts should change sql_mode for the session to make sure the SQL is legal. scripts/mysql_system_tables_fix.sql: Set sql_mode to '' before running the SQL commands to fix system tables - backport from 5.1
-
- 18 May, 2007 23 commits
-
-
unknown authored
into mysql.com:/d2/hf/mrg/mysql-5.0-opt mysql-test/r/ps.result: Auto merged mysql-test/t/ps.test: Auto merged sql/item.cc: Auto merged
-
unknown authored
into sergbook.mysql.com:/usr/home/serg/Abk/mysql-5.0 mysql-test/r/ps.result: Auto merged mysql-test/t/ps.test: Auto merged sql/item.cc: Auto merged
-
unknown authored
mysql-test/r/sp_trans.result: added cleanup mysql-test/r/strict.result: added cleanup mysql-test/t/sp_trans.test: added cleanup mysql-test/t/strict.test: added cleanup
-
unknown authored
into mysql.com:/d2/hf/mrg/mysql-5.0-opt
-
unknown authored
into mysql.com:/d2/hf/mrg/mysql-5.0-opt mysql-test/r/ps.result: Auto merged mysql-test/t/ps.test: Auto merged sql/item.cc: Auto merged
-
unknown authored
into mysql.com:/d2/hf/mrg/mysql-4.1-opt
-
unknown authored
into pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
-
unknown authored
into pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
-
unknown authored
into pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint client/mysqltest.c: Auto merged mysql-test/mysql-test-run.pl: Auto merged mysql-test/r/mysqltest.result: Auto merged mysql-test/t/mysqltest.test: SCCS merged
-
unknown authored
- Final touchups client/mysqltest.c: Final touch ups, rename sorted_results to sorted_result mysql-test/r/mysqltest.result: Update test result mysql-test/t/mysqltest.test: Update results with additional subtests for empty result set, NULL values and 1024 rows
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/mysql-4.1-ndb
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp: Auto merged
-
unknown authored
into moonbone.local:/mnt/gentoo64/work/28261-bug-5.0-opt-mysql
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/50-work ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp: Auto merged
-
unknown authored
review comment 2, atleast 1 signal need for test prg ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp: review comment, atleast 1 signal need
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb ndb/src/common/transporter/TransporterRegistry.cpp: Auto merged
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/50-work ndb/src/common/transporter/TransporterRegistry.cpp: Auto merged
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/mysql-4.1-ndb
-
unknown authored
review comment if some tcp-transporter has data, then do select with timeout 0 ndb/src/common/transporter/TransporterRegistry.cpp: review comment if some tcp-transporter has data, then do select with timeout 0
-
unknown authored
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.
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb ndb/src/common/transporter/Packer.cpp: Auto merged ndb/src/common/transporter/TCP_Transporter.hpp: Auto merged ndb/src/common/transporter/TransporterRegistry.cpp: Auto merged ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp: Auto merged ndb/test/ndbapi/testNdbApi.cpp: merge ndb/test/run-test/daily-basic-tests.txt: merge
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/mysql-4.1-ndb
-
unknown authored
into perch.ndb.mysql.com:/home/jonas/src/50-work ndb/src/common/transporter/Packer.cpp: Auto merged ndb/src/common/transporter/TCP_Transporter.hpp: Auto merged ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp: Auto merged ndb/src/common/transporter/TransporterRegistry.cpp: merge ndb/test/ndbapi/testNdbApi.cpp: merge ndb/test/run-test/daily-basic-tests.txt: merge
-