[
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)