Skip to main content
Version: Latest-3.5

subdivide_bitmap

Splits a large bitmap into multiple sub-bitmaps.

This function is mainly used to export bitmaps. Bitmaps that are too large will exceed the maximum packet size allowed in the MySQL protocol.

This function is supported from v2.5.

Syntax​

BITMAP subdivide_bitmap(bitmap, length)

Parameters​

bitmap: The bitmap that needs to be split, required. length: The maximum length of each sub-bitmap, required. Bitmaps larger than this value will be split into multiple small bitmaps.

Return value​

Returns multiple sub-bitmaps not larger than length.

Examples​

Suppose there is a table t1, in which the c2 column is a BITMAP column.

-- Use bitmap_to_string() to convert values in `c2` into a string.
mysql> select c1, bitmap_to_string(c2) from t1;
+------+----------------------+
| c1 | bitmap_to_string(c2) |
+------+----------------------+
| 1 | 1,2,3,4,5,6,7,8,9,10 |
+------+----------------------+

-- Split `c2` into small bitmaps whose maximum length is 3.

mysql> select c1, bitmap_to_string(subdivide_bitmap) from t1, subdivide_bitmap(c2, 3);
+------+------------------------------------+
| c1 | bitmap_to_string(subdivide_bitmap) |
+------+------------------------------------+
| 1 | 1,2,3 |
| 1 | 4,5,6 |
| 1 | 7,8,9 |
| 1 | 10 |
+------+------------------------------------+