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

Mihai Budiu resolved CALCITE-6980.
----------------------------------
    Fix Version/s: 1.40.0
       Resolution: Fixed

Fixed in 
https://github.com/apache/calcite/commit/26ad924e97a2d45eaf8a3e526d9536d5405ef61d
Thank you for the reviews [~suibianwanwan3333][~xuzifu666]

> 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
>             Fix For: 1.40.0
>
>
> 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)

Reply via email to