public class oadd.org.apache.drill.exec.resolver.DefaultFunctionResolver extends java.lang.Object implements oadd.org.apache.drill.exec.resolver.FunctionResolver
{
private static final org.slf4j.Logger logger;
public void <init>()
{
oadd.org.apache.drill.exec.resolver.DefaultFunctionResolver v;
v := @this: oadd.org.apache.drill.exec.resolver.DefaultFunctionResolver;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public oadd.org.apache.drill.exec.expr.fn.DrillFuncHolder getBestMatch(java.util.List, oadd.org.apache.drill.common.expression.FunctionCall)
{
oadd.org.apache.drill.exec.resolver.DefaultFunctionResolver v;
java.lang.Integer v;
byte v, v, v, v;
java.util.stream.Collector v;
boolean v, v;
oadd.org.apache.drill.common.expression.FunctionCall v;
oadd.org.apache.drill.exec.expr.fn.DrillFuncHolder v;
java.util.List v, v;
java.util.stream.Stream v, v;
float v, v;
java.lang.Object[] v;
java.util.function.Function v;
int v, v, v;
java.lang.String v;
java.util.LinkedList v;
oadd.org.apache.drill.common.exceptions.UserException$Builder v, v;
oadd.org.apache.drill.common.exceptions.UserException v;
org.slf4j.Logger v, v, v, v;
java.util.Iterator v, v;
java.lang.Object v, v, v;
v := @this: oadd.org.apache.drill.exec.resolver.DefaultFunctionResolver;
v := @parameter: java.util.List;
v := @parameter: oadd.org.apache.drill.common.expression.FunctionCall;
v = #InfinityF;
v = null;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v = virtualinvoke v.<oadd.org.apache.drill.common.expression.FunctionCall: java.util.List args()>();
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <oadd.org.apache.drill.exec.resolver.DefaultFunctionResolver$getMajorType__570: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toList()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <oadd.org.apache.drill.exec.resolver.TypeCastRules: float getCost(java.util.List,oadd.org.apache.drill.exec.expr.fn.DrillFuncHolder)>(v, v);
v = v cmpg v;
if v >= 0 goto label;
v = v;
v = v;
interfaceinvoke v.<java.util.List: void clear()>();
goto label;
label:
v = v cmpl v;
if v != 0 goto label;
v = v cmpg #InfinityF;
if v >= 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v cmpl #InfinityF;
if v != 0 goto label;
return null;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
if v <= 0 goto label;
v = <oadd.org.apache.drill.exec.resolver.DefaultFunctionResolver: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Multiple functions with best cost found, query processing will be aborted.");
v = <oadd.org.apache.drill.exec.resolver.DefaultFunctionResolver: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Printing all the possible functions that could have matched: ");
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = <oadd.org.apache.drill.exec.resolver.DefaultFunctionResolver: org.slf4j.Logger logger>;
v = virtualinvoke v.<oadd.org.apache.drill.exec.expr.fn.DrillFuncHolder: java.lang.String toString()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
goto label;
label:
v = staticinvoke <oadd.org.apache.drill.common.exceptions.UserException: oadd.org.apache.drill.common.exceptions.UserException$Builder functionError()>();
v = newarray (java.lang.Object)[2];
v = interfaceinvoke v.<java.util.List: int size()>();
v = 1 + v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v[1] = v;
v = virtualinvoke v.<oadd.org.apache.drill.common.exceptions.UserException$Builder: oadd.org.apache.drill.common.exceptions.UserException$Builder message(java.lang.String,java.lang.Object[])>("There are %d function definitions with the same casting cost for %s, please write explicit casts disambiguate your function call.", v);
v = <oadd.org.apache.drill.exec.resolver.DefaultFunctionResolver: org.slf4j.Logger logger>;
v = virtualinvoke v.<oadd.org.apache.drill.common.exceptions.UserException$Builder: oadd.org.apache.drill.common.exceptions.UserException build(org.slf4j.Logger)>(v);
throw v;
label:
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Loadd/org/apache/drill/exec/resolver/DefaultFunctionResolver;");
<oadd.org.apache.drill.exec.resolver.DefaultFunctionResolver: org.slf4j.Logger logger> = v;
return;
}
}