[ https://issues.apache.org/jira/browse/FLINK-14848?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Wenlong Lyu updated FLINK-14848: -------------------------------- Component/s: (was: Table SQL / Planner) Table SQL / Runtime > BaseRowSerializer.toBinaryRow wrongly process null for non-compact decimal > --------------------------------------------------------------------------- > > Key: FLINK-14848 > URL: https://issues.apache.org/jira/browse/FLINK-14848 > Project: Flink > Issue Type: Bug > Components: Table SQL / Runtime > Affects Versions: 1.9.1 > Reporter: Zhenghua Gao > Priority: Major > Labels: pull-request-available, stale-major > > Take non-compact decimal(precision > 18 null as an example, the writer not > only need to set null bits, but also need to assign bytes of variable-length > part for future update. The following test case can reproduce the problem. > > > {code:java} > @Test > public void test() { > Decimal dec = Decimal.fromBigDecimal(new BigDecimal(11), 38, 0); > BinaryRow row1 = new BinaryRow(2); > BinaryRowWriter writer = new BinaryRowWriter(row1); > writer.writeDecimal(0, dec, 38); > writer.writeDecimal(1, null, 38); > writer.complete(); > BaseRowSerializer serializer = new BaseRowSerializer(null, RowType.of(new > DecimalType(38, 0), new DecimalType(38, 0))); > GenericRow row2 = new GenericRow(2); > row2.setField(0, dec); > row2.setField(1, null); > BinaryRow row3 = serializer.toBinaryRow(row2); > assertTrue(row1.equalsWithoutHeader(row3)); > } > {code} > > -- This message was sent by Atlassian Jira (v8.3.4#803005)