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

Rui Wang updated BEAM-10198:
----------------------------
    Description: 
This query breaks Java code import. Need to diagnose the root cause and have a 
fix properly. 


{code:java}
 public void test_distinct_bytes() {
    String sql = "SELECT DISTINCT val.BYTES\n"
        + "from (select b\"1\" BYTES union all\n"
        + "      select cast(NULL as bytes) union all\n"
        + "      select b\"-1\" union all\n"
        + "      select b\"1\" union all\n"
        + "      select cast(NULL as bytes)) val";

    ZetaSQLQueryPlanner zetaSQLQueryPlanner = new ZetaSQLQueryPlanner(config);
    BeamRelNode beamRelNode = zetaSQLQueryPlanner.convertToBeamRel(sql);
    PCollection<Row> stream = BeamSqlRelUtils.toPCollection(pipeline, 
beamRelNode);

    Schema singleField = Schema.builder().addByteArrayField("field1").build();
    PAssert.that(stream)
        .containsInAnyOrder(
            
Row.withSchema(singleField).addValues("123".getBytes(UTF_8)).build());
    
pipeline.run().waitUntilFinish(Duration.standardMinutes(PIPELINE_EXECUTION_WAITTIME_MINUTES));
  }
{code}

This query will throws 

{code:java}
Forbidden IOException when reading from InputStream
java.lang.IllegalArgumentException: Forbidden IOException when reading from 
InputStream
        at 
org.apache.beam.sdk.util.CoderUtils.decodeFromSafeStream(CoderUtils.java:118)
        at 
org.apache.beam.sdk.util.CoderUtils.decodeFromByteArray(CoderUtils.java:98)
        at 
org.apache.beam.sdk.util.CoderUtils.decodeFromByteArray(CoderUtils.java:92)
        at org.apache.beam.sdk.util.CoderUtils.clone(CoderUtils.java:141)
{code}




  was:

{code:java}
 public void test_distinct_bytes() {
    String sql = "SELECT DISTINCT val.BYTES\n"
        + "from (select b\"1\" BYTES union all\n"
        + "      select cast(NULL as bytes) union all\n"
        + "      select b\"-1\" union all\n"
        + "      select b\"1\" union all\n"
        + "      select cast(NULL as bytes)) val";

    ZetaSQLQueryPlanner zetaSQLQueryPlanner = new ZetaSQLQueryPlanner(config);
    BeamRelNode beamRelNode = zetaSQLQueryPlanner.convertToBeamRel(sql);
    PCollection<Row> stream = BeamSqlRelUtils.toPCollection(pipeline, 
beamRelNode);

    Schema singleField = Schema.builder().addByteArrayField("field1").build();
    PAssert.that(stream)
        .containsInAnyOrder(
            
Row.withSchema(singleField).addValues("123".getBytes(UTF_8)).build());
    
pipeline.run().waitUntilFinish(Duration.standardMinutes(PIPELINE_EXECUTION_WAITTIME_MINUTES));
  }
{code}


This query breaks Java code import. Need to diagnose the root cause and have a 
fix properly. 


> IOException for distinct bytes SQL query
> ----------------------------------------
>
>                 Key: BEAM-10198
>                 URL: https://issues.apache.org/jira/browse/BEAM-10198
>             Project: Beam
>          Issue Type: Bug
>          Components: dsl-sql
>            Reporter: Rui Wang
>            Assignee: Rui Wang
>            Priority: P2
>
> This query breaks Java code import. Need to diagnose the root cause and have 
> a fix properly. 
> {code:java}
>  public void test_distinct_bytes() {
>     String sql = "SELECT DISTINCT val.BYTES\n"
>         + "from (select b\"1\" BYTES union all\n"
>         + "      select cast(NULL as bytes) union all\n"
>         + "      select b\"-1\" union all\n"
>         + "      select b\"1\" union all\n"
>         + "      select cast(NULL as bytes)) val";
>     ZetaSQLQueryPlanner zetaSQLQueryPlanner = new ZetaSQLQueryPlanner(config);
>     BeamRelNode beamRelNode = zetaSQLQueryPlanner.convertToBeamRel(sql);
>     PCollection<Row> stream = BeamSqlRelUtils.toPCollection(pipeline, 
> beamRelNode);
>     Schema singleField = Schema.builder().addByteArrayField("field1").build();
>     PAssert.that(stream)
>         .containsInAnyOrder(
>             
> Row.withSchema(singleField).addValues("123".getBytes(UTF_8)).build());
>     
> pipeline.run().waitUntilFinish(Duration.standardMinutes(PIPELINE_EXECUTION_WAITTIME_MINUTES));
>   }
> {code}
> This query will throws 
> {code:java}
> Forbidden IOException when reading from InputStream
> java.lang.IllegalArgumentException: Forbidden IOException when reading from 
> InputStream
>       at 
> org.apache.beam.sdk.util.CoderUtils.decodeFromSafeStream(CoderUtils.java:118)
>       at 
> org.apache.beam.sdk.util.CoderUtils.decodeFromByteArray(CoderUtils.java:98)
>       at 
> org.apache.beam.sdk.util.CoderUtils.decodeFromByteArray(CoderUtils.java:92)
>       at org.apache.beam.sdk.util.CoderUtils.clone(CoderUtils.java:141)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to