Uploaded image for project: 'Beam'
  1. Beam
  2. BEAM-10198

IOException for distinct bytes SQL query

Details

    Description

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

       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));
        }
      

      This query will throws

      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)
      

      Attachments

        Issue Links

          Activity

            People

              amaliujia Rui Wang
              amaliujia Rui Wang
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m