RoaringBitmap extension for PostgreSQL
postgres=# SELECT '{100373,1829130,1861002,1975442,2353213,2456403}'::roaringbitmap & '{2353213}'::roaringbitmap;
?column?
----------
{}
(1 row)
Functions with the same problem include rb_or_cardinality,rb_and,rb_and_cardinality,rb_andnot,rb_andnot_cardinality,rb_xor_cardinality,rb_intersect,rb_contains,rb_containedby,rb_jaccard_dist,rb_index. The affected versions are 0.5.2 and 0.5.3, users should upgrade as soon as possible.
Optimize performance of some functions through deferred deserialization
Optimized functions include rb_or_cardinality
,rb_and
,rb_and_cardinality
,rb_andnot
,rb_andnot_cardinality
,rb_xor_cardinality
,rb_cardinality
,rb_is_empty
,rb_exsit
,rb_equals
,rb_not_equals
,rb_intersect
,rb_contains
,rb_containedby
,rb_jaccard_dist
,rb_min
,rb_max
,rb_rank
,rb_index
for detail please refer to https://github.com/ChenHuajun/pg_roaringbitmap/wiki/Performance-optimization-by-deferred-deserialization
Upgrade CRoaring to v0.2.66
add benchmark script
add travis CI support
Note:
The default compilation method in v0.5.1 turns off the CPU instruction (AVX) optimization, and in some scenarios may cause a 50% decrease in performance compared to the previous version.
You can use make -f Makefile_native
to return to the previous behavior. But you need to be aware that if you use make -f Makefile_native
to compile on a machine that supports these CPU instructions, and then install the compiled binary on an old machine that does not support these CPU instructions, it may cause postgres crash.
v0.3.0 change roaringbitmap default output format to 'bytea' , to return to the previous output format, set the parameters set roaringbitmap.output_format='array'