3397 Vasil Dimov 2011-08-22
Replay vasil.dimov@stripped which I
reverted last week because it was suspected for causing failures it did
not.
* revision-id vasil.dimov@stripped
* committer Vasil Dimov <vasil.dimov@stripped>
* branch nick mysql-trunk
* timestamp Wed 2011-08-17 21:50:46 +0300
* message
* Blind attempt to fix BUG 12881278 - MAIN.MYISAM TEST FAILS ON LINUX
*
* The printed text is truncated on char 63:
*
* "MySQL thread id 1236, OS thread handle 0x7ff187b96700, query id"
*
* still I do not understand how this truncation could have caused the
* main.myisam failure but anyway - the buffer needs to be increased.
modified:
sql/sql_class.cc
3396 Vasil Dimov 2011-08-22
Implement WL#5652 InnoDB: Use HW CRC32
+ Introduce a new option innodb_checksum_algorithm that may have the
following values:
* crc32
Write CRC32 to both checksum fields (calculated using CPU instructions
if supported).
When reading allow any of the valid checksums to match (flexible
allowing old files to be read, but increases the possibility for
announcing a corrupted page to be valid). Still if one of the two fields
contains CRC32, the other one must contain CRC32 too.
* strict_crc32
Write CRC32 to both checksum fields
When reading allow only CRC32 to match (will announce old files as
corrupted, but minimizes the possibility to announce a corrupted page
as valid).
* innodb
Write InnoDB calculated (custom algorithm) checksum to both checksum
fields (different algo is used for each field).
When reading allow any of the valid checksums to match.
* strict_innodb
Write InnoDB calculated (custom algorithm) checksum to both checksum
fields (different algo is used for each field).
When reading allow only InnoDB algorithm to match.
* none
Write a constant magic number to both fields
When reading do not do any checks on the checksum fields
(same as setting innodb_checksums=OFF)
* strict_none
Write a constant magic number to both fields
When reading allow only the constant magic number to match.
+ Deprecate innodb_checksums (use innodb_checksum_algorithm=NONE instead)
+ Remove copy-pasted InnoDB source from extra/innochecksum.c and link
the innochecksum executable with libinnobase.a
+ For the above to work extract the functions innochecksum needs in a
dedicated files
+ Add the Facebook contributed CRC32 implementation into ut0crc32.c
added:
mysql-test/suite/sys_vars/r/innodb_checksum_algorithm_basic.result
mysql-test/suite/sys_vars/t/innodb_checksum_algorithm_basic.test
storage/innobase/buf/buf0checksum.c
storage/innobase/include/buf0checksum.h
storage/innobase/include/ut0crc32.h
storage/innobase/ut/ut0crc32.c
modified:
extra/CMakeLists.txt
extra/innochecksum.c
storage/innobase/CMakeLists.txt
storage/innobase/buf/buf0buf.c
storage/innobase/buf/buf0flu.c
storage/innobase/buf/buf0lru.c
storage/innobase/handler/ha_innodb.cc
storage/innobase/include/buf0buf.h
storage/innobase/include/page0zip.h
storage/innobase/include/srv0srv.h
storage/innobase/include/univ.i
storage/innobase/page/page0zip.c
storage/innobase/srv/srv0srv.c
=== modified file 'sql/sql_class.cc'
--- a/sql/sql_class.cc revid:vasil.dimov@stripped
+++ b/sql/sql_class.cc revid:vasil.dimov@stripped
@@ -666,7 +666,7 @@ char *thd_security_context(THD *thd, cha
{
String str(buffer, length, &my_charset_latin1);
const Security_context *sctx= &thd->main_security_ctx;
- char header[64];
+ char header[256];
int len;
/*
The pointers thd->query and thd->proc_info might change since they are
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-trunk branch (vasil.dimov:3396 to 3397) | vasil.dimov | 22 Aug |