You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ib...@apache.org on 2022/10/07 08:53:08 UTC

[ignite-3] branch main updated: IGNITE-17844 Fixed corner case in BitmaskNativeType constructor. (#1174)

This is an automated email from the ASF dual-hosted git repository.

ibessonov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new f6bad72d20 IGNITE-17844 Fixed corner case in BitmaskNativeType constructor. (#1174)
f6bad72d20 is described below

commit f6bad72d20acbf97a96b8a317357e2f9a5c4bb14
Author: Ivan Bessonov <be...@gmail.com>
AuthorDate: Fri Oct 7 11:53:02 2022 +0300

    IGNITE-17844 Fixed corner case in BitmaskNativeType constructor. (#1174)
---
 .../org/apache/ignite/internal/schema/BitmaskNativeType.java |  2 +-
 .../org/apache/ignite/internal/schema/NativeTypeTest.java    | 12 ++++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/BitmaskNativeType.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/BitmaskNativeType.java
index 2e3e7331a3..7d02185a24 100644
--- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/BitmaskNativeType.java
+++ b/modules/schema/src/main/java/org/apache/ignite/internal/schema/BitmaskNativeType.java
@@ -32,7 +32,7 @@ public class BitmaskNativeType extends NativeType {
      * @param bits The number of bits in the bitmask.
      */
     protected BitmaskNativeType(int bits) {
-        super(NativeTypeSpec.BITMASK, (bits + 7) / 8);
+        super(NativeTypeSpec.BITMASK, Math.max(1, (bits + 7) / 8));
 
         this.bits = bits;
     }
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/NativeTypeTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/NativeTypeTest.java
index acd3ef4fc4..1f64c08c5e 100644
--- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/NativeTypeTest.java
+++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/NativeTypeTest.java
@@ -148,4 +148,16 @@ public class NativeTypeTest {
     public void compareVarlenTypesByDesc() {
         assertTrue(BYTES.compareTo(STRING) < 0);
     }
+
+    /**
+     * Validate data size of bitmap type.
+     */
+    @Test
+    public void bitmaskSizeTest() {
+        assertEquals(1, new BitmaskNativeType(0).sizeInBytes());
+
+        assertEquals(1, new BitmaskNativeType(8).sizeInBytes());
+
+        assertEquals(2, new BitmaskNativeType(9).sizeInBytes());
+    }
 }