correctly in some cases".
In short, calls to a stored function located in another database
than the default database, may fail to replicate if the call was made
by SET, SELECT, or DO.
Longer: when a stored function is called from a statement which does not go
to binlog ("SET @a=somedb.myfunc()", "SELECT somedb.myfunc()",
"DO somedb.myfunc()"), this crafted statement is binlogged:
"SELECT myfunc();" (accompanied with a mention of the default database
if there is one). So, if "somedb" is not the default database,
the slave would fail to find myfunc(). The fix is to specify the
function's database name in the crafted binlogged statement, like this:
"SELECT somedb.myfunc();". Test added in rpl_sp.test.
mysql-test/r/rpl_sp.result:
Because I moved the SHOW BINLOG EVENTS down a bit, big portions of its
output move. Also, the function's database name appears in
SELECT statements.
mysql-test/t/rpl_sp.test:
Adding test for BUG#19725.
Moving the SHOW BINLOG EVENTS down, it is run at the very end to
test everything.
sql/sp_head.cc:
When binlogging a "SELECT myfunc()" (when a stored function is executed
inside a statement which does not go to the binlog (like a SET,
SELECT, DO), we need to write "SELECT db_of_myfunc().myfunc()",
because the function may be in a database which is not the default
database.
into mysql.com:/usr/home/bar/mysql-5.0.b22645
mysql-test/t/disabled.def:
Auto merged
sql/log_event.cc:
Auto merged
sql/log_event.h:
Auto merged
mysql-test/r/mysqlbinlog.result:
After merge fix
mysql-test/t/mysqlbinlog.test:
After merge fix
into mysql.com:/home/bk/MERGE/mysql-5.0-merge
client/mysqldump.c:
Auto merged
include/my_pthread.h:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysql-test/r/rpl_timezone.result:
Auto merged
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/mysqldump.test:
Auto merged
mysys/my_thr_init.c:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
into quant.(none):/ext/mysql/bk/mysql-5.0-bug24507
client/mysqlbinlog.cc:
Auto merged
client/mysqldump.c:
Auto merged
mysql-test/t/disabled.def:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_parse.cc:
Auto merged
The problem was located to lie inside current NPTL pthread_exit()
implementation. Race conditions in this code can lead to segmentation
fault. Hovewer, this can happen only in a race between first thread
calling pthread_exit() and other threads.
Workaround implemented in this patch spawns a dummy thread, which
exits immediately, during thread lib initialization. This will exclude
segment violations when further threads exit.
include/my_pthread.h:
define macro NPTL_PTHREAD_EXIT_BUG which controls whether workaround
in my_thread_global_init() is included or not.
mysys/my_thr_init.c:
Spawn a dummy thread in my_thread_global_init() to initialize pthread
lib internal variables.
Implementing event based replication of LC_TIME_NAMES for 5.0
(as a replacement of previously made ONE_SHOT replication)
mysql-test/r/mysqlbinlog.result:
Fixing results
mysql-test/r/rpl_locale.result:
Fixing results
mysql-test/t/disabled.def:
Enabling rpl_locale
mysql-test/t/mysqlbinlog.test:
Check "mysqlbinlog | mysql" reproduces lc_time_names correctly.
mysql-test/t/rpl_locale.test:
Adding new test: that setting lc_time_names back to en_US works fine.
sql/log_event.cc:
Implementing event based replication of LC_TIME_NAMES for 5.0
(as a replacement of previously made ONE_SHOT replication)
sql/log_event.h:
Adding new Q_*_CODE
Adding "lc_time_names_number" members into Query_log_event and PRINT_EVENT_INFO
Remove DBUG_ENTER in my_end
client/mysqltest.c:
Call 'mysql_server_end' as last function in 'free_used_memory'
Don't use DBUG_VOID_RETURN after mysql_server_end in free_used_memory
Only call mysql_server_end if mysql_server_init has been called
mysql-test/t/disabled.def:
Disabling test in 5.0 temporarily
sql/mysql_priv.h:
Adding number_par agrument to constructor
sql/sql_locale.cc:
Using constructor, instead of structure initialization.
into mysql.com:/usr/home/bar/mysql-5.0.b22645
mysql-test/r/variables.result:
Auto merged
mysql-test/t/variables.test:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/log.cc:
Removing one_shot from 5.0.
sql/sql_locale.cc:
After merge fix
sql/set_var.cc:
After merge fix
sql/set_var.h:
After merge fix
Problem: replication of LC_TIME_NAMES didn't work.
Thus, INSERTS or UPDATES using date_format() always
worked with en_US on the slave side.
Fix: adding ONE_SHOT implementation for LC_TIME_NAMES.
mysql-test/r/variables.result:
Adding various tests with LC_TIME_NAMES and
string and numeric constants and expressions.
mysql-test/t/variables.test:
Adding various tests with LC_TIME_NAMES and
string and numeric constants and expressions.
sql/log.cc:
Adding ONE_SHOT trick for lc_time_names.
sql/mysql_priv.h:
Adding new member "number" - for unique locale IDs.
Adding prototype for my_locale_by_number().
sql/set_var.cc:
Modifying lc_time_names variable to understand both:
- string valyes (using locale name)
- number values (using locale IDs)
sql/set_var.h:
- Marking lc_time_names as ONE_SHOT capable.
- Marking lc_time_names as INT_RESULT compatible.
sql/sql_locale.cc:
- adding local IDs
- better layout for locale data declarations
(splitting long lines into short ones)
- adding DBUG_ASSERT into my_locale_by_name()
and moving this function towards the end of file -
after "my_locales" declaration
- adding my_locale_by_number() implementation
sql/sql_parse.cc:
Adding initialization of lc_time_names
to its default value (en_US)
mysql-test/r/rpl_locale.result:
Adding test case
mysql-test/t/rpl_locale.test:
Adding test case
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
Makefile.am:
Auto merged
client/mysqltest.c:
Auto merged
myisam/mi_open.c:
Auto merged
mysql-test/lib/mtr_process.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
sql/mysqld.cc:
Auto merged
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
BitKeeper/etc/ignore:
auto-union
Docs/Makefile.am:
Auto merged
Makefile.am:
Auto merged
client/mysql.cc:
Auto merged
client/mysqltest.c:
Auto merged
include/Makefile.am:
Auto merged
myisam/myisampack.c:
Auto merged
mysql-test/lib/mtr_io.pl:
Auto merged
mysql-test/lib/mtr_process.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/view_grant.result:
Auto merged
mysql-test/t/view_grant.test:
Auto merged
sql/handler.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql-common/my_time.c:
Auto merged
sql/sql_handler.cc:
Auto merged
extra/yassl/taocrypt/include/algebra.hpp:
Manual merge with import of upstream yaSSL
Close any statements that might be open before program exit
Close any statments that might be open when calling "disable_ps_protocol"
client/mysqltest.c:
Close any statements that might be open before program exit
Close any statments that might be open when calling "disable_ps_protocol"
into neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
Makefile.am:
Auto merged
client/mysqltest.c:
Auto merged
mysql-test/lib/mtr_process.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
sql/mysqld.cc:
Auto merged
- Add CR_CONN_HOST_ERROR to list of errorcode that trigger another connection
attempt in mysqltest
client/mysqltest.c:
Add CR_CONN_HOST_ERROR to errorcodes that trigger a reconnect
fixed a valgrind warning
type_varchar.test:
fixed a valgrind warning
mysql-test/t/type_varchar.test:
fixed a valgrind warning
sql/item_func.cc:
fixed a valgrind warning
If --srcdir and --windows is given, check if error message file
is in source or build tree (bug#24557)
Makefile.am:
Cleaned up "ali_check" target, to satisfy "distcleancheck" (bug#24557)
mysql_install_db.sh:
Added --srcdir=DIR option, used from top Makefile.am in dist-hook
target, to find "fill_help_tables.sql" in VPATH build (bug#24557)
Makefile.am:
Work around problem with "distcleancheck", "sql_yacc.cc" might be in both
the source and build tree.
Call "mysql_install_db" with new option --srcdir, to enable the script
to find all that is needed, if source and build directory is not the same
(bug#24557)
scripts/mysql_install_db.sh:
If --srcdir and --windows is given, check if error message file
is in source or build tree (bug#24557)
Makefile.am:
Work around problem with "distcleancheck", "sql_yacc.cc" might be in both
the source and build tree.
Call "mysql_install_db" with new option --srcdir, to enable the script
to find all that is needed, if source and build directory is not the same
(bug#24557)
include/Makefile.am:
Cleaned up "ali_check" target, to satisfy "distcleancheck" (bug#24557)