[
https://issues.apache.org/jira/browse/CALCITE-6980?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated CALCITE-6980:
------------------------------------
Labels: pull-request-available (was: )
> RelJson cannot serialize binary literals
> ----------------------------------------
>
> Key: CALCITE-6980
> URL: https://issues.apache.org/jira/browse/CALCITE-6980
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.39.0
> Reporter: Mihai Budiu
> Assignee: Mihai Budiu
> Priority: Minor
> Labels: pull-request-available
>
> Adding the following test to RelWriterTest causes an
> UnsupportedOperationException:
> {code:java}
> @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"));
> }
> {code}
> Here is the stack trace:
> {code}
> 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)
> {code}
> 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.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)