doc-exports/docs/dws/dev/dws_06_0323.html
Lu, Huayi e6fa411af0 DWS DEV 830.201 version
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com>
Co-authored-by: Lu, Huayi <luhuayi@huawei.com>
Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
2024-05-16 07:24:04 +00:00

496 lines
47 KiB
HTML

<a name="EN-US_TOPIC_0000001444866444"></a><a name="EN-US_TOPIC_0000001444866444"></a>
<h1 class="topictitle1">Roaring Bitmap Functions</h1>
<div id="body0000001444866444"><p id="EN-US_TOPIC_0000001444866444__p729671516418">Since 8.1.3, GaussDB(DWS) supports efficient bitmap processing functions and operators, which can be used in user profiling and precision marketing, greatly improving query performance.</p>
<div class="section" id="EN-US_TOPIC_0000001444866444__section5665105316301"><h4 class="sectiontitle">rb_build(array)</h4><p id="EN-US_TOPIC_0000001444866444__p16653125323018">Description: Converts an int array to the RoaringBitmap type.</p>
<p id="EN-US_TOPIC_0000001444866444__p365385311309">Return type: RoaringBitmap</p>
<p id="EN-US_TOPIC_0000001444866444__p465345383018">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen126531453183014"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">);</span>
<span class="n">rb_build</span>
<span class="c1">------------------------------------------------</span>
<span class="err">\</span><span class="n">x3a300000010000000000020010000000010002000300</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen86542536301"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">r_row</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="nb">text</span><span class="p">,</span><span class="w"> </span><span class="k">c</span><span class="w"> </span><span class="n">roaringbitmap</span><span class="p">);</span>
<span class="n">NOTICE</span><span class="p">:</span><span class="w"> </span><span class="n">The</span><span class="w"> </span><span class="s1">'DISTRIBUTE BY'</span><span class="w"> </span><span class="n">clause</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="n">specified</span><span class="p">.</span><span class="w"> </span><span class="k">Using</span><span class="w"> </span><span class="n">round</span><span class="o">-</span><span class="n">robin</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">distribution</span><span class="w"> </span><span class="k">mode</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="k">default</span><span class="p">.</span>
<span class="n">HINT</span><span class="p">:</span><span class="w"> </span><span class="n">Please</span><span class="w"> </span><span class="n">use</span><span class="w"> </span><span class="s1">'DISTRIBUTE BY'</span><span class="w"> </span><span class="n">clause</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">specify</span><span class="w"> </span><span class="n">suitable</span><span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">distribution</span><span class="w"> </span><span class="k">column</span><span class="p">.</span>
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">r_row</span><span class="w"> </span><span class="k">values</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">'a'</span><span class="p">,</span><span class="w"> </span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">));</span>
<span class="k">INSERT</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="mi">1</span>
<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">r_row</span><span class="p">;</span>
<span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">c</span>
<span class="c1">---+---+------------------------------------------------</span>
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">\</span><span class="n">x3a300000010000000000020010000000010002000300</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">r_row</span><span class="w"> </span><span class="k">values</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="s1">'b'</span><span class="p">,</span><span class="w"> </span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{}'</span><span class="p">));</span>
<span class="k">INSERT</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="mi">1</span>
<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">r_row</span><span class="p">;</span>
<span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">c</span>
<span class="c1">---+---+------------------------------------------------</span>
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">\</span><span class="n">x3a30000000000000</span>
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">\</span><span class="n">x3a300000010000000000020010000000010002000300</span>
<span class="p">(</span><span class="mi">2</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section7237201193114"><h4 class="sectiontitle">rb_iterate(roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p422571143116">Description: Converts roaringbitmap data into int data and outputs the data in multiple lines.</p>
<p id="EN-US_TOPIC_0000001444866444__p202251713310">Return type: record (int value in multiple rows)</p>
<p id="EN-US_TOPIC_0000001444866444__p1022511143120">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen12261123110"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span>
<span class="normal">6</span>
<span class="normal">7</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_iterate</span><span class="p">(</span><span class="k">c</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">r_row</span><span class="p">;</span>
<span class="n">rb_iterate</span>
<span class="c1">------------</span>
<span class="mi">1</span>
<span class="mi">2</span>
<span class="mi">3</span>
<span class="p">(</span><span class="mi">3</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section67629483118"><h4 class="sectiontitle">rb_to_array(roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p274811411314">Description: Using rb_build reverse operation to convert roaringBitmap into an int array.</p>
<p id="EN-US_TOPIC_0000001444866444__p2074815473118">Return type: array</p>
<p id="EN-US_TOPIC_0000001444866444__p1374864113119">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen167491142310"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_to_array</span><span class="p">(</span><span class="k">c</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">r_row</span><span class="p">;</span>
<span class="n">rb_to_array</span>
<span class="c1">-------------</span>
<span class="err">{</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="err">}</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">rb_to_array</span><span class="p">(</span><span class="s1">'\x3a300000010000000000020010000000010002000300'</span><span class="p">);</span>
<span class="n">rb_to_array</span>
<span class="c1">-------------</span>
<span class="err">{</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="err">}</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section196131014329"><h4 class="sectiontitle">rb_and(roaringbitmap, roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p1348151011328">Description: Calculates the intersection of two Roaring bitmaps.</p>
<p id="EN-US_TOPIC_0000001444866444__p184819102322">Return type: RoaringBitmap</p>
<p id="EN-US_TOPIC_0000001444866444__p194810108325">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen948510173215"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_to_array</span><span class="p">(</span><span class="n">rb_and</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">),</span><span class="w"> </span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{2,3,4}'</span><span class="p">)));</span>
<span class="n">rb_to_array</span>
<span class="c1">-------------</span>
<span class="err">{</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="err">}</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section1218914173211"><h4 class="sectiontitle">rb_or(roaringbitmap, roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p126101483220">Description: Calculates the union of two Roaring bitmaps.</p>
<p id="EN-US_TOPIC_0000001444866444__p17141412328">Return type: RoaringBitmap</p>
<p id="EN-US_TOPIC_0000001444866444__p1774142322">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen12791411321"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_to_array</span><span class="p">(</span><span class="n">rb_or</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">),</span><span class="w"> </span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{2,3,4}'</span><span class="p">)));</span>
<span class="n">rb_to_array</span>
<span class="c1">-------------</span>
<span class="err">{</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="err">}</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section042151712324"><h4 class="sectiontitle">rb_xor(roaringbitmap, roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p12410141717329">Description: Calculates the XOR of two Roaring bitmaps.</p>
<p id="EN-US_TOPIC_0000001444866444__p13410151718326">Return type: RoaringBitmap</p>
<p id="EN-US_TOPIC_0000001444866444__p1741018177324">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen1641061718326"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_to_array</span><span class="p">(</span><span class="n">rb_xor</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">),</span><span class="w"> </span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{2,3,4}'</span><span class="p">)));</span>
<span class="n">rb_to_array</span>
<span class="c1">-------------</span>
<span class="err">{</span><span class="mi">1</span><span class="p">,</span><span class="mi">4</span><span class="err">}</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section2675142073211"><h4 class="sectiontitle">rb_andnot(roaringbitmap, roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p76651020193213">Description: Sets in the first Roaring bitmap set but not in the second Roaring bitmap set.</p>
<p id="EN-US_TOPIC_0000001444866444__p4665152012328">Return type: RoaringBitmap</p>
<p id="EN-US_TOPIC_0000001444866444__p466522010329">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen766513206327"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_to_array</span><span class="p">(</span><span class="n">rb_andnot</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">),</span><span class="w"> </span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{2,3,4}'</span><span class="p">)));</span>
<span class="n">rb_to_array</span>
<span class="c1">-------------</span>
<span class="err">{</span><span class="mi">1</span><span class="err">}</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section1119924133211"><h4 class="sectiontitle">rb_cardinality(roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p131081024113213">Description: Calculates the cardinality of a Roaring bitmap.</p>
<p id="EN-US_TOPIC_0000001444866444__p410872414321">Return type: int</p>
<p id="EN-US_TOPIC_0000001444866444__p141081245325">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen1510813241326"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_cardinality</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">));</span>
<span class="n">rb_cardinality</span>
<span class="c1">----------------</span>
<span class="mi">3</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section899812352384"><h4 class="sectiontitle">rb_and_cardinality(roaringbitmap, roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p3989235133816">Description: Calculates the cardinality of the intersection of two Roaring bitmaps.</p>
<p id="EN-US_TOPIC_0000001444866444__p17989435153817">Return type: int</p>
<p id="EN-US_TOPIC_0000001444866444__p298918359385">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen169891735163810"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_and_cardinality</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">),</span><span class="w"> </span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{2,3,4}'</span><span class="p">));</span>
<span class="n">rb_and_cardinality</span>
<span class="c1">--------------------</span>
<span class="mi">2</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section8111397388"><h4 class="sectiontitle">rb_or_cardinality(roaringbitmap, roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p194103913386">Description: Calculates the cardinality of the union of two Roaring bitmaps.</p>
<p id="EN-US_TOPIC_0000001444866444__p24183933811">Return type: int</p>
<p id="EN-US_TOPIC_0000001444866444__p44539183812">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen15419398381"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_or_cardinality</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">),</span><span class="w"> </span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{2,3,4}'</span><span class="p">));</span>
<span class="n">rb_or_cardinality</span>
<span class="c1">-------------------</span>
<span class="mi">4</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section137110452381"><h4 class="sectiontitle">rb_xor_cardinality(roaringbitmap, roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p37053451389">Description: Calculates the cardinality of two Roaring bitmaps after the XOR operation.</p>
<p id="EN-US_TOPIC_0000001444866444__p3705745103817">Return type: int</p>
<p id="EN-US_TOPIC_0000001444866444__p170514553810">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen18705445133813"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_xor_cardinality</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">),</span><span class="w"> </span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{2,3,4}'</span><span class="p">));</span>
<span class="n">rb_xor_cardinality</span>
<span class="c1">--------------------</span>
<span class="mi">2</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section598314811385"><h4 class="sectiontitle">rb_andnot_cardinality(roaringbitmap, roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p4976648143812">Description: Calculates the cardinality of two Roaring bitmaps after ANDNOT operation.</p>
<p id="EN-US_TOPIC_0000001444866444__p09760486383">Return type: int</p>
<p id="EN-US_TOPIC_0000001444866444__p19976194811381">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen797720481381"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_andnot_cardinality</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">),</span><span class="w"> </span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{2,3,4}'</span><span class="p">));</span>
<span class="n">rb_andnot_cardinality</span>
<span class="c1">-----------------------</span>
<span class="mi">1</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section820917527385"><h4 class="sectiontitle">rb_is_empty(roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p32041652123813">Description: Determines whether a Roaring bitmap is empty.</p>
<p id="EN-US_TOPIC_0000001444866444__p820445212385">Return type: bool</p>
<p id="EN-US_TOPIC_0000001444866444__p19204125217381">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen7204452203813"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_is_empty</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">));</span>
<span class="n">rb_is_empty</span>
<span class="c1">-------------</span>
<span class="n">f</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section1953825720386"><h4 class="sectiontitle">rb_equals(roaringbitmap, roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p10533105720381">Description: Determines whether two Roaring bitmaps are equal.</p>
<p id="EN-US_TOPIC_0000001444866444__p11533195713383">Return type: bool</p>
<p id="EN-US_TOPIC_0000001444866444__p16533125710381">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen053375714389"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_equals</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">),</span><span class="w"> </span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{2,3,4}'</span><span class="p">));</span>
<span class="n">rb_equals</span>
<span class="c1">-----------</span>
<span class="n">f</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section761714043917"><h4 class="sectiontitle">rb_intersect(roaringbitmap, roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p1761270183917">Description: Determines whether two Roaring bitmaps are intersected.</p>
<p id="EN-US_TOPIC_0000001444866444__p461212053912">Return type: bool</p>
<p id="EN-US_TOPIC_0000001444866444__p3613106391">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen176136043920"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_intersect</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">),</span><span class="w"> </span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{2,3,4}'</span><span class="p">));</span>
<span class="n">rb_intersect</span>
<span class="c1">--------------</span>
<span class="n">t</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section15134104153916"><h4 class="sectiontitle">rb_min(roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p161302415396">Description: Returns the minimum value in a Roaring bitmap.</p>
<p id="EN-US_TOPIC_0000001444866444__p2013064123914">Return type: int</p>
<p id="EN-US_TOPIC_0000001444866444__p6130164153916">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen3130164143911"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_min</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">));</span>
<span class="n">rb_min</span>
<span class="c1">--------</span>
<span class="mi">1</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section17433117123912"><h4 class="sectiontitle">rb_max(roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p342717723919">Description: Returns the maximum value in a Roaring bitmap.</p>
<p id="EN-US_TOPIC_0000001444866444__p9427173396">Return type: int</p>
<p id="EN-US_TOPIC_0000001444866444__p642787193919">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen1942720717396"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_max</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">));</span>
<span class="n">rb_max</span>
<span class="c1">--------</span>
<span class="mi">3</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section1943815108393"><h4 class="sectiontitle">rb_add(roaringbitmap, int)</h4><p id="EN-US_TOPIC_0000001444866444__p154351010173919">Description: Adds an element to a Roaring bitmap.</p>
<p id="EN-US_TOPIC_0000001444866444__p1943591083914">Return type: RoaringBitmap</p>
<p id="EN-US_TOPIC_0000001444866444__p643520108395">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen64359101395"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_to_array</span><span class="p">(</span><span class="n">rb_add</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,3}'</span><span class="p">),</span><span class="w"> </span><span class="mi">2</span><span class="p">));</span>
<span class="n">rb_to_array</span>
<span class="c1">-------------</span>
<span class="err">{</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="err">}</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section19193181343915"><h4 class="sectiontitle">rb_added(int, roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p101901013203916">Description: Adds an element to a Roaring bitmap.</p>
<p id="EN-US_TOPIC_0000001444866444__p319016138390">Return type: RoaringBitmap</p>
<p id="EN-US_TOPIC_0000001444866444__p219014138394">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen1219051353919"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_to_array</span><span class="p">(</span><span class="n">rb_added</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,3}'</span><span class="p">)));</span>
<span class="n">rb_to_array</span>
<span class="c1">-------------</span>
<span class="err">{</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="err">}</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section321718163391"><h4 class="sectiontitle">rb_contain(roaringbitmap,int)</h4><p id="EN-US_TOPIC_0000001444866444__p142145168399">Description: Determines whether a Roaring bitmap contains the specified element.</p>
<p id="EN-US_TOPIC_0000001444866444__p1421416167392">Return type: bool</p>
<p id="EN-US_TOPIC_0000001444866444__p1214416173910">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen18215131693912"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_contain</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,3}'</span><span class="p">),</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span>
<span class="n">rb_contain</span>
<span class="c1">------------</span>
<span class="n">f</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section224511192395"><h4 class="sectiontitle">rb_containedby(int,roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p224312193399">Description: Determines whether the given element is included in a given Roaring bitmap.</p>
<p id="EN-US_TOPIC_0000001444866444__p13243121916398">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen1124351916392"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_containedby</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,3}'</span><span class="p">));</span>
<span class="n">rb_containedby</span>
<span class="c1">----------------</span>
<span class="n">f</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section92491221393"><h4 class="sectiontitle">rb_contain_rb(roaringbitmap,roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p224752243914">Description: Determines whether the first Roaring bitmap contains the second Roaring bitmap.</p>
<p id="EN-US_TOPIC_0000001444866444__p6247922173917">Return type: bool</p>
<p id="EN-US_TOPIC_0000001444866444__p524711228399">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen72471022133918"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_contain_rb</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,3}'</span><span class="p">),</span><span class="w"> </span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{2,3}'</span><span class="p">));</span>
<span class="n">rb_contain_rb</span>
<span class="c1">---------------</span>
<span class="n">f</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section1544262643917"><h4 class="sectiontitle">rb_containedby_rb(roaringbitmap,roaringbitmap)</h4><p id="EN-US_TOPIC_0000001444866444__p17440926123912">Description: Determines whether the second Roaring bitmap contains the first Roaring bitmap.</p>
<p id="EN-US_TOPIC_0000001444866444__p19440152613394">Return type: bool</p>
<p id="EN-US_TOPIC_0000001444866444__p17440182663913">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen20441192613916"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_containedby_rb</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,3}'</span><span class="p">),</span><span class="w"> </span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{2,3}'</span><span class="p">));</span>
<span class="n">rb_containedby_rb</span>
<span class="c1">---------------</span>
<span class="n">f</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section15761229123913"><h4 class="sectiontitle">rb_remove(roaringbitmap,int)</h4><p id="EN-US_TOPIC_0000001444866444__p145751829153911">Description: Removes elements from a Roaring bitmap.</p>
<p id="EN-US_TOPIC_0000001444866444__p185753293396">Return type: RoaringBitmap</p>
<p id="EN-US_TOPIC_0000001444866444__p65753291393">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen9575172916397"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_to_array</span><span class="p">(</span><span class="n">rb_remove</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,3}'</span><span class="p">),</span><span class="mi">1</span><span class="p">));</span>
<span class="n">rb_to_array</span>
<span class="c1">-------------</span>
<span class="err">{</span><span class="mi">3</span><span class="err">}</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section7713312303"><h4 class="sectiontitle">rb_clear(roaringbitmap,int,int)</h4><p id="EN-US_TOPIC_0000001444866444__p971233133010">Description: Clears elements within a specified range from roaring bitmaps.</p>
<p id="EN-US_TOPIC_0000001444866444__p1876334304">Return type: RoaringBitmap</p>
<p id="EN-US_TOPIC_0000001444866444__p18783343012">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen187193316300"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_to_array</span><span class="p">(</span><span class="n">rb_clear</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3}'</span><span class="p">),</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">));</span><span class="w"> </span><span class="n">rb_to_array</span><span class="w"> </span><span class="c1">------------- {2,3} (1 row)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section7224143313398"><h4 class="sectiontitle">rb_flip(roaringbitmap,int,int)</h4><p id="EN-US_TOPIC_0000001444866444__p622353343915">Description: Reverses elements in a specified range.</p>
<p id="EN-US_TOPIC_0000001444866444__p322333312393">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen1522483373913"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_to_array</span><span class="p">(</span><span class="n">rb_flip</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,2,3,7,9}'</span><span class="p">),</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="mi">10</span><span class="p">));</span>
<span class="n">rb_to_array</span>
<span class="c1">--------------</span>
<span class="err">{</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">,</span><span class="mi">8</span><span class="p">,</span><span class="mi">10</span><span class="err">}</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001444866444__section103284368396"><h4 class="sectiontitle">rb_rank(roaringbitmap,int)</h4><p id="EN-US_TOPIC_0000001444866444__p1327336193912">Description: Returns the cardinality of the set of values less than the specified value.</p>
<p id="EN-US_TOPIC_0000001444866444__p83274367398">Return type: int</p>
<p id="EN-US_TOPIC_0000001444866444__p1532753683913">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001444866444__screen183289367399"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">rb_rank</span><span class="p">(</span><span class="n">rb_build</span><span class="p">(</span><span class="s1">'{1,10,100}'</span><span class="p">),</span><span class="mi">99</span><span class="p">);</span>
<span class="n">rb_rank</span>
<span class="c1">---------</span>
<span class="mi">2</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0991.html">Roaring Bitmap Functions and Operators</a></div>
</div>
</div>