[ 
https://issues.apache.org/jira/browse/BEAM-6607?focusedWorklogId=195973&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-195973
 ]

ASF GitHub Bot logged work on BEAM-6607:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 07/Feb/19 22:22
            Start Date: 07/Feb/19 22:22
    Worklog Time Spent: 10m 
      Work Description: reuvenlax commented on issue #7770: [BEAM-6607] Fix bug 
where RowCoder fails if array/map has null values
URL: https://github.com/apache/beam/pull/7770#issuecomment-461614034
 
 
   Thank you for the fix!
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


Issue Time Tracking
-------------------

    Worklog Id:     (was: 195973)
    Time Spent: 0.5h  (was: 20m)

> 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
>              Labels: triaged
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> 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)

Reply via email to