You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Kenneth Knowles (JIRA)" <ji...@apache.org> on 2019/02/06 18:00:06 UTC

[jira] [Assigned] (BEAM-6607) SchemaCoder cannot encode row with null value in array

     [ https://issues.apache.org/jira/browse/BEAM-6607?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kenneth Knowles reassigned BEAM-6607:
-------------------------------------

    Assignee: Mike Pedersen  (was: Kenneth Knowles)

> SchemaCoder cannot encode row with null value in array
> ------------------------------------------------------
>
>                 Key: BEAM-6607
>                 URL: https://issues.apache.org/jira/browse/BEAM-6607
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-java-core
>            Reporter: Mike Pedersen
>            Assignee: Mike Pedersen
>            Priority: Major
>
> This example fails with a "cannot encode null Integer" exception:
> {code:java}
> import com.google.common.io.ByteStreams;
> import org.apache.beam.sdk.schemas.Schema;
> import org.apache.beam.sdk.schemas.SchemaCoder;
> import org.apache.beam.sdk.values.Row;
> import java.io.IOException;
> import java.util.Collections;
> public class Main {
>     public static void main(String[] args) throws IOException {
>         Schema schema = Schema.builder()
>                 .addField("a", Schema.FieldType.array(Schema.FieldType.INT32, true))
>                 .build();
>         Row row = Row.withSchema(schema).addValue(Collections.singletonList(null)).build();
>         SchemaCoder.of(schema).encode(row, ByteStreams.nullOutputStream());
>     }
> }{code}
> Note that null in the array should be OK, as the nullable parameter to Schema.FieldType.array is true.
> An easy way of solving this could be to wrap inner coders with a NullableCoder, but a better way would probably to have something like a NullableIterableCoder that uses a bitset similarly to how the SchemaCoder encodes nullable fields.
> I'll probably take a stab at fixing this and making a pull request.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)