Skip to content

Commit c57005b

Browse files
committed
fix misc
1 parent 183307c commit c57005b

File tree

4 files changed

+13
-6
lines changed

4 files changed

+13
-6
lines changed

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,13 @@ SELECT '\x3a3000000100000000000000100000000100'::ROARINGBITMAP;
152152
<td>Retrun roaringbitmap cardinality between integer range with step.</td>
153153
<td>rb_cardinality(rb_build('{1,2,3,4,5}'),1,4,2)</td>
154154
</tr>
155+
<tr>
156+
<td>rb_cardinality</td>
157+
<td>roraingbitmap<br>integer<br>integer<br>integer<br>integer<br>integer</td>
158+
<td>bigint</td>
159+
<td>Retrun roaringbitmap cardinality between integer range with step, in offset range.</td>
160+
<td>rb_cardinality(rb_build('{1,2,3,4,5}'),1,4,2,1,3)</td>
161+
</tr>
155162
<tr>
156163
<td>rb_cardinality</td>
157164
<td>roraingbitmap<br>integer<br>integer<br>integer<br>integer[]</td>

roaringbitmap--0.2.65.1--0.2.65.2.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ CREATE
5757
DROP FUNCTION IF EXISTS rb_cardinality(roaringbitmap, integer, integer, integer, integer, integer);
5858
CREATE
5959
OR REPLACE FUNCTION rb_cardinality(roaringbitmap, integer, integer, integer, integer, integer) RETURNS BIGINT AS 'MODULE_PATHNAME',
60-
'rb_cardinality_step_intval' LANGUAGE C STRICT IMMUTABLE;
60+
'rb_cardinality_step_interval' LANGUAGE C STRICT IMMUTABLE;
6161
CREATE
6262
OR REPLACE FUNCTION rb_is_empty(roaringbitmap) RETURNS bool AS 'MODULE_PATHNAME',
6363
'rb_is_empty' LANGUAGE C STRICT IMMUTABLE;

roaringbitmap--0.2.65.2.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ CREATE
7676
'rb_cardinality_step_array' LANGUAGE C STRICT IMMUTABLE;
7777
CREATE
7878
OR REPLACE FUNCTION rb_cardinality(roaringbitmap, integer, integer, integer, integer, integer) RETURNS BIGINT AS 'MODULE_PATHNAME',
79-
'rb_cardinality_step_intval' LANGUAGE C STRICT IMMUTABLE;
79+
'rb_cardinality_step_interval' LANGUAGE C STRICT IMMUTABLE;
8080
CREATE
8181
OR REPLACE FUNCTION rb_is_empty(roaringbitmap) RETURNS bool AS 'MODULE_PATHNAME',
8282
'rb_is_empty' LANGUAGE C STRICT IMMUTABLE;

roaringbitmap.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -417,8 +417,8 @@ Datum
417417
uint32_t min = PG_GETARG_INT32(1);
418418
uint32_t max = PG_GETARG_INT32(2);
419419
int step = PG_GETARG_INT32(3);
420-
uint32_t start = PG_GETARG_INT32(4);
421-
uint32_t end = PG_GETARG_INT32(5);
420+
int start = PG_GETARG_INT32(4);
421+
int end = PG_GETARG_INT32(5);
422422

423423
if (step < 2)
424424
ereport(ERROR, (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), errmsg("step must be greater than 1")));
@@ -439,7 +439,7 @@ Datum
439439
{
440440
if (p + step >= rmin)
441441
{
442-
if (roaring_bitmap_range_cardinality(r1, p + start, p + end) > 0)
442+
if (roaring_bitmap_range_cardinality(r1, p + start, p + end + 1) > 0)
443443
card1++;
444444
}
445445
p += step;
@@ -478,7 +478,7 @@ Datum
478478
uint32_t rmin = roaring_bitmap_minimum(r1);
479479
uint32_t rmax = roaring_bitmap_maximum(r1);
480480

481-
max = max == -1 ? rmax : max;
481+
max = max == -1 ? rmax : (rmax < max ? rmax : max);
482482
uint32_t p = min;
483483
int64 card1 = 0;
484484
while (p <= max)

0 commit comments

Comments
 (0)