The problem is that one can not create a stored routine if sql_mode
contains NO_ENGINE_SUBSTITUTION or PAD_CHAR_TO_FULL_LENGTH. Also when
a event is created, the mode is silently lost if sql_mode contains one
of the aforementioned. This was happening because the table definitions
which stored sql_mode values weren't being updated to accept new values
of sql_mode.
The solution is to update, in a backwards compatible manner, the various
table definitions (columns) that store the sql_mode value to take into
account the new possible values. One incompatible change is that if a event
that is being created can't be stored to the mysql.event table, an error
will be raised.
The tests case also ensure that new SQL modes will be added to the mysql.proc
and mysql.event tables, otherwise the tests will fail.
mysql-test/r/events_bugs.result:
Add test case result for Bug#32633
mysql-test/r/information_schema.result:
Update the sql_mode column definition.
mysql-test/r/sp.result:
Add test case result for Bug#32633
mysql-test/r/system_mysql_db.result:
Update the sql_mode column definition.
mysql-test/t/events_bugs.test:
Add test case for Bug#32633
mysql-test/t/sp.test:
Add test case for Bug#32633
mysql-test/t/system_mysql_db_fix50117.test:
Update the sql_mode column definition.
scripts/mysql_system_tables.sql:
Update the sql_mode column definition.
scripts/mysql_system_tables_fix.sql:
Update the sql_mode column definition.
sql/event_db_repository.cc:
Reset and restore SQL modes when storing and loading a
event from the data dictionary. Also throw out a error
if a store fails.
sql/mysqld.cc:
Add warning to avoid this problem in the future.
sql-common/my_user.c:
Truncate length if user name or host name does not fit
in the buffer.
sql/sp.cc:
SQL mode of the thread must not effect data dictionary operations.
ndb/tools/waiter.cpp:
- Only contact ndb_mgmd once per loop
- Program only cares about ndbd nodes -> remove the api and mgm vectors
- Program can not wait for "starting" -> remove that code
- Remove unused includes
- Protect against SIGPIPE(writing to a socket where the mgmsrv was
gone, silently killed the program)
- Don't sleep one second if if all nodes are in the wanted state
- Use 100 milliseconds sleep between each poll
into riska.(none):/home/sven/bk/b34355-backslash_in_path_name_under_win/5.1-new-rpl
client/mysqlbinlog.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/slave.h:
Auto merged
slash in filenames also for Create_file_log_event.
client/mysqlbinlog.cc:
BUG#34355: mysqlbinlog outputs backslash as path separator for 4.1 binlogs
Problem: When the windows version of mysqlbinlog reads 4.1 binlogs
containing LOAD DATA INFILE, it outputs backslashes as path separators in
filenames. However, the output is typically piped to a client, and client
expects forward slashes.
Fix: Replace '\\' by '/' in filenames.
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/suite/ndb_team/r/rpl_ndb_dd_advance.result:
Auto merged
mysql-test/suite/rpl_ndb/t/disabled.def:
Auto merged
sql/log_event.cc:
Auto merged
sql/rpl_rli.cc:
Adding variable to mark an instance of Relay_log_info as fake.
sql/rpl_rli.h:
Adding variable to mark an instance of Relay_log_info as fake.
sql/slave.cc:
Not printing debug information if we are working with a fake
instance of Relay_log_info. This because the result of calling
update is nonsense, and trying to print it generates valgrind
warnings.
sql/sql_binlog.cc:
Marking newly created instance of Relay_log_info as a fake instance.
Changed "SHOW ENGINE ... STATUS" and "SHOW ENGINE ... MUTEX"
to require the PROCESS privilege, instead of SUPER.
Fixed by Damien Katz
mysql-test/r/show_check.result:
Add test case result for Bug#32710
mysql-test/t/show_check.test:
Add test case for Bug#32710
sql/sql_parse.cc:
Require PROCESS privilege instead of SUPER.
During TC-take-over (NF) the new-TC builds up a new transaction state
And commits operation according to this state.
However, in the new state that is build, the operations does not have to be in same order, as "real" state
In the multi-update-case, this means that operations can be commit in "incorrect" order
i.e update A, delete A, insert A is normally commited in same order as prepared
but can be committed in any order
This patch changes TUP handling of these out-order commits, and previous implementation
could confuse the TUX triggers
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
new method
storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp:
move removeActiveOpList, cause it's now only used by DbtupAbort
storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
- move tux-trigger execution *before* check of disk, since ops can be committed during a disk timeslice
- allow out-of-order commits and use tuple_ptr->m_operation_ptr_i for determening "real" commit
(instead of re-ordering operations on the fly, which confused tux-triggers)
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
use constant instead of number
storage/ndb/test/run-test/daily-basic-tests.txt:
"old-51" does not yet support --nologging
Re-enable the test case for Bug 30331.
mysql-test/r/lock_multi.result:
Update the test case result for Bug#30331
mysql-test/t/lock_multi.test:
Re-enable the test case for Bug#30331
testcases
storage/ndb/src/kernel/blocks/ERROR_codes.txt:
new error codes
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
new error codes
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
new error codes
storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
remove assert
storage/ndb/test/ndbapi/testNodeRestart.cpp:
new testcase
1) -n Bug34216
Which tests node diying during multip-op commit
Very controlled
2) -n mixedmultiop
Runs several threads "load" of same scenario...not very controlled
storage/ndb/test/run-test/daily-basic-tests.txt:
new testcases
into ramayana.hindu.god:/home/tsmith/m/bk/build/51
Also use the opportunity to fix a bad merge (remove
duplicate code in mysql-test-run.pl).
mysql-test/mysql-test-run.pl:
Fix bad merge (remove duplicate code adding --user=root arg)