adapting to pushbuild's custom to switch from default pathes. The name for
var directory must be set with MYSQLTEST_VARDIR.
mysql-test/t/mysqlbinlog.test:
correction of log path since pushbuild uses non-default options.
- Part 1, fixes rpl- and federated-tests where connection is made to 127.0.0.1
client/mysqltest.c:
Turn on ssl_verify_server_cert only if host is "localhost"
- Include prefix files that renames all public functions in yaSSLs
OpenSSL API to ya<function_name>. They will otherwise conflict
with OpenSSL functions if loaded by an application that uses OpenSSL
as well as libmysqlclient with yaSSL support.
client/Makefile.am:
Remove $yassl_includes
...and one "suspicious line"
config/ac-macros/yassl.m4:
Remove yassl_includes as they are the same as "normal" include
extra/yassl/include/openssl/crypto.h:
Add include file "prefix_crypto.h" to rename SSL_* functions to yaSSL_*
extra/yassl/include/openssl/ssl.h:
Add include file "prefix_crypto.h" to rename SSL_* functions to yaSSL_*
libmysql/Makefile.am:
Remove yassl_includes
libmysql_r/Makefile.am:
Remove yassl_includes
libmysqld/Makefile.am:
Remove yassl_includes
And one suspicious line
libmysqld/examples/Makefile.am:
Remove yassl_includes
server-tools/instance-manager/Makefile.am:
Remove yassl_includes
sql/Makefile.am:
Remove yassl_includes
tools/Makefile.am:
Add link with yaSSL libs
vio/Makefile.am:
Remove yassl_includes
extra/yassl/include/openssl/generate_prefix_files.pl:
Add utility script to parse the header files to generate the prefix_* files that renames yaSSL SSL_* functions
extra/yassl/include/openssl/prefix_crypto.h:
Add prefix file for crypto.h
extra/yassl/include/openssl/prefix_ssl.h:
Add prefix file for ssl.h
Two threads both try a shutdown sequence which creates a race to the
de-init/free of certain resources.
This exists in similar form in the client as 17926: "mysql.exe crashes
when ctrl-c is pressed in windows."
sql/mysqld.cc:
We have three potential ways of hitting the iceberg:
- unireg_end() has basic de-init
- unireg_abort() has extended de-init
- main() has a de-init sequence similar to unireg_abort()
In the Windows version of the server, Control-C is handled
in a different thread from the one main() is in. The main
loop is told to end, then unireg_abort() is called. Its
de-init and that of main() will then race each other for
mutex- and cond-var-destroys, free(), and finally exit().
This patch introduces a special case for Windows that will eliminate
the race by ending the signal-handler via unireg_end() instead if
SIGINT is signalled. This seems the least intrusive fix that still
fixes user-visible behaviour.
into dl145k.mysql.com:/tmp/andrei/MERGE/5.0
BitKeeper/deleted/.del-config.guess~fd94a91a69a8ce8:
Auto merged
BitKeeper/deleted/.del-config.sub~d18f703b655db258:
Auto merged
BitKeeper/deleted/.del-ltmain.sh~9b8b907df176f96e:
Auto merged
mysql-test/t/mysqlbinlog.test:
manual merge, accepting 4.1 mods
sql/sql_class.cc:
use local, Ramil explained it's a backport
CHECK TABLE did temporarily clear the auto_increment value.
It runs with a read lock, allowing other readers and
conurrent INSERTs. The latter could grab the wrong value
in this moment.
CHECK TABLE does no longer modify the auto_increment value.
Not even for a short moment.
myisam/mi_check.c:
Bug#19604 - CHECK TABLE with concurrent INSERT can reset auto_increment
In chk_key() and update_auto_increment_key() in the repair_only
case, do not touch info->s->state.auto_increment. Especially
chk_key() can be called from CHECK TABLE with a read lock.
Concurrent inserts could grab a temporarily changed value.
Added minor style fixes.
myisam/mi_key.c:
Bug#19604 - CHECK TABLE with concurrent INSERT can reset auto_increment
Changed update_auto_increment() to retrieve_auto_increment()
to reflect that it does not change the auto_increment by
itself any more. This must now be done externally if needed.
myisam/mi_update.c:
Bug#19604 - CHECK TABLE with concurrent INSERT can reset auto_increment
Added explicit update of info->s->state.auto_increment
after the change from update_auto_increment() to
retrieve_auto_increment().
myisam/mi_write.c:
Bug#19604 - CHECK TABLE with concurrent INSERT can reset auto_increment
Added explicit update of info->s->state.auto_increment
after the change from update_auto_increment() to
retrieve_auto_increment().
myisam/myisamdef.h:
Bug#19604 - CHECK TABLE with concurrent INSERT can reset auto_increment
Changed update_auto_increment() to retrieve_auto_increment()
to reflect that it does not change the auto_increment by
itself any more. This must now be done externally if needed.
"Merge table does not work with bit types"
MERGE should have HA_CAN_BIT_FIELD feature bit set or else table row is
formatted incorrectly.
mysql-test/r/merge.result:
Bug#19648
Test for fix
mysql-test/t/merge.test:
Bug#19648
Test for fix
sql/ha_myisammrg.h:
Bug#19648
Must have HA_CAN_BIT_FIELD for BIT type support
Bug#18282 "INFORMATION_SCHEMA.TABLES provides inconsistent info about invalid views"
This bug caused crashes or resulted in wrong data being returned
when one tried to obtain information from I_S tables about views
using stored functions.
It was caused by the fact that we were using LEX representing
statement which were doing select from I_S tables as active LEX
when contents of I_S table were built. So state of this LEX both
affected and was affected by open_tables() calls which happened
during this process. This resulted in wrong behavior and in
violations of some of invariants which caused crashes.
This fix tries to solve this problem by properly saving/resetting
and restoring part of LEX which affects and is affected by the
process of opening tables and views in get_all_tables() routine.
To simplify things we separated this part of LEX in a new class
and made LEX its descendant.
mysql-test/r/information_schema_db.result:
test case
mysql-test/t/information_schema_db.test:
test case
sql/sql_lex.cc:
To simplify saving/resetting and restoring part of LEX which
affects and is affected by the process of opening tables and
views we moved it to new class Query_tables_list and made LEX
descendant of this class. Also introduced two LEX methods
which can be used to save and reset or to restore this state.
sql/sql_lex.h:
To simplify saving/resetting and restoring part of LEX which
affects and is affected by the process of opening tables and
views we moved it to new class Query_tables_list and made LEX
descendant of this class. Also introduced two LEX methods
which can be used to save and reset or to restore this state.
sql/sql_show.cc:
Now in get_all_tables() routine we properly save/reset and
restore part of LEX (statement table list and information
about routines used) which affects and is affected by the
process of opening tables and views.
sql/sql_table.cc:
Now we clean-up LEX after opening table (view) in two stages.
In the first stage we call LEX::cleanup_after_one_table_open()
to clean-up selects lists and derived tables state. In the
second stage which happens after close_thread_tables() is
invoked we call Query_tables_list::reset_query_tables_list(FALSE)
to rollback changes in Query_tables_list.
The IN() function uses agg_cmp_type() to aggregate all types of its arguments
to find out some common type for comparisons. In this particular case the
char() and the int was aggregated to double because char() can contain values
like '1.5'. But all strings which do not start from a digit are converted to
0. thus 'a' and 'z' become equal.
This behaviour is reasonable when all function arguments are constants. But
when there is a field or an expression this can lead to false comparisons. In
this case it makes more sense to coerce constants to the type of the field
argument.
The agg_cmp_type() function now aggregates types of constant and non-constant
items separately. If some non-constant items will be found then their
aggregated type will be returned. Thus after the aggregation constants will be
coerced to the aggregated type.
mysql-test/t/func_in.test:
Added test case for bug#18360: Incorrect type coercion in IN() results in false comparison.
mysql-test/r/func_in.result:
Added test case for bug#18360: Incorrect type coercion in IN() results in false comparison.
sql/item_cmpfunc.cc:
Fixed bug#18360: Incorrect type coercion in IN() results in false comparison.
The agg_cmp_type() function now aggregates types of constant and non-constant
items separately. If some non-constant items will be found then their
aggregated type will be returned. Thus after the aggregation constants will
be coerced to the aggregated type.
The order of acquiring LOCK_mysql_create_db
and wait_if_global_read_lock() was wrong. It could happen
that a thread held LOCK_mysql_create_db while waiting for
the global read lock to be released. The thread with the
global read lock could try to administrate a database too.
It would first try to lock LOCK_mysql_create_db and hang...
The check if the current thread has the global read lock
is done in wait_if_global_read_lock(), which could not be
reached because of the hang in LOCK_mysql_create_db.
Now I exchanged the order of acquiring LOCK_mysql_create_db
and wait_if_global_read_lock(). This makes
wait_if_global_read_lock() fail with an error message for
the thread with the global read lock. No deadlock happens.
mysql-test/r/lock_multi.result:
Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock
The test result
mysql-test/t/lock_multi.test:
Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock
The test case
sql/sql_db.cc:
Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock
Exchanged the order of acquiring LOCK_mysql_create_db
and wait_if_global_read_lock().
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
mysql-test/r/grant.result:
Auto merged
mysql-test/t/grant.test:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
mysql-test/r/grant.result:
Reorder test result
mysql-test/t/grant.test:
Add "use test"
sql/sql_acl.cc:
Add check if host is NULL
Add check if grant_name->host.hostname is null
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
mysql-test/t/grant.test:
Auto merged
sql/sql_acl.cc:
Auto merged
mysql-test/r/grant.result:
SCCS merged