Expressions.not(Expressions.foldAnd(nullAsTrue)); Expression hasNull = Expressions.foldOr(nullAsIsNull); return nullAs.handle( Expressions.condition(hasFalse, BOXED_FALSE_EXPR, Expressions.condition(hasNull, NULL_EXPR, BOXED_TRUE_EXPR))); Expression hasTrue = Expressions.foldOr(nullAsFalse); Expression hasNull = Expressions.foldOr(nullAsIsNull); Expression result = nullAs.handle( Expressions.condition(hasTrue, BOXED_TRUE_EXPR, Expressions.condition(hasNull, NULL_EXPR, BOXED_FALSE_EXPR)));
Expressions.not(Expressions.foldAnd(nullAsTrue)); Expression hasNull = Expressions.foldOr(nullAsIsNull); return nullAs.handle( Expressions.condition(hasFalse, BOXED_FALSE_EXPR, Expressions.condition(hasNull, NULL_EXPR, BOXED_TRUE_EXPR))); Expression hasTrue = Expressions.foldOr(nullAsFalse); Expression hasNull = Expressions.foldOr(nullAsIsNull); Expression result = nullAs.handle( Expressions.condition(hasTrue, BOXED_TRUE_EXPR, Expressions.condition(hasNull, NULL_EXPR, BOXED_FALSE_EXPR)));
final Expression nullHandled = nullAs.handle(input);
final Expression nullHandled = nullAs.handle(input);
/** Translates a parameter. */ private Expression translateParameter(RexDynamicParam expr, RexImpTable.NullAs nullAs, Type storageType) { if (storageType == null) { storageType = typeFactory.getJavaClass(expr.getType()); } return nullAs.handle( convert( Expressions.call(root, BuiltInMethod.DATA_CONTEXT_GET.method, Expressions.constant("?" + expr.getIndex())), storageType)); }
Expression translate(RexNode expr) { final RexImpTable.NullAs nullAs = RexImpTable.NullAs.of(isNullable(expr)); return translate(expr, nullAs); }
/** Translates a parameter. */ private Expression translateParameter(RexDynamicParam expr, RexImpTable.NullAs nullAs, Type storageType) { if (storageType == null) { storageType = typeFactory.getJavaClass(expr.getType()); } return nullAs.handle( convert( Expressions.call(root, BuiltInMethod.DATA_CONTEXT_GET.method, Expressions.constant("?" + expr.getIndex())), storageType)); }
Expression translate(RexNode expr) { final RexImpTable.NullAs nullAs = RexImpTable.NullAs.of(isNullable(expr)); return translate(expr, nullAs); }
Expression translate(RexNode expr, Type storageType) { final RexImpTable.NullAs nullAs = RexImpTable.NullAs.of(isNullable(expr)); return translate(expr, nullAs, storageType); }
Expression translate(RexNode expr, Type storageType) { final RexImpTable.NullAs nullAs = RexImpTable.NullAs.of(isNullable(expr)); return translate(expr, nullAs, storageType); }