[ 
https://issues.apache.org/jira/browse/DRILL-4743?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15373519#comment-15373519
 ] 

ASF GitHub Bot commented on DRILL-4743:
---------------------------------------

Github user gparai commented on a diff in the pull request:

    https://github.com/apache/drill/pull/534#discussion_r70504761
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/server/options/TypeValidators.java
 ---
    @@ -90,6 +105,66 @@ public void validate(OptionValue v) {
         }
       }
     
    +  public static class MinRangeDoubleValidator extends RangeDoubleValidator 
implements DependentTypeValidators {
    +    private final double min;
    +    private final double max;
    +    private final String maxValidatorName;
    +
    +    public MinRangeDoubleValidator(String name, double min, double max, 
double def, String maxValidatorName) {
    +      super(name, min, max, def);
    +      this.min = min;
    +      this.max = max;
    +      this.maxValidatorName = maxValidatorName;
    +    }
    +
    +    @Override
    +    public void validate(OptionValue v) {
    +      super.validate(v);
    +    }
    +
    +    @Override
    +    public void validate(OptionValue v, final BaseOptionManager manager) {
    +      super.validate(v);
    +      OptionValue maxValue = manager.getOption(maxValidatorName);
    +
    +      if (v.float_val > maxValue.float_val) {
    +        throw UserException.validationError()
    +                .message(String.format("Option %s must be less than Option 
%s", getOptionName(), maxValidatorName))
    +                .build(logger);
    +      }
    +    }
    +  }
    +
    +  public static class MaxRangeDoubleValidator extends RangeDoubleValidator 
implements DependentTypeValidators {
    +    private final double min;
    +    private final double max;
    +    private final String minValidatorName;
    +
    +    public MaxRangeDoubleValidator(String name, double min, double max, 
double def, String minValidatorName) {
    +      super(name, min, max, def);
    +      this.min = min;
    +      this.max = max;
    +      this.minValidatorName = minValidatorName;
    +    }
    +
    +    @Override
    +    public void validate(OptionValue v) {
    +      super.validate(v);
    +    }
    +
    +    @Override
    +    public void validate(OptionValue v, final BaseOptionManager manager) {
    +      super.validate(v);
    +      OptionValue minValue = manager.getOption(minValidatorName);
    +
    +      if (v.float_val < minValue.float_val) {
    +        throw UserException.validationError()
    +                .message(String.format("Option %s must be greater than 
Option %s", getOptionName(), minValidatorName))
    --- End diff --
    
    Done


> HashJoin's not fully parallelized in query plan
> -----------------------------------------------
>
>                 Key: DRILL-4743
>                 URL: https://issues.apache.org/jira/browse/DRILL-4743
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.5.0
>            Reporter: Gautam Kumar Parai
>            Assignee: Gautam Kumar Parai
>              Labels: doc-impacting
>
> The underlying problem is filter selectivity under-estimate for a query with 
> complicated predicates e.g. deeply nested and/or predicates. This leads to 
> under parallelization of the major fragment doing the join. 
> To really resolve this problem we need table/column statistics to correctly 
> estimate the selectivity. However, in the absence of statistics OR even when 
> existing statistics are insufficient to get a correct estimate of selectivity 
> this will serve as a workaround.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to