Evgeny Stanilovsky created CALCITE-6792:
-------------------------------------------

             Summary:  RelJsonReader failed to read RelJsonWriter output if 
'NaN' or 'Infinity' approximate numerics are present
                 Key: CALCITE-6792
                 URL: https://issues.apache.org/jira/browse/CALCITE-6792
             Project: Calcite
          Issue Type: Bug
          Components: core
    Affects Versions: 1.38.0
            Reporter: Evgeny Stanilovsky


Simple reproduser is below, place it into RelWriterTest
{noformat}
  @Test void testInf() {
      Frameworks.withPlanner((cluster, relOptSchema, rootSchema) -> {
        final RexBuilder rexBuilder = cluster.getRexBuilder();
        final FrameworkConfig config = RelBuilderTest.config().build();
        final RelBuilder builder = RelBuilder.create(config);
 
        RelDataType doubleType = cluster.getTypeFactory().builder().add("name",
            cluster.getTypeFactory().createSqlType(SqlTypeName.DOUBLE)).build();
 
        final RelDataType doubleTypeLit =
            cluster.getTypeFactory().createSqlType(SqlTypeName.DOUBLE);
        RexLiteral lit = rexBuilder.makeApproxLiteral(Double.POSITIVE_INFINITY, 
// <---
            doubleTypeLit);
        RelNode vals = builder.values(Collections.nCopies(1, List.of(lit)), 
doubleType).build();
 
        final RelJsonWriter writer = new RelJsonWriter();
        vals.explain(writer);
        String serialized = writer.asString();
 
        SchemaPlus schema = rootSchema.add("hr",
            new ReflectiveSchema(new HrSchema()));
        final RelJsonReader reader =
            new RelJsonReader(cluster, relOptSchema, schema);
        RelNode node;
        try {
          node = reader.read(serialized); // <- raised from here
        } catch (IOException e) {
          throw TestUtil.rethrow(e);
        }
        return RelOptUtil.dumpPlan("", node, SqlExplainFormat.TEXT,
            SqlExplainLevel.EXPPLAN_ATTRIBUTES);
      });
  }
{noformat}

will throw: com.fasterxml.jackson.core.JsonParseException: Non-standard token 
'Infinity': enable `JsonReadFeature.ALLOW_NON_NUMERIC_NUMBERS` to allow



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to