MariaDB server is a community developed fork of MySQL server. Started by core members of the original MySQL team, MariaDB actively works with outside developers to deliver the most featureful, stable, and sanely licensed open SQL server in the industry.
Find a file
malff/marcsql@weblab.(none) 88e3abf5ef Bug#27876 (SF with cyrillic variable name fails during execution (regression))
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.
2007-05-25 14:36:01 -06:00
bdb my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
BitKeeper Add triggers for detecting bad changesets to mysql-5.0 2007-05-15 17:04:31 +02:00
BUILD New SCI Transporter Build scripts 2007-05-07 15:33:27 +02:00
client Merge bk-internal:/home/bk/mysql-5.0-maint 2007-05-18 12:58:28 +02:00
cmd-line-utils Fixed compiler warnings. 2007-02-28 22:23:35 +02:00
config/ac-macros Fix SCI Transporter 2007-05-07 15:25:24 +02:00
dbug dbug/dbug_analyze.c : Avoid the unresolved symbol "my_thread_global_init()" 2007-04-23 13:36:18 +02:00
debian Change mode to -rw-rw-r-- 2007-04-19 21:59:25 -07:00
Docs Merge mysql.com:/home/kent/bk/tmp/mysql-4.1-build 2007-03-22 19:43:41 +01:00
extra Bug #27390: mysqld_multi --config-file= not working as documented 2007-04-28 01:27:54 +02:00
heap Merge bk-internal.mysql.com:/home/bk/mysql-5.0-engines 2007-03-22 21:34:31 +01:00
include Merge mysql.com:/home/svoj/devel/bk/mysql-5.0 2007-05-23 12:39:33 +05:00
innobase Apply innodb-5.0-ss1405 snapshot 2007-04-18 19:36:22 -06:00
libmysql Bug#24732 Executables do not include Vista manifests 2007-04-23 15:41:24 -04:00
libmysql_r my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
libmysqld Fix SCI Transporter 2007-05-07 15:25:24 +02:00
man my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
myisam Merge mysql.com:/home/svoj/devel/bk/mysql-5.0 2007-05-23 12:39:33 +05:00
myisammrg Merge mysql.com:/home/svoj/devel/mysql/BUG24342/mysql-4.1-engines 2007-04-18 16:22:23 +05:00
mysql-test Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-05-24 19:23:52 +04:00
mysys Merge mysql.com:/home/svoj/devel/bk/mysql-5.0 2007-05-23 12:39:33 +05:00
ndb Merge perch.ndb.mysql.com:/home/jonas/src/50-work 2007-05-18 11:40:07 +02:00
netware Format corrections for various "Makefile.am": Leading tab, no trailing blank. 2007-05-02 14:01:49 +02:00
os2 my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
pstack my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
regex my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
scripts Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/50 2007-05-21 20:50:08 +02:00
server-tools Bug#24732 Executables do not include Vista manifests 2007-04-23 15:41:24 -04:00
sql Bug#27876 (SF with cyrillic variable name fails during execution (regression)) 2007-05-25 14:36:01 -06:00
sql-bench my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql-common my_time.c: 2007-05-18 06:14:37 +02:00
SSL my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
strings Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/50 2007-05-21 20:50:08 +02:00
support-files Merge trift2.:/MySQL/M41/spec-4.1 2007-05-02 16:53:54 +02:00
tests Bug#27876 (SF with cyrillic variable name fails during execution (regression)) 2007-05-25 14:36:01 -06:00
tools Fixed compiler warnings (for linux and win32 and win64) 2007-02-22 16:59:57 +02:00
VC++Files mysql.sln: 2007-04-19 22:56:04 +02:00
vio Merge pilot.blaudden:/home/msvensson/mysql/bug21611/my50-bug21611 2007-04-11 21:03:29 +02:00
win Merge siva.hindu.god:/home/tsmith/m/bk/50 2007-05-17 14:17:50 -06:00
zlib my_memmem.c: 2007-04-11 01:47:42 +02:00
.bzrignore Bug#24732 Executables do not include Vista manifests 2007-04-23 15:41:24 -04:00
.cvsignore Import changeset 2000-07-31 21:29:14 +02:00
CMakeLists.txt BUG#24732 manifest file was not included in VS2005 amd64 builds 2007-05-04 09:37:50 +02:00
configure.in Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/50 2007-05-21 20:50:08 +02:00
COPYING - manual.texi will be replaced with a manual written in DocBook/XML. This ChangeSet removes all 2005-04-13 11:51:38 +02:00
EXCEPTIONS-CLIENT EXCEPTIONS-CLIENT: 2007-03-14 18:28:16 +01:00
Makefile.am Merge trift-lap.fambruehe:/MySQL/M50/clone-5.0 2007-04-26 16:48:53 +02:00
README make_binary_distribution.sh: 2006-11-07 22:26:37 +01:00

This is a release of MySQL, a dual-license SQL database server.
MySQL is brought to you by the MySQL team at MySQL AB.

License information can be found in these files:
- For GPL (free) distributions, see the COPYING file and
  the EXCEPTIONS-CLIENT file.
- For commercial distributions, see the LICENSE.mysql file.


For further information about MySQL or additional documentation, see:
- The latest information about MySQL: http://www.mysql.com
- The current MySQL documentation: http://dev.mysql.com/doc

Some manual sections of special interest:

- If you are migrating from an older version of MySQL, please read the
  "Upgrading from..." section first!
- To see what MySQL can do, take a look at the features section.
- For installation instructions, see the Installing and Upgrading chapter.
- For the new features/bugfix history, see the Change History appendix.
- For the currently known bugs/misfeatures (known errors) see the Problems
  and Common Errors appendix.
- For a list of developers and other contributors, see the Credits
  appendix.

A local copy of the MySQL Reference Manual can be found in the Docs
directory in GNU Info format.  You can also browse the manual online or
download it in any of several formats at the URL given earlier in this
file.

************************************************************

IMPORTANT:

Bug or error reports should be sent to http://bugs.mysql.com.