There are two issues fixed here:
1. We needed to update the result file, for some of
mysqlbinlog_* tests, because now the some padding chars
are not output anymore.
2. We needed to change the Field_string::pack so that
for BINARY types the padding chars are not packed
(lengthsp will return full length for these types).
Conflicts:
Text conflict in client/mysqlbinlog.cc
Text conflict in mysql-test/r/explain.result
Text conflict in mysql-test/r/subselect.result
Text conflict in mysql-test/r/subselect3.result
Text conflict in mysql-test/r/type_datetime.result
Text conflict in sql/share/Makefile.am
Unquoted ${CMAKE_CPACK_COMMAND} is used in this script.
This variable resolves to cpack's real path with spaces, e.g
/Applications/CMake 2.6.4-app/Contents/bin/cpack.
Script fails due to lack of quotes.
Fix is to use quotes around ${CMAKE_CPACK_COMMAND}.
The problem is introduced by WL#4435 "Support OUT-parameters in
prepared statements".
When a statement that has out parameters was reprepared,
the reprepare request error was ignored, and an
attempt to send out parameters to the client was made.
Since the out parameter list was not initialized in case
of an error, this attempt led to a crash.
Don't try to send out parameters to the client
if an error occurred in statement execution.
sql/sql_prepare.cc:
Don't try to send out parameters if error.
tests/mysql_client_test.c:
Re-enable the test case for Bug#49972.
------------------------------------------------------------------------
r6777 | marko | 2010-03-04 13:01:25 +0200 (Thu, 04 Mar 2010) | 2 lines
Changed paths:
M /branches/zip/trx/trx0rec.c
branches/zip: trx_undo_update_rec_get_update(): Silence a bogus GCC warning
about a possibly uninitialized variable.
------------------------------------------------------------------------
r6779 | marko | 2010-03-08 14:35:42 +0200 (Mon, 08 Mar 2010) | 6 lines
Changed paths:
M /branches/zip/ChangeLog
M /branches/zip/fil/fil0fil.c
branches/zip: Fix IMPORT TABLESPACE of compressed tables. Previously,
a wrong parameter was passed to buf_flush_init_for_writing().
fil_reset_too_high_lsns(): Set up page_zip and use it if needed.
rb://264, Issue #352
------------------------------------------------------------------------
r6781 | marko | 2010-03-09 09:41:08 +0200 (Tue, 09 Mar 2010) | 4 lines
Changed paths:
M /branches/zip/ChangeLog
M /branches/zip/handler/ha_innodb.cc
branches/zip: Make SHOW ENGINE INNODB MUTEX display SUM(os_waits)
for block mutexes and blocks.
Designed by Michael and Marko. rb://188, Issue #358
------------------------------------------------------------------------
r6782 | marko | 2010-03-09 14:09:26 +0200 (Tue, 09 Mar 2010) | 1 line
Changed paths:
M /branches/zip/fil/fil0fil.c
branches/zip: fil0fil.c: Update comments on table->flags as of r6252.
------------------------------------------------------------------------
r6786 | vasil | 2010-03-10 09:16:50 +0200 (Wed, 10 Mar 2010) | 4 lines
Changed paths:
M /branches/zip/mysql-test/innodb-consistent.test
branches/zip:
Fix typo in comment
------------------------------------------------------------------------
r6787 | marko | 2010-03-10 10:35:06 +0200 (Wed, 10 Mar 2010) | 10 lines
Changed paths:
M /branches/zip/ChangeLog
M /branches/zip/log/log0recv.c
branches/zip: recv_parse_log_rec(): Remove a bogus assertion about page_no.
TODO: We might also consider removing recv_max_parsed_page_no, because
it does not make much sense with *.ibd files.
recv_report_corrupt_log(), recv_scan_log_recs(): Abort when a
corrupted log record has been found, unless innodb_force_recovery has
been set.
This fixes Issue #464.
rb://265 approved by Heikki Tuuri
------------------------------------------------------------------------
r6789 | jyang | 2010-03-10 11:18:18 +0200 (Wed, 10 Mar 2010) | 10 lines
Changed paths:
M /branches/zip/handler/ha_innodb.cc
M /branches/zip/handler/handler0alter.cc
A /branches/zip/mysql-test/innodb_bug51378.result
A /branches/zip/mysql-test/innodb_bug51378.test
branches/zip: If a unique index is on a column prefix, such
unique index cannot be upgrade to primary index even if there
is no primary index already defined. Also fix possible corruption
when initialize "ref_length" value in case there is a mismatch
between MySQL and InnoDB primary key. Fix bug #51378: "Init
'ref_length' to correct value, in case an out of bound MySQL
primary_key".
rb://262 approved by Marko.
------------------------------------------------------------------------
r6790 | jyang | 2010-03-10 13:09:41 +0200 (Wed, 10 Mar 2010) | 7 lines
Changed paths:
M /branches/zip/handler/ha_innodb.cc
branches/zip: Fix bug #51356: "many valgrind errors in error messages
with concurrent ddl". Null terminate the name string returned
from innobase_convert_identifier() call when reporting DB_DUPLICATE_KEY
error in create_table_def().
rb://266 approved by Marko
------------------------------------------------------------------------
r6791 | marko | 2010-03-10 13:39:06 +0200 (Wed, 10 Mar 2010) | 1 line
Changed paths:
M /branches/zip/ChangeLog
branches/zip: Add ChangeLog entries for r6789, r6790.
------------------------------------------------------------------------
r6792 | marko | 2010-03-10 13:56:41 +0200 (Wed, 10 Mar 2010) | 1 line
Changed paths:
A /branches/zip/mysql-test/innodb_bug38231.result (from /branches/5.1/mysql-test/innodb_bug38231.result:6791)
A /branches/zip/mysql-test/innodb_bug38231.test (from /branches/5.1/mysql-test/innodb_bug38231.test:6791)
A /branches/zip/mysql-test/innodb_bug39438-master.opt (from /branches/5.1/mysql-test/innodb_bug39438-master.opt:6791)
A /branches/zip/mysql-test/innodb_bug39438.result (from /branches/5.1/mysql-test/innodb_bug39438.result:6791)
A /branches/zip/mysql-test/innodb_bug39438.test (from /branches/5.1/mysql-test/innodb_bug39438.test:6791)
branches/zip: Copy tests from branches/5.1 that were lost in some merge.
------------------------------------------------------------------------
r6793 | marko | 2010-03-10 14:02:19 +0200 (Wed, 10 Mar 2010) | 60 lines
Changed paths:
M /branches/zip/ChangeLog
M /branches/zip/handler/ha_innodb.cc
M /branches/zip/mysql-test/innodb_bug21704.result
A /branches/zip/mysql-test/innodb_bug47621.result (from /branches/5.1/mysql-test/innodb_bug47621.result:6788)
A /branches/zip/mysql-test/innodb_bug47621.test (from /branches/5.1/mysql-test/innodb_bug47621.test:6788)
M /branches/zip/plug.in
M /branches/zip/trx/trx0sys.c
branches/zip: Merge revisions 6669:6788 from branches/5.1:
------------------------------------------------------------------------
r6774 | calvin | 2010-03-03 23:56:10 +0200 (Wed, 03 Mar 2010) | 2 lines
Changed paths:
M /branches/5.1/trx/trx0sys.c
branches/5.1: fix bug#51653: outdated reference to set-variable
Non functional change.
------------------------------------------------------------------------
r6780 | vasil | 2010-03-08 19:13:20 +0200 (Mon, 08 Mar 2010) | 4 lines
Changed paths:
M /branches/5.1/plug.in
branches/5.1:
Whitespace fixup.
------------------------------------------------------------------------
r6783 | jyang | 2010-03-09 17:54:14 +0200 (Tue, 09 Mar 2010) | 9 lines
Changed paths:
M /branches/5.1/handler/ha_innodb.cc
M /branches/5.1/mysql-test/innodb_bug21704.result
A /branches/5.1/mysql-test/innodb_bug47621.result
A /branches/5.1/mysql-test/innodb_bug47621.test
branches/5.1: Fix bug #47621 "MySQL and InnoDB data dictionaries
will become out of sync when renaming columns". MySQL does not
provide new column name information to storage engine to
update the system table. To avoid column name mismatch, we shall
just request a table copy for now.
rb://246 approved by Marko.
------------------------------------------------------------------------
r6785 | vasil | 2010-03-10 09:04:38 +0200 (Wed, 10 Mar 2010) | 11 lines
Changed paths:
M /branches/5.1/mysql-test/innodb_bug38231.test
branches/5.1:
Add the missing --reap statements in innodb_bug38231.test. Probably MySQL
enforced the presence of those recently and the test started failing like:
main.innodb_bug38231 [ fail ]
Test ended at 2010-03-10 08:48:32
CURRENT_TEST: main.innodb_bug38231
mysqltest: At line 49: Cannot run query on connection between send and reap
------------------------------------------------------------------------
r6788 | vasil | 2010-03-10 10:53:21 +0200 (Wed, 10 Mar 2010) | 8 lines
Changed paths:
M /branches/5.1/mysql-test/innodb_bug38231.test
branches/5.1:
In innodb_bug38231.test: replace the fragile sleep 0.2 that depends on timing
with a more robust condition which waits for the TRUNCATE and LOCK commands
to appear in information_schema.processlist. This could also break if there
are other sessions executing the same SQL commands, but there are none during
the execution of the mysql test.
------------------------------------------------------------------------
------------------------------------------------------------------------
r6798 | marko | 2010-03-11 09:53:01 +0200 (Thu, 11 Mar 2010) | 14 lines
Changed paths:
M /branches/zip/ChangeLog
M /branches/zip/include/buf0buf.h
M /branches/zip/include/buf0buf.ic
branches/zip: Fix and clarify the latching of some buf_block_t members.
buf_block_t::check_index_page_at_flush: Note that this field is not
protected by any mutex. Make it a separate field, not a bitfield that
could share the machine word with other fields.
buf_block_t::lock_hash_val: Note that this field is protected by
buf_block_t::lock (or during block creation, by buf_pool_mutex and
buf_block_t::mutex).
buf_block_get_lock_hash_val(): Assert that block->lock is held by the
current thread.
Issue #465, rb://267 approved by Inaam Rana
------------------------------------------------------------------------
r6799 | jyang | 2010-03-11 09:59:42 +0200 (Thu, 11 Mar 2010) | 5 lines
Changed paths:
M /branches/zip/mysql-test/innodb_bug44571.result
M /branches/zip/mysql-test/innodb_bug44571.test
branches/zip: Once change in bug #47621 merges into zip branch,
zip only test innodb_bug44571 needs to be updated to reflect the
column name change would be successful be done in InnoDB as well.
------------------------------------------------------------------------
r6800 | marko | 2010-03-11 12:02:57 +0200 (Thu, 11 Mar 2010) | 1 line
Changed paths:
M /branches/zip/btr/btr0pcur.c
M /branches/zip/buf/buf0buf.c
M /branches/zip/include/mtr0mtr.ic
branches/zip: Add ut_ad(mtr->state == MTR_ACTIVE) to various places.
------------------------------------------------------------------------
r6801 | marko | 2010-03-11 13:34:28 +0200 (Thu, 11 Mar 2010) | 2 lines
Changed paths:
M /branches/zip/include/mtr0mtr.ic
branches/zip: mtr_memo_contains(): Relax the assertion of r6800,
allowing mtr->state == MTR_COMMITTING.
------------------------------------------------------------------------
- Fixing crash on attempt to create a fulltext index with an utf8mb4 column
- fixing wrong border width for supplementary characters in mysql client:
mysql --default-character-set=utf8mb4 -e "select concat(_utf32 0x20000,'a')"
Split rpl_row_charset into:
- rpl_row_utf16.
- rpl_row_utf32.
This way these tests can run independently if server supports
either one of the charsets but not both.
Cleaned up rpl_row_utf32 which had a spurious instruction:
-- let $reset_slave_type_conversions= 0
the page hash table. This serves two purposes. It allows multiple
watches to be set at the same time (by multiple purge threads) and it
removes a race condition when the read of a block completes about the
time the buffer pool watch is being set.
buf_pool_watch_clear(): Rename to buf_pool_watch_unset(). Add
parameters space, offset.
buf_pool_watch_remove(): A helper function for removing the watch.
buf_pool_watch_is(): A predicate for testing if a block descriptor is
a sentinel for the buffer pool watch.
buf_pool_watch[BUF_POOL_WATCH_SIZE]: An array of sentinel block descriptors.
buf_pool_watch_set(): Add a parameter for the fold value, and return
the block if the block is in the buffer pool. Allocate the sentinel
from buf_pool_watch[] if needed. Use buf_fix_count for
reference-counting.
enum buf_block_state: Add BUF_BLOCK_POOL_WATCH as a state alias that
is shared with BUF_BLOCK_ZIP_FREE.
buf_page_hash_get_low(): A low-level variant of buf_page_hash_get()
that takes the fold value as a parameter and may return a watch
sentinel block. In callers, test the return value for
buf_pool_watch_is() [impossible cases with ut_ad(), possible ones with if].
When needed, invoke buf_pool_watch_remove() but preserve the buf_fix_count.
buf_page_hash_get(), buf_block_hash_get(): Return NULL for watch
sentinel blocks, to keep existing behaviour.
buf_page_init(): Add a parameter for the fold value.
ibuf_insert(): If a buffer pool watch exists for the block, refuse to
buffer subsequent operations, so that the purge that is being buffered
will not "overtake" later requests. Previously, we would notify the
watch in this case. Either way, the block would be read to the buffer
pool. In the current design, we can only notify the watch by actually
setting up a real block in buf_pool->page_hash.
rb://263 approved by Inaam Rana
In BUG#51787 we were using the wrong charset to print out the
data. We were using the field charset for the string that would
hold the information. This caused the assertion, because the
string length was not aligned with UTF32 bytes requirements for
storage.
We fix this by using &my_charset_latin1 in the string object
instead of the field->charset(). As a side-effect, we needed to
extend the show_sql_type interface so that it took the field
charset is now passed as a parameter, so that one is able to
calculate the correct field size.
In BUG#51716 we had issues with Field_string::pack and
Field_string::unpack. When packing, the length was incorrectly
calculated. When unpacking, the padding the string would be
padded with the wrong bytes (a few bytes less than it should).
We fix this by resorting to charset abstractions (functions) that
calculate the correct length when packing and pad correctly the
string when unpacking.
LOCK kills the server.
Prohibit FLUSH TABLES WITH READ LOCK application to views or
temporary tables.
Fix a subtle bug in the implementation when we actually
did not remove table share objects from the table cache after
acquiring exclusive locks.
mysql-test/r/flush.result:
Update results (Bug#51710)
mysql-test/t/flush.test:
Add a test case for Bug#51710.
sql/sql_parse.cc:
Fix Bug#51710 "FLUSH TABLES <view> WITH READ LOCK
killes the server.
Ensure we don't open views and temporary tables.
Fix a yet another bug in the implementation which
did not actually remove the tables from cache after acquiring
exclusive locks.
The problem was that in read only mode (read_only enabled),
the server would mistakenly deny data modification attempts
for temporary tables which belong to a transactional storage
engine (eg. InnoDB).
The solution is to allow transactional temporary tables to be
modified under read only mode. As a whole, the read only mode
does not apply to any kind of temporary table.
mysql-test/r/read_only_innodb.result:
Add test case result for Bug#33669
mysql-test/t/read_only_innodb.test:
Add test case for Bug#33669
sql/lock.cc:
Rename mysql_lock_tables_check to lock_tables_check and make
it static. Move locking related checks from get_lock_data to
lock_tables_check. Allow write locks to temporary tables even
under read-only.
Plugins included into bin release cannot be
installed on debug version of server
Ensure that the plugin files of the debug build
get into the optimized tree, so that they find
their way into the final RPMs.
support-files/mysql.spec.sh:
Use "make install" in the debug build tree to get the debug
plugin files to a temporary location,
then move them to "plugin/debug/" in the optimized build tree
so that the install hook in "plugin/Makefile.am" forwards them
into the final installation.
This fixes bug#49022 for the generic RPMs.
Unrelated:
The plugin objects were listed twice in the file list,
do a cleanup.
The test case crashes and recovers the server twice, and while
recovering InnoDB sets innodb_file_format_check to different
format on second restart. This makes the test case clean up
check to fail.
We fix this by deploying the option "--innodb_file_format_check='ON'"
in slave startup configuration. This makes the innodb_file_format_check
to not change on secod restart.
SET autocommit=1 while XA transaction is active may
cause various side effects, including memory corruption
and server crash.
The problem is that SET autocommit=1 and further queries
attempt to commit local transaction, whereas XA transaction
is still active.
As local and XA transactions are mutually exclusive, this
patch forbids enabling autocommit mode while XA transaction
is active.
mysql-test/r/xa.result:
A test case for BUG#51342.
mysql-test/t/xa.test:
A test case for BUG#51342.
sql/set_var.cc:
Forbid enabling autocommit mode while XA transaction is
active.