[
https://issues.apache.org/jira/browse/CALCITE-1722?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15939224#comment-15939224
]
Julian Hyde commented on CALCITE-1722:
--------------------------------------
Does this change pass the test suite and verify?
Are the numerous other places that call RexLiteral.getValue2 affected by this
change?
> Lose of double precision on Filters.
> ------------------------------------
>
> Key: CALCITE-1722
> URL: https://issues.apache.org/jira/browse/CALCITE-1722
> Project: Calcite
> Issue Type: Bug
> Affects Versions: 1.12.0
> Reporter: slim bouguerra
> Assignee: Julian Hyde
>
> We have 2 issue here:
> 1 Major, it is the lose of precision when converting filters with double
> values eg {code} value < 1.455 {code}
> For instance this is an example of wrong plan due to this bug.
> {code}
> explain select d_year from ssb_druid where cast(d_year as double) < 1.2221;
> OK
> Plan optimized by CBO.
> Stage-0
> Fetch Operator
> limit:-1
> Select Operator [SEL_1]
> Output:["_col0"]
> TableScan [TS_0]
>
> Output:["d_year"],properties:{"druid.query.json":"{\"queryType\":\"select\",\"dataSource\":\"ssb_druid\",\"descending\":false,\"intervals\":[\"1900-01-01T00:00:00.000/3000-01-01T00:00:00.000\"],\"filter\":{\"type\":\"bound\",\"dimension\":\"d_year\",\"upper\":\"12221\",\"upperStrict\":true,\"alphaNumeric\":true},\"dimensions\":[\"d_year\"],\"metrics\":[],\"granularity\":\"all\",\"pagingSpec\":{\"threshold\":16384,\"fromNext\":true},\"context\":{\"druid.query.fetch\":false}}","druid.query.type":"select"}
> {code}
> The second issue (Minor) is to use {code}ordering{code} instead of
> Alphanumeric, this is needed when comparing floats/doubles.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)