全部产品
Search
文档中心

Hologres:Fungsi bitmap mengaum

更新时间:Jul 02, 2025

Topik ini menjelaskan parameter dalam fungsi bitmap mengaum serta cara menggunakannya di Hologres.

Informasi latar belakang

Bitmap mengaum adalah bitmap terkompresi yang efisien, digunakan dalam berbagai bahasa pemrograman populer pada platform data besar. Bitmap ini cocok untuk dimensi ultra-high-cardinality dan dapat digunakan untuk deduplikasi, penyaringan berbasis tag, serta pengumpulan data deret waktu.

Dalam bitmap mengaum, bilangan bulat 32-bit dibagi menjadi 216 chunk. Bilangan bulat dalam setiap chunk memiliki 16 bit paling signifikan yang sama. Enam belas bit paling tidak signifikan dari bilangan bulat disimpan dalam sebuah kontainer. Bitmap mengaum menyimpan kontainer dalam larik dinamis sebagai indeks utama. Dua jenis kontainer tersedia: kontainer array untuk chunk yang jarang dan kontainer bitmap untuk chunk yang padat. Kontainer array dapat menyimpan hingga 4.096 bilangan bulat, sedangkan kontainer bitmap dapat menampung lebih dari 4.096 bilangan bulat.

Bitmap mengaum memanfaatkan struktur penyimpanan ini untuk mengambil nilai tertentu dengan cepat. Selain itu, bitmap mengaum mendukung operasi bitwise seperti AND, OR, dan XOR antara dua jenis kontainer tersebut, sehingga memberikan kinerja penyimpanan dan komputasi yang sangat baik.

Batasan

Perhatikan batasan berikut saat menggunakan fungsi bitmap mengaum di Hologres:

  • Hanya instance eksklusif Hologres V0.10 ke atas yang mendukung fungsi-fungsi ini.

    Catatan

    Versi instance Hologres Anda dapat dilihat di konsol Hologres. Jika versi instance Anda lebih awal dari V0.10, tingkatkan instance secara manual di konsol Hologres atau bergabunglah dengan grup DingTalk untuk dukungan teknis. Untuk informasi lebih lanjut tentang peningkatan versi instance Hologres secara manual, lihat Kesalahan Persiapan Peningkatan Umum. Untuk informasi lebih lanjut tentang dukungan teknis, lihat Dapatkan Dukungan Online untuk Hologres.

  • Fungsi-fungsi ini dimuat ke skema public secara default dan hanya dapat dimuat ke skema public.

  • Mulai dari Hologres V3.1, tipe data RoaringBitmap64 didukung. Beberapa fungsi bitmap mengaum dapat memproses data bertipe RoaringBitmap64. Namun, saat memproses data bertipe RoaringBitmap64, fungsi-fungsi ini tidak mendukung parameter input konstan.

  • Sebelum menggunakan fungsi bitmap mengaum, Anda harus mengeksekusi pernyataan berikut untuk mengaktifkan EXTENSION. EXTENSION adalah fungsi tingkat database yang hanya perlu dieksekusi sekali untuk setiap database. Jika Anda membuat database baru, Anda harus mengeksekusi pernyataan ini lagi.

    --Buat ekstensi.
    CREATE EXTENSION roaringbitmap;

    Untuk menghapus ekstensi fungsi bitmap mengaum, eksekusi pernyataan berikut:

    DROP EXTENSION roaringbitmap;
    Penting

    Kami merekomendasikan agar Anda tidak mengeksekusi pernyataan DROP EXTENSION <extension_name> CASCADE; untuk menghapus ekstensi. Pernyataan CASCADE akan menghapus tidak hanya ekstensi yang ditentukan tetapi juga data ekstensi dan objek yang bergantung pada ekstensi tersebut. Data ekstensi mencakup data PostGIS, data bitmap mengaum, data Proxima, data log biner, dan data BSI. Objek mencakup metadata, tabel, tampilan, dan data server.

  • Anda tidak dapat menentukan bidang yang menyimpan bitmap mengaum sebagai indeks bitmap atau kamus.

  • Saat membuat tabel yang berisi kolom bitmap mengaum, Anda harus secara eksplisit menentukan tipe data kolom tersebut sebagai RoaringBitmap (32-bit) atau RoaringBitmap64 (64-bit). Kedua tipe data bitmap mengaum tidak dapat digunakan dalam perhitungan campuran.

    -- Buat tabel yang berisi kolom bitmap mengaum 32-bit.
    CREATE TABLE t_rb_32 (
        bucket int,
        x roaringbitmap
    );
    
    -- Buat tabel yang berisi kolom bitmap mengaum 64-bit.
    CREATE TABLE t_rb_64 (
        bucket int,
        x roaringbitmap64
    );
    
    -- Perhitungan campuran dari dua jenis data bitmap mengaum tidak didukung dan kesalahan akan dikembalikan.
    -- ERROR: operator does not exist: roaringbitmap & roaringbitmap64
    SELECT
        a.x & b.x
    FROM
        t_rb_32 a
    JOIN t_rb_64 b ON a.bucket = b.bucket;

Operator

Operator berikut mendukung pemrosesan data bertipe RoaringBitmap dan RoaringBitmap64.

Operator

Tipe Input

Tipe Output

Deskripsi

Contoh

Catatan

&

RoaringBitmap | RoaringBitmap64, RoaringBitmap | RoaringBitmap64

Sama dengan tipe input

Menjalankan operasi AND.

rb_build('{1,2,3}') & rb_build('{3,4,5}')

Tidak ada

|

RoaringBitmap | RoaringBitmap64, RoaringBitmap | RoaringBitmap64

Sama dengan tipe input

Menjalankan operasi OR.

rb_build('{1,2,3}') | rb_build('{3,4,5}')

Tidak ada

RoaringBitmap | RoaringBitmap64, INTEGER

RoaringBitmap | RoaringBitmap64

rb_build('{1,2,3}') | 6

Hanya Hologres V1.3.16 dan yang lebih baru yang mendukung operator ini.

INTEGER, RoaringBitmap | RoaringBitmap64

RoaringBitmap | RoaringBitmap64

6 | rb_build('{1,2,3}')

Hanya Hologres V1.3.16 dan yang lebih baru yang mendukung operator ini.

#

RoaringBitmap | RoaringBitmap64, RoaringBitmap | RoaringBitmap64

Sama dengan tipe input

Menjalankan operasi XOR.

rb_build('{1,2,3}') # rb_build('{3,4,5}')

Tidak ada

<<

RoaringBitmap | RoaringBitmap64, BIGINT

RoaringBitmap | RoaringBitmap64

Menggeser nilai ke kiri sejumlah tempat tertentu.

rb_build('{1,2,3}') << 2

Hanya Hologres V1.3.16 dan yang lebih baru yang mendukung operator ini.

>>

RoaringBitmap | RoaringBitmap64, BIGINT

RoaringBitmap | RoaringBitmap64

Menggeser nilai ke kanan sejumlah tempat tertentu.

rb_build('{1,2,3}') >> 3

Hanya Hologres V1.3.16 dan yang lebih baru yang mendukung operator ini.

-

RoaringBitmap | RoaringBitmap64, RoaringBitmap | RoaringBitmap64

Sama dengan tipe input

Menjalankan operasi ANDNOT.

rb_build('{1,2,3}') - rb_build('{3,4,5}')

Hanya Hologres V1.3.16 dan yang lebih baru yang mendukung operator ini.

RoaringBitmap | RoaringBitmap64, INTEGER

RoaringBitmap | RoaringBitmap64

rb_build('{1,2,3}') - 3

Tidak ada

@>

RoaringBitmap | RoaringBitmap64, RoaringBitmap | RoaringBitmap64

BOOLEAN

Memeriksa apakah A mengandung B.

rb_build('{1,2,3}') @> rb_build('{3,4,5}')

Tidak ada

RoaringBitmap | RoaringBitmap64, INTEGER

BOOLEAN

rb_build('{1,2,3}') @> 3

Tidak ada

<@

RoaringBitmap | RoaringBitmap64, RoaringBitmap | RoaringBitmap64

BOOLEAN

Memeriksa apakah A terkandung oleh B.

rb_build('{1,2,3}') <@ rb_build('{3,4,5}')

Tidak ada

integer, RoaringBitmap | RoaringBitmap64

BOOLEAN

3 <@ rb_build('{1,2,3}')

Tidak ada

&&

RoaringBitmap | RoaringBitmap64, RoaringBitmap | RoaringBitmap64

BOOLEAN

Memeriksa apakah A berpotongan dengan B.

rb_build('{1,2,3}') && rb_build('{3,4,5}')

Tidak ada

=

RoaringBitmap | RoaringBitmap64, RoaringBitmap | RoaringBitmap64

BOOLEAN

Memeriksa apakah dua objek sama.

rb_build('{1,2,3}') = rb_build('{3,4,5}')

Tidak ada

<>

RoaringBitmap | RoaringBitmap64, RoaringBitmap | RoaringBitmap64

BOOLEAN

Memeriksa apakah dua objek tidak sama.

rb_build('{1,2,3}') <> rb_build('{3,4,5}')

Tidak ada

Fungsi bitmap mengaum

  • Fungsi yang mendukung pemrosesan data bertipe RoaringBitmap dan RoaringBitmap64

    Fungsi

    Tipe Input

    Tipe Output

    Deskripsi

    Contoh

    rb_build_agg

    INTEGER|BIGINT

    Ketika tipe input adalah:

    • INTEGER: Mengembalikan tipe RoaringBitmap.

    • BIGINT: Mengembalikan tipe RoaringBitmap64.

    Menggabungkan offset ke dalam bitmap mengaum.

    Catatan

    Hanya Hologres V3.1 dan yang lebih baru yang mendukung tipe parameter input BIGINT dan mengembalikan tipe RoaringBitmap64.

    rb_build_agg(1)

    rb_cardinality

    RoaringBitmap | RoaringBitmap64

    INTEGER

    Menghitung cardinality.

    rb_cardinality(rb_build('{1,2,3,4,5}'))

    rb_and_cardinality

    RoaringBitmap | RoaringBitmap64, RoaringBitmap | RoaringBitmap64

    INTEGER

    Menghitung cardinality dengan melakukan operasi AND pada dua bitmap mengaum.

    rb_and_cardinality(rb_build('{1,2,3}'),rb_build('{3,4,5}'))

    rb_or_cardinality

    RoaringBitmap | RoaringBitmap64, RoaringBitmap | RoaringBitmap64

    INTEGER

    Menghitung cardinality dengan melakukan operasi OR pada dua bitmap mengaum.

    rb_or_cardinality(rb_build('{1,2,3}'),rb_build('{3,4,5}'))

    rb_range

    RoaringBitmap | RoaringBitmap64, BIGINT, BIGINT

    RoaringBitmap | RoaringBitmap64

    Mengembalikan koleksi baru yang berkisar dari posisi awal (termasuk) hingga posisi akhir (tidak termasuk). Posisi awal adalah 1.

    Catatan

    Hanya Hologres V1.3.16 dan yang lebih baru yang mendukung fungsi ini.

    rb_range(rb_build('{1,2,3}'), 2, 3)

    rb_minimum

    RoaringBitmap | RoaringBitmap64

    INTEGER

    Mengembalikan offset minimum dalam bitmap mengaum. Jika bitmap mengaum kosong, -1 dikembalikan.

    rb_minimum(rb_build('{1,2,3}'))

    rb_maximum

    RoaringBitmap | RoaringBitmap64

    INTEGER

    Mengembalikan offset maksimum dalam bitmap mengaum. Jika bitmap mengaum kosong, 0 dikembalikan.

    rb_maximum(rb_build('{1,2,3}'))

    rb_to_array

    RoaringBitmap | RoaringBitmap64

    INTEGER[]

    Mengembalikan array integer dari mana bitmap mengaum dibuat.

    rb_to_array(rb_build('{1,2,3}'))

    rb_to_array_string

    RoaringBitmap | RoaringBitmap64, TEXT

    TEXT

    Mengembalikan string yang dihasilkan dengan menggabungkan array integer dari mana bitmap mengaum dibuat dengan teks input.

    rb_to_array_string(rb_build('{1,2,3}'),',')

  • Fungsi yang mendukung pemrosesan hanya data bertipe RoaringBitmap64

    Fungsi

    Tipe Input

    Tipe Output

    Deskripsi

    Contoh

    rb64_build

    BIGINT[]

    RoaringBitmap64

    Membuat bitmap mengaum 64-bit dari array.

    Catatan

    Hologres V3.1 dan yang lebih baru mendukung fungsi ini.

    --Persiapkan data.
    CREATE TABLE public.tn (
        id INT,
        num BIGINT[]
    );
    INSERT INTO public.tn ("id", "num") VALUES (01, '{1,2}');
    
    SELECT rb64_build (num) rb_num,num FROM public.tn;

    Hasil berikut dikembalikan:

    rb_num	num
    \x030100000000000000000000003a30000001000000000001001000000001000200	{1,2}
  • Fungsi yang mendukung pemrosesan hanya data bertipe RoaringBitmap

    Fungsi

    Tipe Input

    Tipe Output

    Deskripsi

    Contoh

    rb_build

    INTEGER[]

    RoaringBitmap

    Membuat bitmap mengaum 32-bit dari array.

    --Hasil berikut dikembalikan: \x3a3000000100000000000000100000000100
    SELECT rb_build_agg(1);

    roaringbitmap_in

    TEXT

    RoaringBitmap

    Mengonversi data bertipe TEXT menjadi tipe RoaringBitmap.

    Catatan

    Hologres V2.1.33 dan yang lebih baru mendukung fungsi ini.

    --Buat tabel sampel.
    CREATE TABLE rb_text (
        id int,
        a text
    );
    
    -- Masukkan data ke dalam tabel sampel.
    INSERT INTO rb_text
        VALUES (1, '\x3a300000010000000000090010000000010002000300040005000600070008000900c800');
    
    --Ubah tipe data bidang a menjadi tipe RoaringBitmap dan lakukan operasi AND.
    SELECT
        rb_and_cardinality_agg (roaringbitmap_in (a::cstring))
    FROM
        rb_text;
    --Hasil berikut dikembalikan:
    rb_and_cardinality_agg|
    -----------------------
                        10|

    rb_index

    RoaringBitmap, INTEGER

    BIGINT

    Mengembalikan indeks elemen dalam data bitmap mengaum yang dimulai dari 0. Jika elemen tidak ada, -1 dikembalikan.

    Catatan

    Hanya Hologres V1.3.16 dan yang lebih baru yang mendukung fungsi ini.

    rb_index(rb_build('{1,2,3}'),3)

    rb_and_null2empty

    RoaringBitmap, RoaringBitmap

    RoaringBitmap

    Menjalankan operasi AND. Jika nilai parameter input adalah null, fungsi menganggap nilai parameter tersebut sebagai kosong.

    Catatan

    Hanya Hologres V1.1.42 dan yang lebih baru yang mendukung fungsi ini.

    rb_and_null2empty(rb_build(null),rb_build('{3,4,5}'))

    rb_or_null2empty

    RoaringBitmap, RoaringBitmap

    RoaringBitmap

    Menjalankan operasi OR. Jika nilai parameter input adalah null, fungsi menganggap nilai parameter tersebut sebagai kosong.

    Catatan

    Hanya Hologres V1.1.42 dan yang lebih baru yang mendukung fungsi ini.

    rb_or_null2empty(rb_build(null),rb_build('{3,4,5}'))

    rb_andnot_null2empty

    RoaringBitmap, RoaringBitmap

    RoaringBitmap

    Menjalankan operasi ANDNOT. Jika nilai parameter input adalah null, fungsi menganggap nilai parameter tersebut sebagai kosong.

    Catatan

    Hanya Hologres V1.1.42 dan yang lebih baru yang mendukung fungsi ini.

    rb_andnot_null2empty(rb_build(null),rb_build('{3,4,5}'))

    rb_and_null2empty_cardinality

    RoaringBitmap, RoaringBitmap

    INTEGER

    Menghitung cardinality dengan melakukan operasi AND pada dua bitmap mengaum. Jika nilai parameter input adalah null, fungsi menganggap nilai parameter tersebut sebagai kosong.

    Catatan

    Hanya Hologres V1.1.42 dan yang lebih baru yang mendukung fungsi ini.

    rb_and_null2empty_cardinality(rb_build(null),rb_build('{3,4,5}'))

    rb_or_null2empty_cardinality

    RoaringBitmap, RoaringBitmap

    INTEGER

    Menghitung cardinality dengan melakukan operasi OR pada dua bitmap mengaum. Jika nilai parameter input adalah null, fungsi menganggap nilai parameter tersebut sebagai kosong.

    Catatan

    Hanya Hologres V1.1.42 dan yang lebih baru yang mendukung fungsi ini.

    rb_or_null2empty_cardinality(rb_build(null),rb_build('{3,4,5}'))

    rb_xor_cardinality

    RoaringBitmap, RoaringBitmap

    INTEGER

    Menghitung cardinality dengan melakukan operasi XOR pada dua bitmap mengaum.

    rb_xor_cardinality(rb_build('{1,2,3}'),rb_build('{3,4,5}'))

    rb_andnot_cardinality

    RoaringBitmap, RoaringBitmap

    INTEGER

    Menghitung cardinality dengan melakukan operasi ANDNOT pada dua bitmap mengaum.

    rb_andnot_cardinality(rb_build('{1,2,3}'),rb_build('{3,4,5}'))

    rb_andnot_null2empty_cardinality

    RoaringBitmap, RoaringBitmap

    INTEGER

    Menghitung cardinality dengan melakukan operasi ANDNOT pada dua bitmap mengaum. Jika nilai parameter input adalah null, fungsi menganggap nilai parameter tersebut sebagai kosong.

    Catatan

    Hanya Hologres V1.1.42 dan yang lebih baru yang mendukung fungsi ini.

    rb_andnot_null2empty_cardinality(rb_build(null),rb_build('{3,4,5}'))

    rb_is_empty

    RoaringBitmap

    BOOLEAN

    Memeriksa apakah bitmap mengaum kosong.

    rb_is_empty(rb_build('{1,2,3,4,5}'))

    rb_fill

    RoaringBitmap, BIGINT, BIGINT

    RoaringBitmap

    Mengisi rentang tertentu tanpa akhir rentang dalam bitmap mengaum.

    Catatan

    Hanya Hologres V1.3.16 dan yang lebih baru yang mendukung fungsi ini.

    rb_fill(rb_build('{1,2,3}'), 5, 7)

    rb_clear

    RoaringBitmap, BIGINT, BIGINT

    RoaringBitmap

    Menghapus rentang tertentu tanpa akhir rentang dalam bitmap mengaum.

    Catatan

    Hanya Hologres V1.3.16 dan yang lebih baru yang mendukung fungsi ini.

    rb_clear(rb_build('{1,2,3}'), 2, 3)

    rb_contains_bitmap

    RoaringBitmap, RoaringBitmap

    BOOLEAN

    Memeriksa apakah bitmap pertama mengandung bitmap kedua.

    rb_contains(rb_build('{1,2,3}'),rb_build('{3}'))

    rb_flip

    RoaringBitmap,INTEGER,INTEGER

    RoaringBitmap

    Membalik offset yang ditentukan dalam bitmap mengaum.

    rb_flip(rb_build('{1,2,3}'),2,3)

    rb_range_cardinality

    RoaringBitmap, BIGINT, BIGINT

    BIGINT

    Mengembalikan cardinality dari rentang dari posisi awal (termasuk) hingga posisi akhir (tidak termasuk). Posisi awal adalah 1.

    Catatan

    Hanya Hologres V1.3.16 dan yang lebih baru yang mendukung fungsi ini.

    rb_range_cardinality(rb_build('{1,2,3}'), 2, 3)

    rb_rank

    RoaringBitmap,INTEGER

    INTEGER

    Mengembalikan jumlah elemen yang kurang dari atau sama dengan offset tertentu dalam bitmap mengaum.

    rb_rank(rb_build('{1,2,3}'),3)

    rb_jaccard_dist

    RoaringBitmap, RoaringBitmap

    DOUBLE PRECISION

    Mengembalikan jarak Jaccard atau koefisien kesamaan Jaccard antara dua bitmap mengaum.

    Catatan

    Hanya Hologres V1.3.16 dan yang lebih baru yang mendukung fungsi ini.

    rb_jaccard_dist(rb_build('{1,2,3}'), rb_build('{3,4}'))

    rb_select

    RoaringBitmap, bitset_limit bigint, bitset_offset bigint=0, reverse boolean=false, range_start bigint=-2147483648, range_end bigint=2147483647

    RoaringBitmap

    Mengembalikan subset [bitset_offset,bitset_offset+bitset_limit) dari rentang [range_start,range_end) dalam bitmap mengaum.

    rb_select(rb_build('{1,2,3,4,5,6,7,8,9}'), 5, 2)

    rb_iterate

    RoaringBitmap

    Set of Integer

    Mengembalikan daftar offset dari bitmap mengaum.

    rb_iterate(rb_build('{1,2,3}'))

Fungsi agregat bitmap mengaum

  • Fungsi yang mendukung pemrosesan data bertipe RoaringBitmap dan RoaringBitmap64

    Fungsi

    Tipe Input

    Tipe Output

    Deskripsi

    Contoh

    rb_or_agg

    RoaringBitmap | RoaringBitmap64

    Sama dengan tipe input

    Menjalankan operasi agregat OR.

    rb_or_agg(rb_build('{1,2,3}'))

    rb_and_agg

    RoaringBitmap | RoaringBitmap64

    Sama dengan tipe input

    Menjalankan operasi agregat AND.

    rb_and_agg(rb_build('{1,2,3}'))

    rb_or_cardinality_agg

    RoaringBitmap | RoaringBitmap64

    INTEGER

    Menghitung cardinality dari operasi agregat OR pada dua bitmap mengaum.

    rb_or_cardinality_agg(rb_build('{1,2,3}'))

    rb_and_cardinality_agg

    RoaringBitmap | RoaringBitmap64

    INTEGER

    Menghitung cardinality dari operasi agregat AND pada dua bitmap mengaum.

    rb_and_cardinality_agg(rb_build('{1,2,3}'))

  • Fungsi yang mendukung pemrosesan hanya data bertipe RoaringBitmap

    Fungsi

    Tipe Input

    Tipe Output

    Deskripsi

    Contoh

    rb_xor_agg

    RoaringBitmap

    RoaringBitmap

    Menjalankan operasi agregat XOR.

    rb_xor_agg(rb_build('{1,2,3}'))

    rb_xor_cardinality_agg

    RoaringBitmap

    INTEGER

    Menghitung cardinality dari operasi agregat XOR pada dua bitmap mengaum.

    rb_xor_cardinality_agg(rb_build('{1,2,3}'))

Fungsi bitmap mengaum lainnya

Fungsi berikut mendukung pemrosesan hanya data bertipe RoaringBitmap.

Fungsi

Tipe Input

Tipe Output

Deskripsi

Contoh

roaringbitmap_text

TEXT, BOOLEAN

RoaringBitmap

Mendeserialisasi data biner RoaringBitmap bertipe TEXT ke dalam struktur RoaringBitmap. Parameter kedua menunjukkan apakah akan memverifikasi format. Kami merekomendasikan untuk mengatur parameter ini ke true. Jika tidak, data bitmap yang tidak valid akan dikembalikan.

roaringbitmap_text(':0', true)

rb_to_text

RoaringBitmap

TEXT

Mengonversi struktur RoaringBitmap menjadi data biner RoaringBitmap bertipe TEXT untuk output.

rb_to_text(rb_build('{1,2,3}'))

Contoh

Berikut adalah contoh penggunaan fungsi bitmap mengaum.

  1. Pasang ekstensi.

    CREATE EXTENSION roaringbitmap;
  2. Buat tabel untuk menyimpan data bitmap mengaum.

    -- Buat tabel bernama t1.
    CREATE TABLE public.t1 (id integer, bitmap roaringbitmap);
  3. Gunakan fungsi rb_build untuk menyisipkan data bitmap mengaum ke dalam tabel.

    -- Setel nilai bit array menjadi 1.
    INSERT INTO public.t1 SELECT 1,RB_BUILD(ARRAY[1,2,3,4,5,6,7,8,9,200]);
    
    -- Setel nilai bit beberapa elemen menjadi 1 dan agregasikan nilai bit tersebut ke dalam bitmap mengaum.  
    INSERT INTO public.t1 SELECT 2,RB_BUILD_AGG(e) FROM GENERATE_SERIES(1,100) e;
  4. Lakukan operasi bitwise seperti OR, AND, XOR, dan ANDNOT.

    SELECT  RB_OR(a.bitmap,b.bitmap)
    FROM    (
                SELECT  bitmap
                FROM    public.t1
                WHERE   id = 1
            ) AS a
            ,(
                SELECT  bitmap
                FROM    public.t1
                WHERE   id = 2
            ) AS b
    ;
  5. Lakukan operasi agregat bitwise seperti OR, AND, XOR, dan BUILD untuk menghasilkan bitmap mengaum baru.

    SELECT RB_OR_AGG(bitmap) FROM public.t1;
    SELECT RB_AND_AGG(bitmap) FROM public.t1;
    SELECT RB_XOR_AGG(bitmap) FROM public.t1;
    SELECT RB_BUILD_AGG(id) FROM public.t1;
  6. Hitung cardinality dari bitmap mengaum. Cardinality adalah jumlah bit yang disetel menjadi 1 dalam bitmap mengaum.

    SELECT RB_CARDINALITY(bitmap) FROM public.t1;
  7. Dapatkan subskrip bit yang disetel menjadi 1.

    SELECT RB_ITERATE(bitmap) FROM public.t1 WHERE id = 1;
  8. Konversikan bitmap mengaum menjadi array.

    SELECT RB_TO_ARRAY(bitmap) FROM public.t1 WHERE id = 1;