Hello,

According to the draw and simple8b_mode struct comment, it seems there is a typo:

*      20-bit integer       20-bit integer       20-bit integer
 * 1101 00000000000000010010 01111010000100100000 00000000000000010100
 * ^
 * selector
 *
 * The selector 1101 is 13 in decimal.  From the modes table below, we see
 * that it means that the codeword encodes three 12-bit integers.  In decimal,
 * those integers are 18, 500000 and 20.  Because we encode deltas rather than
 * absolute values, the actual values that they represent are 18, 500018 and
 * 500038.
[...]
    {20, 3},                    /* mode 13: three 20-bit integers */


The comment should be "the codeword encodes three *20-bit* integers" ?

Patch attached.

Regards,
diff --git a/src/backend/lib/integerset.c b/src/backend/lib/integerset.c
index 28b4a38609..9984fd55e8 100644
--- a/src/backend/lib/integerset.c
+++ b/src/backend/lib/integerset.c
@@ -805,7 +805,7 @@ intset_binsrch_leaf(uint64 item, leaf_item *arr, int arr_elems, bool nextkey)
  * selector
  *
  * The selector 1101 is 13 in decimal.  From the modes table below, we see
- * that it means that the codeword encodes three 12-bit integers.  In decimal,
+ * that it means that the codeword encodes three 20-bit integers.  In decimal,
  * those integers are 18, 500000 and 20.  Because we encode deltas rather than
  * absolute values, the actual values that they represent are 18, 500018 and
  * 500038.

Reply via email to