Following [CALCITE-1803], clean up the flow control logic (Junxian Wu) Close apache/calcite#499
Project: http://git-wip-us.apache.org/repos/asf/calcite/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/cbbe627f Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/cbbe627f Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/cbbe627f Branch: refs/heads/master Commit: cbbe627feac1293796f68ff8ec8d4bd7b64724d2 Parents: 93a96dd Author: Junxian Wu <[email protected]> Authored: Mon Jul 17 17:44:58 2017 -0700 Committer: Julian Hyde <[email protected]> Committed: Mon Jul 17 22:03:16 2017 -0700 ---------------------------------------------------------------------- .../adapter/druid/DruidConnectionImpl.java | 29 ++++++++++---------- 1 file changed, 15 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/cbbe627f/druid/src/main/java/org/apache/calcite/adapter/druid/DruidConnectionImpl.java ---------------------------------------------------------------------- diff --git a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidConnectionImpl.java b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidConnectionImpl.java index fe11e0a..191ec47 100644 --- a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidConnectionImpl.java +++ b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidConnectionImpl.java @@ -338,7 +338,7 @@ class DruidConnectionImpl implements DruidConnection { break; case VALUE_STRING: default: - String s = parser.getText(); + final String s = parser.getText(); if (type != null) { switch (type) { case LONG: @@ -347,32 +347,33 @@ class DruidConnectionImpl implements DruidConnection { case PRIMITIVE_SHORT: case INTEGER: case PRIMITIVE_INT: - if (s.equals("Infinity") || s.equals("-Infinity") || s.equals("NaN")) { + switch (s) { + case "Infinity": + case "-Infinity": + case "NaN": throw new RuntimeException("/ by zero"); } + break; case FLOAT: case PRIMITIVE_FLOAT: case PRIMITIVE_DOUBLE: case NUMBER: case DOUBLE: - if (s.equals("Infinity")) { + switch (s) { + case "Infinity": rowBuilder.set(i, Double.POSITIVE_INFINITY); - break; - } else if (s.equals("-Infinity")) { + return; + case "-Infinity": rowBuilder.set(i, Double.NEGATIVE_INFINITY); - break; - } else if (s.equals("NaN")) { + return; + case "NaN": rowBuilder.set(i, Double.NaN); - break; + return; } - //fallthrough - default: - rowBuilder.set(i, s); - break; } - } else { - rowBuilder.set(i, s); } + rowBuilder.set(i, s); + break; } }
