The problem is that AFTER UPDATE triggers will fire only if the
new data is different from the old data on the row. The trigger
should fire regardless of whether there are changes to the data.
The solution is to fire the trigger on UPDATE even if there are
no changes to the value (because the value is the same).
mysql-test/r/trigger.result:
Add test case result for Bug#23771
mysql-test/t/trigger.test:
Add test case for Bug#23771
sql/sql_update.cc:
Move the invocation of the after update trigger so that
the trigger will fire even if the records are the same.
(originally from Mats)
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.
into dipika.(none):/opt/local/work/mysql-5.1-runtime
include/my_sys.h:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/suite/binlog/r/binlog_row_binlog.result:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql-common/client.c:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_view.cc:
Auto merged
mysql-test/extra/binlog_tests/binlog.test:
Manual merge of binlog test case for Bug#33798
mysql-test/suite/binlog/r/binlog_row_binlog.result:
Add test case result for Bug#33798
mysql-test/suite/binlog/r/binlog_stm_binlog.result:
Add test case result for Bug#33798
sql/item.cc:
Use new method which accepts a unsigned flag.
into mysql.com:/Users/davi/mysql/mysql-5.1-runtime
mysql-test/r/ps.result:
Auto merged
mysql-test/t/ps.test:
Auto merged
sql/item.cc:
Auto merged
mysql-test/extra/binlog_tests/binlog.test:
Manual merge.
mysql-test/suite/binlog/r/binlog_stm_binlog.result:
Manual merge.
The unsignedness of large integer user variables was not being
properly preserved when feeded to prepared statements. This was
happening because the unsigned flags wasn't being updated when
converting the user variable is converted to a parameter.
The solution is to copy the unsigned flag when converting the
user variable to a parameter and take the unsigned flag into
account when converting the integer to a string.
mysql-test/r/binlog.result:
Add test case result for Bug#33798
mysql-test/r/ps.result:
Add test case result for Bug#33798
mysql-test/t/binlog.test:
Add test case for Bug#33798
mysql-test/t/ps.test:
Add test case for Bug#33798
sql/item.cc:
Take the unsigned flag into account when converting the
user variable.
On crashes generate a user-friendly resolved and demangled stack
trace when libc provides the necessary functions (newer libc on i386,
x86_64, powerpc, ia64, alpha and s390). Otherwise print a numeric
stack trace as before, relying on resolve_stack_dump utility.
configure.in:
Add check for backtrace headers, backtrace functions and if
__cxa_demangle (libstdc++) is available at link time.
sql/mysqld.cc:
Print the value of the THD::killed variable when dumping. In
some circumstances knowing if the thread was killed makes
debugging easier.
sql/stacktrace.c:
Use the glibc backtrace function when available and demangle
C++ function names if the __cxa_demangle function is available.
sql/stacktrace.h:
Locally export and wrap in C linkage the C++ function __cxa_demangle
if available.
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.
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.
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
Bug 34311: main.lock_multi.test fails.
mysql-test/r/lock_multi.result:
Update result file.
mysql-test/t/lock_multi.test:
Disabled test case for Bug#30331.
Fixed interference between tests: Users were added but not properly removed.
This caused later tests to fail.
mysql-test/r/grant.result:
Fixed interference between tests: Users were added but not properly removed.
This caused later tests to fail.
mysql-test/t/grant.test:
Fixed interference between tests: Users were added but not properly removed.
This caused later tests to fail.
The problem is that deprecated syntax warnings were not being
suppressed when the stored routine is being parsed for the first
execution. It's doesn't make sense to print out deprecated
syntax warnings when the routine is being executed because this
kind of warning only matters when the routine is being created.
The solution is to suppress deprecated syntax warnings when
parsing the stored routine for loading into the cache (might
mean that the routine is being executed for the first time).
mysql-test/r/sp-error.result:
Add test case result for Bug#21801
mysql-test/t/sp-error.test:
Add test case for Bug#21801
sql/sp.cc:
Implement a internal error handler to catch deprecated
syntax warnings when loading a stored procedure into the
cache.
mysql-test/suite/rpl/r/rpl_row_trig001.result:
Result change.
mysql-test/suite/rpl/t/rpl_row_trig001.test:
Correcting a typo and trying to avoid a race condition when
dumping the contents of the master and slave for comparison.