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());

Reply via email to