Package org.apache.druid.math.expr
Class Function.IsDistinctFromFunc
- java.lang.Object
-
- org.apache.druid.math.expr.Function.IsNotDistinctFromFunc
-
- org.apache.druid.math.expr.Function.IsDistinctFromFunc
-
- All Implemented Interfaces:
Function,NamedFunction
- Enclosing interface:
- Function
public static class Function.IsDistinctFromFunc extends Function.IsNotDistinctFromFunc
SQL function "x IS DISTINCT FROM y". Very similar to "x <> y", i.e.BinNeqExpr, except this function never returns null. Implemented as a subclass of IsNotDistinctFromFunc to keep the code simple, and because we expect "notdistinctfrom" to be more common than "isdistinctfrom" in actual usage.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.druid.math.expr.Function
Function.Abs, Function.Acos, Function.ArrayAddElementFunction, Function.ArrayAppendFunction, Function.ArrayConcatFunction, Function.ArrayConstructorFunction, Function.ArrayContainsFunction, Function.ArrayLengthFunction, Function.ArrayOffsetFunction, Function.ArrayOffsetOfFunction, Function.ArrayOrdinalFunction, Function.ArrayOrdinalOfFunction, Function.ArrayOverlapFunction, Function.ArrayPrependFunction, Function.ArrayScalarFunction, Function.ArraySetAddAllFunction, Function.ArraySetAddFunction, Function.ArraysFunction, Function.ArraySliceFunction, Function.ArraysMergeFunction, Function.ArrayToMultiValueStringFunction, Function.ArrayToStringFunction, Function.Asin, Function.Atan, Function.Atan2, Function.BitwiseAnd, Function.BitwiseComplement, Function.BitwiseConvertDoubleToLongBits, Function.BitwiseConvertLongBitsToDouble, Function.BitwiseOr, Function.BitwiseShiftLeft, Function.BitwiseShiftRight, Function.BitwiseXor, Function.BivariateBitwiseMathFunction, Function.BivariateFunction, Function.BivariateMathFunction, Function.CaseSearchedFunc, Function.CaseSimpleFunc, Function.CastFunc, Function.Cbrt, Function.Ceil, Function.ConcatFunc, Function.ConditionFunc, Function.CopySign, Function.Cos, Function.Cosh, Function.Cot, Function.Div, Function.DoubleBivariateMathFunction, Function.DoubleUnivariateMathFunction, Function.Exp, Function.Expm1, Function.Floor, Function.GetExponent, Function.GreatestFunc, Function.HumanReadableBinaryByteFormatFunc, Function.HumanReadableDecimalByteFormatFunc, Function.HumanReadableDecimalFormatFunc, Function.Hypot, Function.IsDistinctFromFunc, Function.IsFalseFunc, Function.IsNotDistinctFromFunc, Function.IsNotFalseFunc, Function.IsNotNullFunc, Function.IsNotTrueFunc, Function.IsNullFunc, Function.IsTrueFunc, Function.LeastFunc, Function.LeftFunc, Function.Log, Function.Log10, Function.Log1p, Function.LowerFunc, Function.LpadFunc, Function.Max, Function.Min, Function.MultiValueStringToArrayFunction, Function.NextAfter, Function.NextUp, Function.NvlFunc, Function.ParseLong, Function.Pi, Function.Pow, Function.ReduceFunction, Function.Remainder, Function.RepeatFunc, Function.ReplaceFunc, Function.ReverseFunc, Function.RightFunc, Function.Rint, Function.Round, Function.RpadFunc, Function.SafeDivide, Function.Scalb, Function.Signum, Function.Sin, Function.Sinh, Function.SizeFormatFunc, Function.Sqrt, Function.StringFormatFunc, Function.StringLongFunction, Function.StringToArrayFunction, Function.StrlenFunc, Function.StrposFunc, Function.SubMonthFunc, Function.SubstringFunc, Function.Tan, Function.Tanh, Function.TimestampFromEpochFunc, Function.ToDegrees, Function.ToRadians, Function.Ulp, Function.UnivariateFunction, Function.UnivariateMathFunction, Function.UnixTimestampFunc, Function.UpperFunc
-
-
Constructor Summary
Constructors Constructor Description IsDistinctFromFunc()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ExprEvalapply(List<Expr> args, Expr.ObjectBinding bindings)Evaluate the function, given a list of arguments and a set of bindings to provide values forIdentifierExpr.ExpressionTypegetOutputType(Expr.InputBindingInspector inspector, List<Expr> args)Compute the output type of this function for a given set of argument expression inputs.Stringname()Name of the functionvoidvalidateArguments(List<Expr> args)Validate function arguments.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.druid.math.expr.Function
asVectorProcessor, canVectorize, getArrayInputs, getScalarInputs, hasArrayInputs, hasArrayOutput
-
Methods inherited from interface org.apache.druid.math.expr.NamedFunction
processingFailed, validationFailed, validationFailed, validationHelperCheckAnyOfArgumentCount, validationHelperCheckArgIsLiteral, validationHelperCheckArgumentCount, validationHelperCheckArgumentCount, validationHelperCheckArgumentRange, validationHelperCheckLambaArgumentCount, validationHelperCheckMinArgumentCount, validationHelperCheckMinArgumentCount
-
-
-
-
Method Detail
-
name
public String name()
Description copied from interface:NamedFunctionName of the function- Specified by:
namein interfaceNamedFunction- Overrides:
namein classFunction.IsNotDistinctFromFunc
-
apply
public ExprEval apply(List<Expr> args, Expr.ObjectBinding bindings)
Description copied from interface:FunctionEvaluate the function, given a list of arguments and a set of bindings to provide values forIdentifierExpr.- Specified by:
applyin interfaceFunction- Overrides:
applyin classFunction.IsNotDistinctFromFunc
-
validateArguments
public void validateArguments(List<Expr> args)
Description copied from interface:FunctionValidate function arguments. This method is called whenever aFunctionExpris created, and should validate everything that is feasible up front. Note that input type information is typically unavailable at the timeExprare parsed, and so this method is incapable of performing complete validation.- Specified by:
validateArgumentsin interfaceFunction- Overrides:
validateArgumentsin classFunction.IsNotDistinctFromFunc
-
getOutputType
@Nullable public ExpressionType getOutputType(Expr.InputBindingInspector inspector, List<Expr> args)
Description copied from interface:FunctionCompute the output type of this function for a given set of argument expression inputs.- Specified by:
getOutputTypein interfaceFunction- Overrides:
getOutputTypein classFunction.IsNotDistinctFromFunc- See Also:
Expr.getOutputType(org.apache.druid.math.expr.Expr.InputBindingInspector)
-
-