You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ja...@apache.org on 2019/07/04 11:17:31 UTC
[flink] branch master updated: [FLINK-13073][table-blink-runtime]
BinaryRow in Blink runtime has wrong FIRST_BYTE_ZERO mask
This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push:
new 61119b8 [FLINK-13073][table-blink-runtime] BinaryRow in Blink runtime has wrong FIRST_BYTE_ZERO mask
61119b8 is described below
commit 61119b84288e2707238d33469bcd7131d0da3514
Author: LouisXu <xu...@163.com>
AuthorDate: Wed Jul 3 14:26:23 2019 +0800
[FLINK-13073][table-blink-runtime] BinaryRow in Blink runtime has wrong FIRST_BYTE_ZERO mask
This closes #8961
---
.../java/org/apache/flink/table/dataformat/BinaryRow.java | 2 +-
.../org/apache/flink/table/dataformat/BinaryRowTest.java | 13 +++++--------
2 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/flink-table/flink-table-runtime-blink/src/main/java/org/apache/flink/table/dataformat/BinaryRow.java b/flink-table/flink-table-runtime-blink/src/main/java/org/apache/flink/table/dataformat/BinaryRow.java
index 4f8e9ee..358b1fc 100644
--- a/flink-table/flink-table-runtime-blink/src/main/java/org/apache/flink/table/dataformat/BinaryRow.java
+++ b/flink-table/flink-table-runtime-blink/src/main/java/org/apache/flink/table/dataformat/BinaryRow.java
@@ -55,7 +55,7 @@ import static org.apache.flink.util.Preconditions.checkArgument;
public final class BinaryRow extends BinaryFormat implements BaseRow {
public static final boolean LITTLE_ENDIAN = (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN);
- private static final long FIRST_BYTE_ZERO = LITTLE_ENDIAN ? 0xFFF0 : 0x0FFF;
+ private static final long FIRST_BYTE_ZERO = LITTLE_ENDIAN ? ~0xFFL : ~(0xFFL << 56L);
public static final int HEADER_SIZE_IN_BITS = 8;
public static int calculateBitSetWidthInBytes(int arity) {
diff --git a/flink-table/flink-table-runtime-blink/src/test/java/org/apache/flink/table/dataformat/BinaryRowTest.java b/flink-table/flink-table-runtime-blink/src/test/java/org/apache/flink/table/dataformat/BinaryRowTest.java
index 2b88c25..0be17dd 100644
--- a/flink-table/flink-table-runtime-blink/src/test/java/org/apache/flink/table/dataformat/BinaryRowTest.java
+++ b/flink-table/flink-table-runtime-blink/src/test/java/org/apache/flink/table/dataformat/BinaryRowTest.java
@@ -289,16 +289,13 @@ public class BinaryRowTest {
assertTrue(row.anyNull());
}
- {
- BinaryRow row = new BinaryRow(80);
+ int numFields = 80;
+ for (int i = 0; i < numFields; i++) {
+ BinaryRow row = new BinaryRow(numFields);
BinaryRowWriter writer = new BinaryRowWriter(row);
+ row.setHeader((byte) 17);
assertFalse(row.anyNull());
-
- writer.setNullAt(3);
- assertTrue(row.anyNull());
-
- writer = new BinaryRowWriter(row);
- writer.setNullAt(65);
+ writer.setNullAt(i);
assertTrue(row.anyNull());
}
}