Bug #96845 workaround bug in VS 2019
Submitted: 12 Sep 2019 9:40 Modified: 16 Sep 2019 16:09
Reporter: Tor Didriksen Email Updates:
Status: Closed Impact on me:
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:8.0.19 OS:Any
Assigned to: CPU Architecture:Any

[12 Sep 2019 9:40] Tor Didriksen
Could not find executable ...../merge_large_tests-t

That's because temptable_storage-t.cc does not build.

How to repeat:
build with Visual Studio 2019

cmake --build . --config debug --target temptable_storage-t

unittest\gunit\temptable_storage-t.cc(63,46): error C3409:  empty attribute block is not allowed [C:\ade\8.0-review-sysssl\unittest\gunit\temptable_storage-t.vcxproj]
unittest\gunit\temptable_storage-t.cc(63,46): error C2059:  syntax error: '(' [C:\ade\8.0-review-sysssl\unittest\gunit\temptable_storage-t.vcxproj]
unittest\gunit\temptable_storage-t.cc(63,46): error C2601:  't': local function definitions are illegal [C:\ade\8.0-review-sysssl\unittest\gunit\temptable_storage-t.vcxproj]
unittest\gunit\temptable_storage-t.cc(62): message :  this line contains a '{' which has not yet been matched [C:\ade\8.0-review-sysssl\unittest\gunit\temptable_storage-t.vcxproj]

Suggested fix:
The error message is misleading, the problem is this line:
    decltype(alloc)::rebind<uint32_t>::other rebound_alloc(alloc);

Rewrite the test, move the lambda out of the std::thread CTOR.
[16 Sep 2019 16:09] Paul DuBois
Posted by developer:
Fixed in 8.0.19.

Work was done for test suite. No changelog entry required.