[ https://issues.apache.org/jira/browse/CALCITE-4346?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Julian Hyde resolved CALCITE-4346. ---------------------------------- Resolution: Duplicate There is a variation of behaviors. You are not going to convince me that Oracle and Calcite are 'wrong' and MySQL and Hive are 'right', and that we should change Calcite's behavior. If you want control over the behavior, let's implement the {{FORMAT}} clause of {{CAST}} (see CALCITE-2980) and then you can write {{CAST(x AS VARCHAR FORMAT '0.0')}} or similar. > strange result in toString function with bigdecimal type > -------------------------------------------------------- > > Key: CALCITE-4346 > URL: https://issues.apache.org/jira/browse/CALCITE-4346 > Project: Calcite > Issue Type: Bug > Components: core > Reporter: Zhixiong Chen > Priority: Major > > In SqlFunctions the toString function with BigDecimal type will replace 0.1 > with .1 . > But why is this ? > {code:java} > public static String toString(BigDecimal x) { > final String s = x.toString(); > if (s.equals("0")) { > return s; > } else if (s.startsWith("0.")) { > // we want ".1" not "0.1" > return s.substring(1); > } else if (s.startsWith("-0.")) { > // we want "-.1" not "-0.1" > return "-" + s.substring(2); > } else { > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)