diff --git a/isthmus/src/test/java/io/substrait/isthmus/ExpressionConvertabilityTest.java b/isthmus/src/test/java/io/substrait/isthmus/ExpressionConvertabilityTest.java index 527fca91f..519295aa8 100644 --- a/isthmus/src/test/java/io/substrait/isthmus/ExpressionConvertabilityTest.java +++ b/isthmus/src/test/java/io/substrait/isthmus/ExpressionConvertabilityTest.java @@ -6,6 +6,7 @@ import io.substrait.dsl.SubstraitBuilder; import io.substrait.expression.Expression; +import io.substrait.expression.ExpressionCreator; import io.substrait.expression.proto.ExpressionProtoConverter; import io.substrait.extension.ExtensionCollector; import io.substrait.isthmus.expression.ExpressionRexConverter; @@ -106,8 +107,21 @@ public void switchExpression() { } @Test - public void castFailureCondition() throws IOException, SqlParseException { - assertProtoPlanRoundrip("SELECT CAST(25.65 AS varchar)"); + public void castFailureCondition() { + Rel rel = + b.project( + input -> + List.of( + ExpressionCreator.cast( + R.I64, + b.fieldReference(input, 0), + Expression.FailureBehavior.THROW_EXCEPTION), + ExpressionCreator.cast( + R.I64, b.fieldReference(input, 0), Expression.FailureBehavior.RETURN_NULL)), + b.remap(1, 2), + b.namedScan(List.of("test"), List.of("col1"), List.of(R.STRING))); + + assertFullRoundTrip(rel); } void assertExpressionEquality(Expression expected, Expression actual) {