public static List<RexNode> retainDeterministic(List<RexNode> list) { List<RexNode> conjuctions = new ArrayList<>(); for (RexNode x : list) { if (isDeterministic(x)) { conjuctions.add(x); } } return conjuctions; }
public static List<RexNode> retainDeterministic(List<RexNode> list) { List<RexNode> conjuctions = new ArrayList<>(); for (RexNode x : list) { if (isDeterministic(x)) { conjuctions.add(x); } } return conjuctions; }
if (!RexUtil.isDeterministic(term)) { continue; if (!RexUtil.isDeterministic(notDisjunction)) { continue;
if (!RexUtil.isDeterministic(term)) { continue; if (!RexUtil.isDeterministic(notDisjunction)) { continue;
@Test public void testDeterministic1() throws Exception { check((rexBuilder, executor) -> { final RexNode plus = rexBuilder.makeCall(SqlStdOperatorTable.PLUS, rexBuilder.makeExactLiteral(BigDecimal.ONE), rexBuilder.makeExactLiteral(BigDecimal.ONE)); assertThat(RexUtil.isDeterministic(plus), equalTo(true)); }); }
@Test public void testDeterministic2() throws Exception { check((rexBuilder, executor) -> { final RexNode plus = rexBuilder.makeCall(PLUS_RANDOM, rexBuilder.makeExactLiteral(BigDecimal.ONE), rexBuilder.makeExactLiteral(BigDecimal.ONE)); assertThat(RexUtil.isDeterministic(plus), equalTo(false)); }); }
@Test public void testDeterministic2() throws Exception { check((rexBuilder, executor) -> { final RexNode plus = rexBuilder.makeCall(PLUS_RANDOM, rexBuilder.makeExactLiteral(BigDecimal.ONE), rexBuilder.makeExactLiteral(BigDecimal.ONE)); assertThat(RexUtil.isDeterministic(plus), equalTo(false)); }); }
@Test public void testDeterministic1() throws Exception { check((rexBuilder, executor) -> { final RexNode plus = rexBuilder.makeCall(SqlStdOperatorTable.PLUS, rexBuilder.makeExactLiteral(BigDecimal.ONE), rexBuilder.makeExactLiteral(BigDecimal.ONE)); assertThat(RexUtil.isDeterministic(plus), equalTo(true)); }); }
@Test public void testIsDeterministic() { SqlOperator ndc = new SqlSpecialOperator( "NDC", SqlKind.OTHER_FUNCTION, 0, false, ReturnTypes.BOOLEAN, null, null) { @Override public boolean isDeterministic() { return false; } }; RexNode n = rexBuilder.makeCall(ndc); assertFalse(RexUtil.isDeterministic(n)); assertEquals(0, RexUtil.retainDeterministic(RelOptUtil.conjunctions(n)).size()); }
@Test public void testIsDeterministic() { SqlOperator ndc = new SqlSpecialOperator( "NDC", SqlKind.OTHER_FUNCTION, 0, false, ReturnTypes.BOOLEAN, null, null) { @Override public boolean isDeterministic() { return false; } }; RexNode n = rexBuilder.makeCall(ndc); assertFalse(RexUtil.isDeterministic(n)); assertEquals(0, RexUtil.retainDeterministic(RelOptUtil.conjunctions(n)).size()); }
@Test public void testDeterministic3() throws Exception { check((rexBuilder, executor) -> { final RexNode plus = rexBuilder.makeCall(SqlStdOperatorTable.PLUS, rexBuilder.makeCall(PLUS_RANDOM, rexBuilder.makeExactLiteral(BigDecimal.ONE), rexBuilder.makeExactLiteral(BigDecimal.ONE)), rexBuilder.makeExactLiteral(BigDecimal.ONE)); assertThat(RexUtil.isDeterministic(plus), equalTo(false)); }); }
@Test public void testDeterministic3() throws Exception { check((rexBuilder, executor) -> { final RexNode plus = rexBuilder.makeCall(SqlStdOperatorTable.PLUS, rexBuilder.makeCall(PLUS_RANDOM, rexBuilder.makeExactLiteral(BigDecimal.ONE), rexBuilder.makeExactLiteral(BigDecimal.ONE)), rexBuilder.makeExactLiteral(BigDecimal.ONE)); assertThat(RexUtil.isDeterministic(plus), equalTo(false)); }); }
com.google.common.collect.ImmutableList.<RexNode>builder(); for (RexNode expr : RelOptUtil.conjunctions(join.getCondition())) { if (RexUtil.isDeterministic(expr)) { deterministicJoinFilters.add(expr); } else { if (filter != null) { for (RexNode expr : RelOptUtil.conjunctions(filter.getCondition())) { if (RexUtil.isDeterministic(expr)) { deterministicAboveFilters.add(expr); } else {