Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
1.39.0
Description
Adding the following test to RelWriterTest causes an UnsupportedOperationException:
@Test void testVarbinary() { final Function<RelBuilder, RelNode> relFn = b -> b.scan("EMP") .project(b.getRexBuilder().makeBinaryLiteral(new ByteString(new byte[0]))) .build(); relFn(relFn) .assertThatJson(isLinux("X")); }
Here is the stack trace:
java.lang.UnsupportedOperationException: type not serializable: (type org.apache.calcite.avatica.util.ByteString) at org.apache.calcite.rel.externalize.RelJson.toJson(RelJson.java:498) at org.apache.calcite.rel.externalize.RelJson.toJson(RelJson.java:594) at org.apache.calcite.rel.externalize.RelJson.toJson(RelJson.java:456) at org.apache.calcite.rel.externalize.RelJson.toJson(RelJson.java:468) at org.apache.calcite.rel.externalize.RelJsonWriter.put(RelJsonWriter.java:102) at org.apache.calcite.rel.externalize.RelJsonWriter.explain_(RelJsonWriter.java:85) at org.apache.calcite.rel.externalize.RelJsonWriter.done(RelJsonWriter.java:135) at org.apache.calcite.rel.AbstractRelNode.explain(AbstractRelNode.java:252) at org.apache.calcite.plan.RelOptUtil.dumpPlan(RelOptUtil.java:2145)
The error is also clearly not a good error, since the type technically is serializable.
The error is from RelJson.toJson; there is no case in the switch statement handling it.
Attachments
Issue Links
- links to