fixing test results accordingly.
func_system.test:
New test that illegal mix of collations does not happen anymore.
item_strfunc.h:
safe_charset_converter() was added for system constants.
item_strfunc.cc:
safe_charset_converter() was added for system constants.
item_func.cc, item.h, item.cc:
Bug#8291: Illegal collation mix with USER() function.
After discussion with PeterG and Serge, a new coercibility
level for "system constants" was introduced, between
COERRIBLE and IMPLICIT. Thus:
SELECT col1 = USER() FROM t1; - is done according to col1 collation.
SELECT 'string' = USER(); - is done according to USER() collation.
At the same time, "nagg" and "strong" members were removed as unused.
item_create.cc:
Version is a system constant too.
sql/item.cc:
Bug#8291: Illegal collation mix with USER() function.
After discussion with PeterG and Serge, a new coercibility
level for "system constants" was introduced, between
COERRIBLE and IMPLICIT. Thus:
SELECT col1 = USER() FROM t1; - is done according to col1 collation.
SELECT 'string' = USER(); - is done according to USER() collation.
At the same time, "nagg" and "strong" members were removed as unused.
sql/item.h:
Bug#8291: Illegal collation mix with USER() function.
After discussion with PeterG and Serge, a new coercibility
level for "system constants" was introduced, between
COERRIBLE and IMPLICIT. Thus:
SELECT col1 = USER() FROM t1; - is done according to col1 collation.
SELECT 'string' = USER(); - is done according to USER() collation.
At the same time, "nagg" and "strong" members were removed as unused.
sql/item_create.cc:
Version is a system constant too.
sql/item_func.cc:
Bug#8291: Illegal collation mix with USER() function.
After discussion with PeterG and Serge, a new coercibility
level for "system constants" was introduced, between
COERRIBLE and IMPLICIT. Thus:
SELECT col1 = USER() FROM t1; - is done according to col1 collation.
SELECT 'string' = USER(); - is done according to USER() collation.
At the same time, "nagg" and "strong" members were removed as unused.
sql/item_strfunc.cc:
safe_charset_converter() was added for system constants.
sql/item_strfunc.h:
safe_charset_converter() was added for system constants.
mysql-test/t/func_system.test:
New test that illegal mix of collations does not happen anymore.
mysql-test/r/ctype_collate.result:
fixing test results accordingly.
mysql-test/r/func_str.result:
fixing test results accordingly.
mysql-test/r/func_system.result:
fixing test results accordingly.
mysql-test/r/type_blob.result:
fixing test results accordingly.
after the previous run had some failures, provided it did not totally crash.
Build-tools/Do-compile:
Change the search string for a test run from "tests were successful" to just
"were successful", which is written by the test run even after some failures.
This is necessary to start the next test suite ('--ps-protocol', '--embedded-server')
even after the previous one had some test failures.
mysql-test/mysql-test-run.sh:
Change the message even after test failures so that it is fairly safe to identify
the end of the run from it (as opposed to a crash of the script).
It is essential that both a run without any and with some test failures
write "were successful" so that it can be grepped.
hostnames to not be matched correctly. (Bug #3309)
sql/sql_acl.cc:
Use an acl_host_or_ip in the GRANT_TABLE struct instead of storing the host
itself, and use compare_hostname() in testing it. This adds support for IP
addresses with netmasks to table-specific grants, and results in simplified
code by making use of compare_hostname() in more places.
mysql-test/r/grant2.result:
Add new results
mysql-test/t/grant2.test:
Add new regression test
sql/sql_union.cc:
a fix for --ps-protocol (bug #6089: FOUND_ROWS returns wrong values when no table/view is used)
Don't touch options as itit's not needed.
in slave SQL thread: if a transaction fails because of InnoDB deadlock or innodb_lock_wait_timeout exceeded,
optionally retry the transaction a certain number of times (new variable --slave_transaction_retries).
sql/mysql_priv.h:
new var slave_transaction_retries
sql/mysqld.cc:
new variable slave_transaction_retries. Plus fixing a typo.
sql/set_var.cc:
new global variable slave_transaction_retries (will be one per subslave, when we have multimaster).
sql/slave.cc:
Slave SQL thread: if a transaction fails because of InnoDB deadlock or innodb_lock_wait_timeout exceeded,
optionally retry the transaction a certain number of times (--slave_transaction_retries).
sql/slave.h:
new RELAY_LOG_INFO::trans_retries.
Added a check, if the table, which we are going to create, is open.
This can happen if a MERGE mapped table is TRUNCATEd.
myisam/mi_open.c:
Bug#8306 - TRUNCATE leads to index corruption
Made test_if_reopen() globally available.
myisam/myisamdef.h:
Bug#8306 - TRUNCATE leads to index corruption
Declared test_if_reopen() as globally available.
mysql-test/r/myisam.result:
Bug#8306 - TRUNCATE leads to index corruption
The test result.
mysql-test/t/myisam.test:
Bug#8306 - TRUNCATE leads to index corruption
The test case.
depending on ref->unsigned_flag. Item_int_with_ref can refer to both signed and
unsigned integers.
mysql-test/r/bigint.result:
Test case for BUG#8562
mysql-test/t/bigint.test:
Test case for BUG#8562
the error to be sent to the client.
mysql-test/r/select_safe.result:
Testcase for BUG#8726
mysql-test/t/select_safe.test:
Testcase for BUG#8726
sql/sql_select.cc:
Fix for BUG#8726: On ER_TOO_BIG_SELECT set JOIN::error to -1 to cause the error to be sent to the client.
(No really critical errors found, but a few possible wrong results)
innobase/dict/dict0dict.c:
Replace memcmp with comparison of characters to avoid warnings from purify when 'sptr' points to a very short string
mysql-test/r/select_found.result:
Add missing drop table
mysql-test/r/type_set.result:
More tests
mysql-test/t/select_found.test:
Add missing drop table
mysql-test/t/type_set.test:
More tests
mysys/my_init.c:
Avoid warning from purify (purify doesn't handle getrusage() properly)
sql/field.h:
enum & set are sorted as numbers. This fixes an access to uninitialized memory when enum/set are multi-byte characters
sql/filesort.cc:
enum & set are sorted as numbers. This fixes an access to uninitialized memory when enum/set are multi-byte characters
sql/item_cmpfunc.cc:
Fixed warning from purify. (Not critical as the arguments are passed to a function but not used)
Allocate Arg_comparator() with 'new' instead of sql_alloc() to ensure proper initialization
sql/mysqld.cc:
Wait for signal handler to stop when running --bootstrap
(Fixes warning from purify)
sql/sql_insert.cc:
Initialize slot used by innodb.cc (not critical)
sql/sql_lex.h:
Better comments
sql/sql_repl.cc:
memcmp -> bcmp() to avoid warning from purify
sql/sql_select.cc:
Fix for out-of-bound memory reference when doing DISTINCT on const expressions
strings/ctype-simple.c:
Fixes to not access uninitialized memory
(Not critical)
my_like_range_simple to produce upper bound constants for LIKE "str_%" and similar expressions.
mysql-test/r/ctype_cp1251.result:
Test for BUG#8560
mysql-test/t/ctype_cp1251.test:
Test for BUG#8560
is the same as the normal datadir for that database. (Bug #8707)
mysys/my_symlink2.c:
Expand path of linkname before checking it against filename to decide if
we need to create a link.
mysql-test/t/symlink.test:
Add new regression test
mysql-test/r/symlink.result:
Add new results
independently from the expression it is initialized from.
In other words, this change treats a user variable like
a table with one column and one record. Discussed with
PeterG, Serg and Lars. This change also simplifies replication
allowing not to replicate variables' coercibility.
mysql-test/r/user_var.result:
Test changes accordintly
mysql-test/t/user_var.test:
Test changes accordintly
Change string->float conversion to delay division as long as possible.
This gives us more exact integer->float conversion for numbers of type '123.45E+02' (Bug #7740)
client/mysql.cc:
Fix wront usage of charset (found during review of pushed code)
include/m_string.h:
Backported my_strtod() from 5.0
mysql-test/mysql-test-run.sh:
Run also mysql_client_test with --debug
mysql-test/r/ps_1general.result:
Safety fix (if mysql_client_test.test fails)
mysql-test/r/type_float.result:
More test
mysql-test/t/mysql_client_test.test:
Comments for what to do if this test fails
mysql-test/t/ps_1general.test:
Safety fix (if mysql_client_test.test fails)
mysql-test/t/type_float.test:
More test to better test new strtod() function
Test also bug #7740 (wrong comparsion between integer and float-in-integer-range)
sql/field.cc:
Backport my_strntod() from 5.0
sql/item.cc:
Backport my_strntod() from 5.0
sql/item.h:
Backport my_strntod() from 5.0
sql/item_func.h:
Backport my_strntod() from 5.0
sql/item_strfunc.cc:
Backport my_strntod() from 5.0
sql/item_sum.cc:
Backport my_strntod() from 5.0
sql/item_sum.h:
Backport my_strntod() from 5.0
sql/procedure.h:
Backport my_strntod() from 5.0
strings/ctype-simple.c:
Backport my_strntod() from 5.0
strings/ctype-ucs2.c:
Backport my_strntod() from 5.0
strings/strtod.c:
Backport my_strntod() from 5.0
Change conversion to delay division as long as possible.
This gives us more exact integer-> float conversion for numbers of type '123.45E+02'
Treat unknown characters straight in a query as syntax error, rather skipping it as a space character.
mysys/charset.c:
Treat unknown characters straight in a query as syntax error, rather skipping it as a space character.
mysql-test/t/ctype_latin1.test:
Treat unknown characters straight in a query as syntax error, rather skipping it as a space character.
mysql-test/r/ctype_latin1.result:
Treat unknown characters straight in a query as syntax error, rather skipping it as a space character.
Bugs: #8385: utf8_general_ci treats cyrillic letters I and SHORT I as the same
strings/ctype-utf8.c:
Bugs: #8385: utf8_general_ci treats cyrillic letters I and SHORT I as the same
mysql-test/t/ctype_utf8.test:
Bugs: #8385: utf8_general_ci treats cyrillic letters I and SHORT I as the same
mysql-test/r/ctype_utf8.result:
Bugs: #8385: utf8_general_ci treats cyrillic letters I and SHORT I as the same