Repository: incubator-drill Updated Branches: refs/heads/master 1b20b6e9e -> 63b034676
DRILL-693: Include system and session options in fragment options Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/14c628cc Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/14c628cc Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/14c628cc Branch: refs/heads/master Commit: 14c628ccd69caeea70754eafb525ca2d3d2f1401 Parents: 1b20b6e Author: Steven Phillips <[email protected]> Authored: Tue May 6 04:42:30 2014 -0700 Committer: Aditya Kishore <[email protected]> Committed: Mon May 12 18:16:02 2014 -0700 ---------------------------------------------------------------------- .../drill/exec/server/options/FragmentOptionsManager.java | 6 +++++- .../org/apache/drill/exec/server/options/OptionValue.java | 2 +- .../apache/drill/exec/server/options/TypeValidators.java | 10 ++++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/14c628cc/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/FragmentOptionsManager.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/FragmentOptionsManager.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/FragmentOptionsManager.java index e9620db..7ae189e 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/FragmentOptionsManager.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/FragmentOptionsManager.java @@ -50,7 +50,11 @@ public class FragmentOptionsManager implements OptionManager{ @Override public OptionValue getOption(String name) { - return null; + OptionValue value = options.get(name); + if (value == null) { + value = systemOptions.getOption(name); + } + return value; } @Override http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/14c628cc/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionValue.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionValue.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionValue.java index 7b4f7f6..54d4e12 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionValue.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/OptionValue.java @@ -60,7 +60,7 @@ public class OptionValue extends JacksonSerializable { private OptionValue(Kind kind, OptionType type, String name, Long num_val, String string_val, Boolean bool_val, Double float_val) { super(); - Preconditions.checkArgument(num_val != null || string_val != null || bool_val != null); + Preconditions.checkArgument(num_val != null || string_val != null || bool_val != null || float_val != null); this.name = name; this.kind = kind; this.float_val = float_val; http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/14c628cc/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/TypeValidators.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/TypeValidators.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/TypeValidators.java index 0d681ea..bc6a9d3 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/TypeValidators.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/TypeValidators.java @@ -23,6 +23,7 @@ import org.apache.drill.common.exceptions.ExpressionParsingException; import org.apache.drill.exec.server.options.OptionValue.Kind; import org.apache.drill.exec.server.options.OptionValue.OptionType; import org.eigenbase.sql.SqlLiteral; +import org.eigenbase.util.NlsString; public class TypeValidators { static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TypeValidators.class); @@ -51,7 +52,7 @@ public class TypeValidators { } public static class StringValidator extends TypeValidator{ public StringValidator(String name, String def){ - super(name, Kind.LONG, OptionValue.createString(OptionType.SYSTEM, name, def)); + super(name, Kind.STRING, OptionValue.createString(OptionType.SYSTEM, name, def)); } } @@ -106,6 +107,11 @@ public class TypeValidators { public static OptionValue getPartialValue(String name, OptionType type, SqlLiteral literal) { switch (literal.getTypeName()) { case DECIMAL: + if (((BigDecimal) literal.getValue()).scale() == 0) { + return OptionValue.createLong(type, name, ((BigDecimal) literal.getValue()).longValue()); + } else { + return OptionValue.createDouble(type, name, ((BigDecimal) literal.getValue()).doubleValue()); + } case DOUBLE: case FLOAT: return OptionValue.createDouble(type, name, ((BigDecimal) literal.getValue()).doubleValue()); @@ -119,7 +125,7 @@ public class TypeValidators { case VARBINARY: case VARCHAR: case CHAR: - return OptionValue.createString(type, name, (String) literal.getValue()); + return OptionValue.createString(type, name, ((NlsString) literal.getValue()).getValue()); case BOOLEAN: return OptionValue.createBoolean(type, name, (Boolean) literal.getValue());
