[CALCITE-1722] Druid adapter uses un-scaled value of DECIMAL literals (Slim 
Bouguerra)

Close apache/calcite#411


Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/ecc1623f
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/ecc1623f
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/ecc1623f

Branch: refs/heads/master
Commit: ecc1623fb3a4e7ae277d4f673437e9a852a0a2c9
Parents: aa0bf32
Author: Jesus Camacho Rodriguez <[email protected]>
Authored: Mon Mar 27 20:07:07 2017 +0100
Committer: Jesus Camacho Rodriguez <[email protected]>
Committed: Mon Mar 27 20:14:41 2017 +0100

----------------------------------------------------------------------
 .../java/org/apache/calcite/adapter/druid/DruidQuery.java    | 2 +-
 .../test/java/org/apache/calcite/test/DruidAdapterIT.java    | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/ecc1623f/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java
----------------------------------------------------------------------
diff --git 
a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java 
b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java
index 9378e47..f8211a4 100644
--- a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java
+++ b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java
@@ -906,7 +906,7 @@ public class DruidQuery extends AbstractRelNode implements 
BindableRel {
         return tr(e, 0, set);
 
       case LITERAL:
-        return ((RexLiteral) e).getValue2().toString();
+        return ((RexLiteral) e).getValue3().toString();
 
       case FLOOR:
         final RexCall call = (RexCall) e;

http://git-wip-us.apache.org/repos/asf/calcite/blob/ecc1623f/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java
----------------------------------------------------------------------
diff --git a/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java 
b/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java
index 312ff63..e673c9c 100644
--- a/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java
+++ b/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java
@@ -1496,6 +1496,14 @@ public class DruidAdapterIT {
     sql(sql).queryContains(druidChecker("{\"queryType\":\"select\""));
   }
 
+  @Test public void testFilterOnDouble() {
+    String sql = "select \"product_id\" from \"foodmart\"\n"
+        + "where cast(\"product_id\" as double) < 0.41024 and \"product_id\" < 
12223";
+    sql(sql).queryContains(
+        
druidChecker("\"type\":\"bound\",\"dimension\":\"product_id\",\"upper\":\"0.41024\"",
+            "\"upper\":\"12223\""));
+  }
+
 }
 
 // End DruidAdapterIT.java

Reply via email to