[
https://issues.apache.org/jira/browse/TAJO-740?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Seungun Choe updated TAJO-740:
------------------------------
Attachment: TAJO-740.patch
Tested case is no problem.
{code}
@Test
public void testToNumber() throws IOException {
testSimpleEval("select to_number('-1,2,3', '9999999') ", new
String[]{String.valueOf("-123")});
testSimpleEval("select to_number('123.123', '9999999.999') ", new
String[]{String.valueOf("123.123")});
testSimpleEval("select to_number('123.123', '9999999.99') ", new
String[]{String.valueOf("123.12")});
testSimpleEval("select to_number('123.125', '9999999.99') ", new
String[]{String.valueOf("123.13")});
testSimpleEval("select to_number('-123.125', '9999999.99') ", new
String[]{String.valueOf("-123.13")});
testSimpleEval("select to_number('123.123', '99.999') ", new
String[]{String.valueOf("")});
testSimpleEval("select to_number('123.123', '9999999') ", new
String[]{String.valueOf("123")});
testSimpleEval("select to_number('123.12345', '9999999.9999') ", new
String[]{String.valueOf("123.1235")});
testSimpleEval("select to_number('123.12345', '99999999999') ", new
String[]{String.valueOf("123")});
testSimpleEval("select to_number('123,123.123,45', '99999999999.99999') ",
new String[]{String.valueOf("123123.12345")});
testSimpleEval("select to_number('-123,123.123,45', '99999999999.99999') ",
new String[]{String.valueOf("-123123.12345")});
}
{code}
But unfortunately, if floating under number's length is longer than 9, double
type number expressed exponential type.
So, I think we need elaborated decimal number type.
> Implements function 'to_number'
> -------------------------------
>
> Key: TAJO-740
> URL: https://issues.apache.org/jira/browse/TAJO-740
> Project: Tajo
> Issue Type: New Feature
> Reporter: Seungun Choe
> Assignee: Seungun Choe
> Priority: Minor
> Attachments: TAJO-740.patch
>
>
> {code}
> to_number(text, text) / convert string to numeric / to_number('12,454.8-',
> '99G999D9S')
> to_number(text, text) / convert string to numeric / to_number('1-2,454.8',
> '99G999D9S')
> Results (Both) : -12454.8
> {code}
> This function follows postgresql rules.
--
This message was sent by Atlassian JIRA
(v6.2#6252)