This is an automated email from the ASF dual-hosted git repository. jcamacho pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/calcite.git
commit d6896202c865b38b7821f1e0b644e1de0c95eda2 Author: Jesus Camacho Rodriguez <[email protected]> AuthorDate: Mon May 13 18:35:09 2019 -0700 [CALCITE-3066] RelToSqlConverter may incorrectly throw an AssertionError for some decimal literals Close apache/calcite#1213 --- .../main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java | 4 ++-- .../org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java b/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java index 8b51530..39f6b4b 100644 --- a/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java +++ b/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java @@ -500,10 +500,10 @@ public abstract class SqlImplementor { case NUMERIC: case EXACT_NUMERIC: return SqlLiteral.createExactNumeric( - literal.getValueAs(BigDecimal.class).toString(), POS); + literal.getValueAs(BigDecimal.class).toPlainString(), POS); case APPROXIMATE_NUMERIC: return SqlLiteral.createApproxNumeric( - literal.getValueAs(BigDecimal.class).toString(), POS); + literal.getValueAs(BigDecimal.class).toPlainString(), POS); case BOOLEAN: return SqlLiteral.createBoolean(literal.getValueAs(Boolean.class), POS); diff --git a/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java b/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java index 8dc4cc5..e4fe971 100644 --- a/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java +++ b/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java @@ -408,6 +408,14 @@ public class RelToSqlConverterTest { sql(query).ok(expected); } + @Test public void testCastDecimal1() { + final String query = "select -0.0000000123\n" + + " from \"expense_fact\""; + final String expected = "SELECT -1.23E-8\n" + + "FROM \"foodmart\".\"expense_fact\""; + sql(query).ok(expected); + } + /** Test case for * <a href="https://issues.apache.org/jira/browse/CALCITE-2713">[CALCITE-2713] * JDBC adapter may generate casts on PostgreSQL for VARCHAR type exceeding
