Roaring Bitmap Operators
Starting from GaussDB(DWS) 8.1.3, user profiling and precision marketing scenarios benefit from the utilization of efficient bitmap processing operators. This enhancement significantly enhances query performance.
=
Description: Compares two Roaring bitmaps to check whether they are equal.
Return type: bool
Example:
1 2 3 4 5 6 7 8 9 10 |
SELECT rb_build('{1,2,3}') = rb_build('{1,2,3}'); ?column? ---------- t (1 row) SELECT rb_build('{2,3}') = rb_build('{1,2,3}'); ?column? ---------- f (1 row) |
<>
Description: Compares two Roaring bitmaps to check whether they are unequal.
Return type: bool
Example:
1 2 3 4 5 6 7 8 9 10 |
SELECT rb_build('{1,2,3}') <> rb_build('{1,2,3}'); ?column? ---------- f (1 row) SELECT rb_build('{2,3}') <> rb_build('{1,2,3}'); ?column? ---------- t (1 row) |
&
Description: Calculates the intersection of two Roaring bitmaps.
Return type: RoaringBitmap
Example:
1 2 3 4 5 |
SELECT rb_to_array(rb_build('{2,3}') & rb_build('{1,2,3}')); rb_to_array ------------- {2,3} (1 row) |
|
Description: Calculates the union of two Roaring bitmaps.
Return type: RoaringBitmap
Example:
1 2 3 4 5 |
SELECT rb_to_array(rb_build('{2,3}') | rb_build('{1,2,3}')); rb_to_array ------------- {1,2,3} (1 row) |
|
Description: Calculates the result of adding an ID to a Roaring bitmap.
Return type: RoaringBitmap
Example:
1 2 3 4 5 |
SELECT rb_to_array(rb_build('{2,3}') | 4); rb_to_array ------------- {2,3,4} (1 row) |
#
Description: XOR result of two Roaring bitmaps.
Return type: RoaringBitmap
Example:
1 2 3 4 5 |
SELECT rb_to_array(rb_build('{2,3}') # rb_build('{1,2,3}')); rb_to_array ------------- {1} (1 row) |
-
Description: Calculates the result set in the first Roaring bitmap but not in the second Roaring bitmap.
Return type: RoaringBitmap
Example:
1 2 3 4 5 |
SELECT rb_to_array(rb_build('{2,3,4}') - rb_build('{1,2,3}')); rb_to_array ------------- {4} (1 row) |
-
Description: The result set of removing a specified ID from a Roaring bitmap.
Return type: RoaringBitmap
Example:
1 2 3 4 5 |
SELECT rb_to_array(rb_build('{2,3,4}') - 3); rb_to_array ------------- {2,4} (1 row) |
@>
Description: Determines whether the Roaring bitmap before an operator contains the Roaring bitmap after the operator.
Return type: bool
Example:
1 2 3 4 5 6 7 8 9 10 |
SELECT rb_build('{2,3,4}') @> rb_build('{2,3}'); ?column? ---------- t (1 row) SELECT rb_build('{2,3,4}') @> 4; ?column? ---------- t (1 row) |
<@
Description: Determines whether the Roaring bitmap before an operator is contained in the Roaring bitmap after the operator.
Return type: bool
Example:
1 2 3 4 5 6 7 8 9 10 |
SELECT 4 <@ rb_build('{2,3,4}'); ?column? ---------- t (1 row) SELECT rb_build('{2,3,4}') <@ rb_build('{2,3}'); ?column? ---------- f (1 row) |
&&
Description: If two Roaring bitmaps overlap, true is returned. Otherwise, false is returned.
Return type: bool
Example:
1 2 3 4 5 6 7 8 9 10 |
SELECT rb_build('{2,3,4}') && rb_build('{2,3}'); ?column? ---------- t (1 row) SELECT rb_build('{2,3,4}') && rb_build('{7,8,9}'); ?column? ---------- f (1 row) |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot