The problem was that when converting a string to an exact number,
rounding didn't work, because conversion didn't understand
approximate numbers notation.
Fix: a new function for string-to-number conversion was implemented,
which is aware of approxinate number notation (with decimal point
and exponent, e.g. -19.55e-1)
include/m_ctype.h:
Adding new function into MY_CHARSET_HANDLER
Adding prototypes for 8bit and ucs2 functions.
mysql-test/r/loaddata.result:
Fixing results
mysql-test/r/ps_2myisam.result:
Fixing results
mysql-test/r/ps_3innodb.result:
Fixing results
mysql-test/r/ps_4heap.result:
Fixing results
mysql-test/r/ps_5merge.result:
Fixing results
mysql-test/r/ps_6bdb.result:
Fixing results
mysql-test/r/rpl_rewrite_db.result:
Fixing results
mysql-test/r/select.result:
Fixing results
mysql-test/r/sp-vars.result:
Fixing results
mysql-test/r/strict.result:
Fixing results
mysql-test/r/view.result:
Fixing results
mysql-test/r/warnings.result:
Fixing results
mysql-test/t/strict.test:
Fixing results
sql/field.cc:
Using new function
strings/ctype-big5.c:
Adding new function into the MY_CHARSET_HANDLER structure
strings/ctype-bin.c:
Adding new function into the MY_CHARSET_HANDLER structure
strings/ctype-cp932.c:
Adding new function into the MY_CHARSET_HANDLER structure
strings/ctype-euc_kr.c:
Adding new function into the MY_CHARSET_HANDLER structure
strings/ctype-eucjpms.c:
Adding new function into the MY_CHARSET_HANDLER structure
strings/ctype-gb2312.c:
Adding new function into the MY_CHARSET_HANDLER structure
strings/ctype-gbk.c:
Adding new function into the MY_CHARSET_HANDLER structure
strings/ctype-latin1.c:
Adding new function into the MY_CHARSET_HANDLER structure
strings/ctype-simple.c:
Implementing my_strntoull10_8bit
Adding new function into MY_CHARSET_HANDLER
strings/ctype-sjis.c:
Adding new function into the MY_CHARSET_HANDLER structure
strings/ctype-tis620.c:
Adding new function into the MY_CHARSET_HANDLER structure
strings/ctype-ucs2.c:
Implementing UCS2 wrapper for 8bit version
Adding new function into the MY_CHARSET_HANDLER structure
strings/ctype-ujis.c:
Adding new function into the MY_CHARSET_HANDLER structure
strings/ctype-utf8.c:
Adding new function into the MY_CHARSET_HANDLER structure
mysql-test/r/round.result:
New BitKeeper file ``mysql-test/r/round.result''
mysql-test/t/round.test:
New BitKeeper file ``mysql-test/t/round.test''
into mysql.com:/usr/home/bar/mysql-5.0
BitKeeper/deleted/.del-ctype-cp932.c:
Auto merged
mysql-test/t/ctype_ujis.test:
Auto merged
sql/sql_string.cc:
Auto merged
strings/ctype-big5.c:
Auto merged
strings/ctype-bin.c:
Auto merged
strings/ctype-euc_kr.c:
Auto merged
strings/ctype-gb2312.c:
Auto merged
strings/ctype-gbk.c:
Auto merged
strings/ctype-latin1.c:
Auto merged
strings/ctype-simple.c:
Auto merged
strings/ctype-sjis.c:
Auto merged
strings/ctype-tis620.c:
Auto merged
strings/ctype-ucs2.c:
Auto merged
strings/ctype-ujis.c:
Auto merged
strings/ctype-utf8.c:
Auto merged
include/m_ctype.h:
After merge fix.
mysql-test/r/ctype_ujis.result:
After merge fix
into mysql.com:/usr/home/bar/mysql-5.0
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
Auto merged
strings/ctype-euc_kr.c:
Auto merged
strings/ctype-gb2312.c:
Auto merged
into parts when converting to Unicode.
m_ctype.h:
Reorganizing mb_wc return codes to be able
to return "an unassigned N-byte-long character".
sql_string.cc:
Adding code to detect and properly handle
unassigned characters (i.e. the those character
which are correctly formed according to the
character specifications, but don't have Unicode
mapping).
Many files:
Fixing conversion function to return new codes.
ctype_ujis.test, ctype_gbk.test, ctype_big5.test:
Adding a test case.
ctype_ujis.result, ctype_gbk.result, ctype_big5.result:
Fixing results accordingly.
include/m_ctype.h:
Reorganizing mb_wc return codes to be able
to return "an unassigned N-byte long character".
Bug#15375 Unassigned multibyte codes are broken into parts when converting to Unicode.
mysql-test/r/ctype_big5.result:
Fixing results accordingly.
mysql-test/r/ctype_gbk.result:
Fixing results accordingly.
mysql-test/r/ctype_ujis.result:
Fixing results accordingly.
mysql-test/t/ctype_big5.test:
Adding a test case.
mysql-test/t/ctype_gbk.test:
Adding a test case.
mysql-test/t/ctype_ujis.test:
Adding a test case.
sql/sql_string.cc:
Adding code to detect and properly hanlde
unassigned characters (i.e. the those character
which are correctly formed according to the
character specifications, but don't have Unicode
mapping).
strings/ctype-big5.c:
Fixing conversion function to return new codes.
strings/ctype-bin.c:
Fixing conversion function to return new codes.
strings/ctype-cp932.c:
Fixing conversion function to return new codes.
strings/ctype-euc_kr.c:
Fixing conversion function to return new codes.
strings/ctype-gb2312.c:
Fixing conversion function to return new codes.
strings/ctype-gbk.c:
Fixing conversion function to return new codes.
strings/ctype-latin1.c:
Fixing conversion function to return new codes.
strings/ctype-simple.c:
Fixing conversion function to return new codes.
strings/ctype-sjis.c:
Fixing conversion function to return new codes.
strings/ctype-tis620.c:
Fixing conversion function to return new codes.
strings/ctype-ucs2.c:
Fixing conversion function to return new codes.
strings/ctype-ujis.c:
Fixing conversion function to return new codes.
strings/ctype-utf8.c:
Fixing conversion function to return new codes.
ctype-euc_kr.c:
ctype-gb2312.c:
Adding specific well_formed_length functions
for gb2312 and euckr, to allow storing characters
which are correct according to the character set
specifications but just don't have Unicode mapping.
Previously only those which have Unicode mapping
could be stored, while unassigned characters lead
to data truncation.
Many files:
new file
strings/ctype-gb2312.c:
Bug#15377 Valid multibyte sequences are truncated on INSERT
Adding specific well_formed_length functions
for gb2312 and euckr, to allow storing characters
which are correct according to the character set.
Previously only those which have Unicode mapping
could be stored.
strings/ctype-euc_kr.c:
Adding specific well_formed_length functions
for gb2312 and euckr, to allow storing characters
which are correct according to the character set.
Previously only those which have Unicode mapping
could be stored.
into mysql.com:/home/emurphy/src/work/mysql-5.0
BitKeeper/deleted/.del-ctype-cp932.c:
Auto merged
BitKeeper/deleted/.del-ctype_cp932.result:
Auto merged
BitKeeper/deleted/.del-ctype_cp932.test:
Auto merged
include/m_ctype.h:
Auto merged
include/my_sys.h:
Auto merged
innobase/srv/srv0start.c:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysys/charset.c:
Auto merged
netware/BUILD/nwbootstrap:
Auto merged
sql/item.h:
Auto merged
sql/log_event.cc:
Auto merged
sql/log_event.h:
Auto merged
sql/sql_prepare.cc:
Auto merged
strings/ctype-big5.c:
Auto merged
strings/ctype-bin.c:
Auto merged
strings/ctype-czech.c:
Auto merged
strings/ctype-euc_kr.c:
Auto merged
strings/ctype-extra.c:
Auto merged
strings/ctype-gb2312.c:
Auto merged
strings/ctype-gbk.c:
Auto merged
strings/ctype-latin1.c:
Auto merged
strings/ctype-sjis.c:
Auto merged
strings/ctype-tis620.c:
Auto merged
strings/ctype-uca.c:
Auto merged
strings/ctype-ucs2.c:
Auto merged
strings/ctype-ujis.c:
Auto merged
strings/ctype-utf8.c:
Auto merged
strings/ctype-win1250ch.c:
Auto merged
configure.in:
Manual merge from 4.1
include/config-netware.h:
Manual merge from 4.1
sql/item.cc:
Manual merge from 4.1
sql/mysqld.cc:
Manual merge from 4.1
In cp932, '\' character can be the second byte in a
multi-byte character stream. This makes it difficult to use
mysql_escape_string. Added flag to indicate which languages allow
'\' as second byte of multibyte sequence so that when putting a prepared
statement into the binlog we can decide at runtime whether hex encoding
is really needed.
include/m_ctype.h:
Added bool to indicate character sets which allow '\' as the second
byte of a multibyte character set (currently only cp932). For these
character sets, escaping with '\' is dangerous and leads to corruption
in replication.
include/my_sys.h:
Add function to enocde a string as hex with no prefix (bare)
mysys/charset.c:
Add function to encode string as hex with no prefix (bare).
sql/item.cc:
Check the connection character set to see if escape_string_for_mysql
is safe, or if character set requires unambiguous (hex) encoding
sql/item.h:
Pass thd to query_val_str for access to charset()
sql/sql_prepare.cc:
Pass thd to query_val_str.
strings/ctype-big5.c:
Add escape_with_backslash_is_dangerous flag.
strings/ctype-bin.c:
Add escape_with_backslash_is_dangerous flag
strings/ctype-cp932.c:
Add escape_with_backslash_is_dangerous flag.
strings/ctype-czech.c:
Add escape_with_backslash_is_dangerous flag.
strings/ctype-euc_kr.c:
Add escape_with_backslash_is_dangerous flag.
strings/ctype-extra.c:
Add escape_with_backslash_is_dangerous flag.
strings/ctype-gb2312.c:
Add escape_with_backslash_is_dangerous flag.
strings/ctype-gbk.c:
Added escape_with_backslash_is_dangerous flag.
strings/ctype-latin1.c:
Added escape_with_backslash_is_dangerous flag.
strings/ctype-sjis.c:
Added escape_with_backslash_is_dangerous flag.
strings/ctype-tis620.c:
Added esacpe_with_backslash_character_is_dangerous flag.
strings/ctype-uca.c:
Added escape_with_backslash_is_dangerous flag.
strings/ctype-ucs2.c:
Added escape_with_backslash_is_dangerous.
strings/ctype-ujis.c:
Added escape_with_backslash_is_dangerous flag.
strings/ctype-utf8.c:
Added escape_with_backslash_is_dangerous.
strings/ctype-win1250ch.c:
Added escape_with_backslash_is_dangerous.
UPPER/LOWER now can return a string with different length.
mi_test1.c:
Adding new arguments.
Many files:
Changeing caseup/casedn to return a result with different
length than argument.
sql_string.h:
Removing unused method,
mysql_priv.h:
Removing unused method
strings/ctype-big5.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-bin.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-cp932.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-czech.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-euc_kr.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-extra.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-eucjpms.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-gb2312.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-gbk.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-latin1.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-mb.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-simple.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-sjis.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-tis620.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-uca.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-ucs2.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-ujis.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-utf8.c:
Changeing caseup/casedn to return a result with different length than argument.
strings/ctype-win1250ch.c:
Changeing caseup/casedn to return a result with different length than argument.
sql/item_strfunc.cc:
Changeing caseup/casedn to return a result with different length than argument.
sql/item_strfunc.h:
Changeing caseup/casedn to return a result with different length than argument.
sql/mysql_priv.h:
Removing unused method
sql/sql_string.h:
Removing unused method,
client/sql_string.h:
Changeing caseup/casedn to return a result with different length than argument.
include/m_ctype.h:
Changeing caseup/casedn to return a result with different length than argument.
myisam/mi_test1.c:
Adding new arguments.
mysql-test/r/ctype_uca.result:
UPPER/LOWER now can return a string with different length.
mysql-test/t/ctype_uca.test:
UPPER/LOWER now can return a string with different length.
LIKE crashed mysqld for binary collations in some cases
strings/ctype-big5.c:
LIKE crashed mysqld for binary collations in some cases
strings/ctype-euc_kr.c:
LIKE crashed mysqld for binary collations in some cases
strings/ctype-gb2312.c:
LIKE crashed mysqld for binary collations in some cases
strings/ctype-gbk.c:
LIKE crashed mysqld for binary collations in some cases
strings/ctype-latin1.c:
LIKE crashed mysqld for binary collations in some cases
strings/ctype-sjis.c:
LIKE crashed mysqld for binary collations in some cases
strings/ctype-tis620.c:
LIKE crashed mysqld for binary collations in some cases
strings/ctype-ucs2.c:
LIKE crashed mysqld for binary collations in some cases
strings/ctype-ujis.c:
LIKE crashed mysqld for binary collations in some cases
strings/ctype-utf8.c:
LIKE crashed mysqld for binary collations in some cases
sql/item_cmpfunc.cc:
LIKE crashed mysqld for binary collations in some cases
Fixed that blobs >16M can be inserted/updated
Fixed bug when doing CREATE TEMPORARY TABLE ... LIKE
include/m_ctype.h:
Changed wellformedlen to well_formed_len
include/mysql.h:
Fixed comment
libmysql/libmysql.c:
Fixed indentation
libmysqld/lib_sql.cc:
Fixed indentation
mysql-test/r/ctype_utf8.result:
updated warning numbers
mysql-test/r/innodb.result:
Moved test to right place
mysql-test/r/myisam-blob.result:
More test for blobs
mysql-test/r/rpl000002.result:
Move test to better place
mysql-test/r/rpl_log.result:
Move test to better place
mysql-test/r/union.result:
Move test to better place
mysql-test/t/innodb.test:
Moved test to right place
mysql-test/t/myisam-blob.test:
More test of blobs
mysql-test/t/rpl000002.test:
Move test to better place
mysql-test/t/rpl_log.test:
Move test to better place
mysql-test/t/union.test:
Move test to better place
sql/field.cc:
Changed wellformedlen to well_formed_len.
Fixed that blobs >16M can be inserted/updated (new bug)
sql/field.h:
Code optimization
sql/sql_lex.cc:
Changed short variable names
sql/sql_show.cc:
Optimized quote handling
sql/sql_table.cc:
Fixed bug when doing CREATE TEMPORARY TABLE ... LIKE
sql/sql_union.cc:
Added comment
strings/ctype-big5.c:
Changed wellformedlen to well_formed_len
strings/ctype-bin.c:
Changed wellformedlen to well_formed_len
strings/ctype-euc_kr.c:
Changed wellformedlen to well_formed_len
strings/ctype-gb2312.c:
Changed wellformedlen to well_formed_len
strings/ctype-gbk.c:
Changed wellformedlen to well_formed_len
strings/ctype-latin1.c:
Changed wellformedlen to well_formed_len
strings/ctype-mb.c:
Changed wellformedlen to well_formed_len
strings/ctype-simple.c:
Changed wellformedlen to well_formed_len
strings/ctype-sjis.c:
Changed wellformedlen to well_formed_len
strings/ctype-tis620.c:
Changed wellformedlen to well_formed_len
strings/ctype-ucs2.c:
Changed wellformedlen to well_formed_len
Indentation changes
strings/ctype-ujis.c:
Changed wellformedlen to well_formed_len
strings/ctype-utf8.c:
Changed wellformedlen to well_formed_len
into mysql.com:/my/mysql-4.1
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
strings/ctype-big5.c:
Auto merged
strings/ctype-euc_kr.c:
Auto merged
strings/ctype-gb2312.c:
Auto merged
strings/ctype-gbk.c:
Auto merged
strings/ctype-sjis.c:
Auto merged
strings/ctype-ujis.c:
Auto merged
(isn't it obvious ?)
mysys/charset.c:
all charsets support my_mbcharlen - no need to protect it with use_mb()
sql/sql_load.cc:
all charsets support my_mbcharlen - no need to protect it with use_mb()
sequence boundaries in functions LIKE and LOCATE in
the case of "binary" collation. Comparison was done
like if the strings were just a binary strings without
character set assumption.
PRIMARY flag for built-in charsets
strings/ctype-big5.c:
PRIMARY flag for built-in charsets
strings/ctype-bin.c:
PRIMARY flag for built-in charsets
strings/ctype-euc_kr.c:
PRIMARY flag for built-in charsets
strings/ctype-gb2312.c:
PRIMARY flag for built-in charsets
strings/ctype-gbk.c:
PRIMARY flag for built-in charsets
strings/ctype-sjis.c:
PRIMARY flag for built-in charsets
strings/ctype-tis620.c:
PRIMARY flag for built-in charsets
strings/ctype-ujis.c:
PRIMARY flag for built-in charsets
strings/ctype-utf8.c:
PRIMARY flag for built-in charsets
strings/ctype.c:
PRIMARY flag for built-in charsets