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

twalthr 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 5331420b599 [FLINK-38268][core] Fix incorrect serialization of VARIANT 
type FLOAT
5331420b599 is described below

commit 5331420b5994e6f3bfdc6b43e1d6b86f12cee083
Author: Jinkun Liu <[email protected]>
AuthorDate: Fri Nov 7 01:10:20 2025 +0800

    [FLINK-38268][core] Fix incorrect serialization of VARIANT type FLOAT
    
    This closes #27017.
---
 .../flink/types/variant/BinaryVariantInternalBuilder.java     |  2 +-
 .../flink/types/variant/BinaryVariantInternalBuilderTest.java | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git 
a/flink-core/src/main/java/org/apache/flink/types/variant/BinaryVariantInternalBuilder.java
 
b/flink-core/src/main/java/org/apache/flink/types/variant/BinaryVariantInternalBuilder.java
index 3a1ce3c969f..928c267f365 100644
--- 
a/flink-core/src/main/java/org/apache/flink/types/variant/BinaryVariantInternalBuilder.java
+++ 
b/flink-core/src/main/java/org/apache/flink/types/variant/BinaryVariantInternalBuilder.java
@@ -290,7 +290,7 @@ public class BinaryVariantInternalBuilder {
     public void appendFloat(float f) {
         checkCapacity(1 + 4);
         writeBuffer[writePos++] = primitiveHeader(FLOAT);
-        writeLong(writeBuffer, writePos, Float.floatToIntBits(f), 8);
+        writeLong(writeBuffer, writePos, Float.floatToIntBits(f), 4);
         writePos += 4;
     }
 
diff --git 
a/flink-core/src/test/java/org/apache/flink/types/variant/BinaryVariantInternalBuilderTest.java
 
b/flink-core/src/test/java/org/apache/flink/types/variant/BinaryVariantInternalBuilderTest.java
index 4e97c640152..924e538f40a 100644
--- 
a/flink-core/src/test/java/org/apache/flink/types/variant/BinaryVariantInternalBuilderTest.java
+++ 
b/flink-core/src/test/java/org/apache/flink/types/variant/BinaryVariantInternalBuilderTest.java
@@ -22,8 +22,11 @@ import org.junit.jupiter.api.Test;
 
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Collections;
 
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatCode;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 class BinaryVariantInternalBuilderTest {
@@ -116,4 +119,12 @@ class BinaryVariantInternalBuilderTest {
         assertThat(variant.getField("k1").getByte()).isEqualTo((byte) 2);
         
assertThat(variant.getField("k2").getDecimal()).isEqualTo(BigDecimal.valueOf(1.5));
     }
+
+    @Test
+    void testAppendFloat() {
+        BinaryVariantInternalBuilder builder = new 
BinaryVariantInternalBuilder(false);
+        ArrayList<Float> floatList = new ArrayList<>(Collections.nCopies(25, 
4.2f));
+
+        assertThatCode(() -> 
floatList.forEach(builder::appendFloat)).doesNotThrowAnyException();
+    }
 }

Reply via email to