<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/mariadb-git.git/sql/sql_bitmap.h, branch preview-10.8-MDEV-14425-innodb</title>
<subtitle>github.com: MariaDB/server.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/'/>
<entry>
<title>MDEV-19787 Speedup Table_map_iterator, via compiler intrinsics</title>
<updated>2019-06-19T09:10:49+00:00</updated>
<author>
<name>Vladislav Vaintroub</name>
<email>wlad@mariadb.com</email>
</author>
<published>2019-06-17T14:50:59+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=16ac8404ac4a0b7a7bc260200204e3373476a020'/>
<id>16ac8404ac4a0b7a7bc260200204e3373476a020</id>
<content type='text'>
Use __builtin_ctzll on GCC/Clang and _BitScanForward/_BitScanForward64 on
MSVC to speed up Table_map_iterator::next_bit(), up to 3 times in benchmarks
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use __builtin_ctzll on GCC/Clang and _BitScanForward/_BitScanForward64 on
MSVC to speed up Table_map_iterator::next_bit(), up to 3 times in benchmarks
</pre>
</div>
</content>
</entry>
<entry>
<title>MDEV-19702 Refactor Bitmap&lt;N&gt; to be based on ulonglong, not on uint32</title>
<updated>2019-06-19T09:10:49+00:00</updated>
<author>
<name>Vladislav Vaintroub</name>
<email>wlad@mariadb.com</email>
</author>
<published>2019-06-15T14:04:49+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=4594d68d10b77538312701f9eea316a27d6def8a'/>
<id>4594d68d10b77538312701f9eea316a27d6def8a</id>
<content type='text'>
Removed Field_map, since it was used only in a single function.

Fixed is_indexed_agg_distinct(), since it relied on initialization of
Bitmap in constructor.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Removed Field_map, since it was used only in a single function.

Fixed is_indexed_agg_distinct(), since it relied on initialization of
Bitmap in constructor.
</pre>
</div>
</content>
</entry>
<entry>
<title>MDEV-19709 Workaround "internal compiler bug" on GCC v 4.9</title>
<updated>2019-06-11T23:08:22+00:00</updated>
<author>
<name>Vladislav Vaintroub</name>
<email>wlad@mariadb.com</email>
</author>
<published>2019-06-11T23:08:09+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=1f6b02e9f0059932da4a9c05fdfc26f473a89cde'/>
<id>1f6b02e9f0059932da4a9c05fdfc26f473a89cde</id>
<content type='text'>
GCC crashes during compilation, on a code fragment that was added  to
workaround code generation bug on GCC.

To fix, I randomly moved pragmas around, which seems to make GCC happy.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GCC crashes during compilation, on a code fragment that was added  to
workaround code generation bug on GCC.

To fix, I randomly moved pragmas around, which seems to make GCC happy.
</pre>
</div>
</content>
</entry>
<entry>
<title>MDEV-19709: Unbreak the build for clang</title>
<updated>2019-06-11T10:56:57+00:00</updated>
<author>
<name>Marko Mäkelä</name>
<email>marko.makela@mariadb.com</email>
</author>
<published>2019-06-11T10:52:20+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=bb70d41932a23669dedf108d1af8581a3e7813d8'/>
<id>bb70d41932a23669dedf108d1af8581a3e7813d8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>MDEV-19709 Bitmap&lt;128&gt;::merge etc may crash on older GCC versions</title>
<updated>2019-06-11T04:58:00+00:00</updated>
<author>
<name>Vladislav Vaintroub</name>
<email>wlad@mariadb.com</email>
</author>
<published>2019-06-07T09:41:18+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=40ff8019d2a00071f533bb3210b4d3a552e95bc8'/>
<id>40ff8019d2a00071f533bb3210b4d3a552e95bc8</id>
<content type='text'>
Older GCC generates SSE instruction on not-128-bit-aligned data in
Bitmap&lt;128&gt;::buffer

Workaround by forcing GCC not to use SSE on Bitmap&lt;N&gt; template.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Older GCC generates SSE instruction on not-128-bit-aligned data in
Bitmap&lt;128&gt;::buffer

Workaround by forcing GCC not to use SSE on Bitmap&lt;N&gt; template.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch '10.3' into 10.4</title>
<updated>2019-05-19T18:55:37+00:00</updated>
<author>
<name>Oleksandr Byelkin</name>
<email>sanja@mariadb.com</email>
</author>
<published>2019-05-19T18:55:37+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=c07325f932abef2032b2e56532f6cb615e2a1161'/>
<id>c07325f932abef2032b2e56532f6cb615e2a1161</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge 10.2 into 10.3</title>
<updated>2019-05-14T14:18:46+00:00</updated>
<author>
<name>Marko Mäkelä</name>
<email>marko.makela@mariadb.com</email>
</author>
<published>2019-05-14T14:18:46+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=be85d3e61bb4217453a6879cb28d9bd369ad17dd'/>
<id>be85d3e61bb4217453a6879cb28d9bd369ad17dd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch '5.5' into 10.1</title>
<updated>2019-05-11T19:19:05+00:00</updated>
<author>
<name>Vicențiu Ciorbaru</name>
<email>vicentiu@mariadb.org</email>
</author>
<published>2019-05-11T19:19:05+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=cb248f880619431850e5638009a6098048050edf'/>
<id>cb248f880619431850e5638009a6098048050edf</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update FSF Address</title>
<updated>2019-05-11T18:29:06+00:00</updated>
<author>
<name>Vicențiu Ciorbaru</name>
<email>vicentiu@mariadb.org</email>
</author>
<published>2019-05-11T18:29:06+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=5543b75550962f07b4adcd47a6e52accec0a7d0f'/>
<id>5543b75550962f07b4adcd47a6e52accec0a7d0f</id>
<content type='text'>
* Update wrong zip-code
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Update wrong zip-code
</pre>
</div>
</content>
</entry>
<entry>
<title>MDEV-19235 MariaDB Server compiled for 128 Indexes crashes at startup</title>
<updated>2019-05-09T16:58:16+00:00</updated>
<author>
<name>Vladislav Vaintroub</name>
<email>wlad@mariadb.com</email>
</author>
<published>2019-05-09T15:38:22+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/mariadb-git.git/commit/?id=ad36d38024cf82724f5e9589fc9fe4ad57fcf390'/>
<id>ad36d38024cf82724f5e9589fc9fe4ad57fcf390</id>
<content type='text'>
With MAX_INDEXIES=64(default), key_map=Bitmap&lt;64&gt; is just a wrapper around
ulonglong and thus "trivial" (can be bzero-ed, or memcpy-ed, and stays
valid still)

With MAX_INDEXES=128, key_map = Bitmap&lt;128&gt; is not a "trivial" type
anymore. The implementation uses MY_BITMAP, and MY_BITMAP contains pointers
which make Bitmap invalid, when it is memcpy-ed/bzero-ed.

The problem in 10.4 is that there are many new key_map members, inside TABLE
or KEY, and those are often memcopied and bzeroed

The fix makes Bitmap "trivial", by inlining most of MY_BITMAP functionality.
pointers/heap allocations are not used anymore.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With MAX_INDEXIES=64(default), key_map=Bitmap&lt;64&gt; is just a wrapper around
ulonglong and thus "trivial" (can be bzero-ed, or memcpy-ed, and stays
valid still)

With MAX_INDEXES=128, key_map = Bitmap&lt;128&gt; is not a "trivial" type
anymore. The implementation uses MY_BITMAP, and MY_BITMAP contains pointers
which make Bitmap invalid, when it is memcpy-ed/bzero-ed.

The problem in 10.4 is that there are many new key_map members, inside TABLE
or KEY, and those are often memcopied and bzeroed

The fix makes Bitmap "trivial", by inlining most of MY_BITMAP functionality.
pointers/heap allocations are not used anymore.
</pre>
</div>
</content>
</entry>
</feed>
