首批通过分布式安全可靠测评,为关键业务系统打造
位图输出函数
更新时间:2024-07-22 23:00:00
位图输出函数用于选择位图数据输出形式,如以字符串的形式依次输出位图数据的每一个元素,并以逗号隔开。OceanBase 数据库当前所支持的位图输出函数包括 rb_to_varbinary() 和 rb_to_string()。
rb_to_varbinary
rb_to_varbinary() 函数用于以 varbinary 的形式输出位图数据。语法如下:
rb_to_varbinary(rb, [format])
format 参数可选,如需配置当前仅支持 roaring。配置后,输出的二进制数据类型只有 BITMAP_32 和 BITMAP_64 两种兼容格式。如果不配置 format,则默认输出格式为 OceanBase 类型的 varbinary 格式(包含 BITMAP_32 和 BITMAP_6 在内的 7 种子类型)。
示例如下:
SELECT rb_to_varbinary((1,2,3));
+------------------------------------------------------------------------------------+
| rb_to_varbinary(rb_from_string('1,2,3')) |
+------------------------------------------------------------------------------------+
| 0x010303010000000200000003000000 |
+------------------------------------------------------------------------------------+
1 row in set
SELECT rb_to_varbinary((1,2,3),'roaring');
+----------------------------------------------------------------------------------------------------------+
| rb_to_varbinary(rb_from_string('1,2,3'), 'roaring') |
+----------------------------------------------------------------------------------------------------------+
| 0x01053A300000010000000000020010000000010002000300 |
+----------------------------------------------------------------------------------------------------------+
1 row in set
rb_to_string
rb_to_string() 函数以字符串的形式依次输出位图数据的每一个元素,并以逗号隔开。其中元素的输出格式为 UINT64,输出的最大元素个数为 1000000。语法如下:
rb_to_string(rb)
示例如下:
SELECT rb_to_string(rb_from_string('1,2,3'));
+---------------------------------------+
| rb_to_string(rb_from_string('1,2,3')) |
+---------------------------------------+
| 1,2,3 |
+---------------------------------------+
1 row in set
SELECT rb_to_string(x'010101000000');
+-------------------------------+
| rb_to_string(x'010101000000') |
+-------------------------------+
| 1 |
+-------------------------------+
1 row in set