@Override public Datum eval(Tuple param) { Datum predicandValue = predicand.eval(param); if (!predicandValue.isNull()) { return DatumFactory.createBool(not ^ (predicandValue.greaterThanEqual(begin).asBool() && predicandValue.lessThanEqual(end).asBool())); } else { return NullDatum.get(); } } }
@Override public Datum eval(Tuple param) { Datum predicandValue = predicand.eval(param); if (!predicandValue.isNull()) { return DatumFactory.createBool(not ^ (predicandValue.greaterThanEqual(begin).asBool() && predicandValue.lessThanEqual(end).asBool())); } else { return NullDatum.get(); } } }
@Override public Datum eval(Tuple param) { Datum predicandValue = predicand.eval(param); Datum beginValue = begin.eval(param); Datum endValue = end.eval(param); if (!(predicandValue.isNull()|| beginValue.isNull() || endValue.isNull())) { return DatumFactory.createBool( not ^ (predicandValue.greaterThanEqual(beginValue).asBool() && predicandValue.lessThanEqual(endValue).asBool()) || (predicandValue.lessThanEqual(beginValue).asBool() && predicandValue.greaterThanEqual(endValue).asBool()) ); } else { return NullDatum.get(); } } }
@Override public Datum eval(Tuple param) { Datum predicandValue = predicand.eval(param); Datum beginValue = begin.eval(param); Datum endValue = end.eval(param); if (!(predicandValue.isNull()|| beginValue.isNull() || endValue.isNull())) { return DatumFactory.createBool( not ^ (predicandValue.greaterThanEqual(beginValue).asBool() && predicandValue.lessThanEqual(endValue).asBool()) || (predicandValue.lessThanEqual(beginValue).asBool() && predicandValue.greaterThanEqual(endValue).asBool()) ); } else { return NullDatum.get(); } } }
@Override public Datum eval(Tuple param) { Datum predicandValue = predicand.eval(param); Datum beginValue = begin.eval(param); Datum endValue = end.eval(param); if (!(predicandValue.isNull() || beginValue.isNull() || endValue.isNull())) { return DatumFactory.createBool(not ^ (predicandValue.greaterThanEqual(beginValue).asBool() && predicandValue.lessThanEqual(endValue).asBool())); } else { return NullDatum.get(); } } }
@Override public Datum eval(Tuple param) { Datum predicandValue = predicand.eval(param); Datum beginValue = begin.eval(param); Datum endValue = end.eval(param); if (!(predicandValue.isNull() || beginValue.isNull() || endValue.isNull())) { return DatumFactory.createBool(not ^ (predicandValue.greaterThanEqual(beginValue).asBool() && predicandValue.lessThanEqual(endValue).asBool())); } else { return NullDatum.get(); } } }
return lhs.lessThan(rhs); case LEQ: return lhs.lessThanEqual(rhs); case GTH: return lhs.greaterThan(rhs);
return lhs.lessThan(rhs); case LEQ: return lhs.lessThanEqual(rhs); case GTH: return lhs.greaterThan(rhs);
@Test public final void testNext() throws IOException, TajoException { FileFragment[] frags = FileTablespace.splitNG(conf, "default.employee", employeeMeta, tablePath, Integer.MAX_VALUE); Path workDir = CommonTestingUtil.getTestDir(TajoTestingCluster.DEFAULT_TEST_DIRECTORY + "/TestSortExec"); TaskAttemptContext ctx = new TaskAttemptContext(queryContext, LocalTajoTestingUtility .newTaskAttemptId(), new FileFragment[] { frags[0] }, workDir); ctx.setEnforcer(new Enforcer()); Expr context = analyzer.parse(QUERIES[0]); LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummyContext(conf), context); LogicalNode rootNode = optimizer.optimize(plan); PhysicalPlanner phyPlanner = new PhysicalPlannerImpl(conf); PhysicalExec exec = phyPlanner.createPlan(ctx, rootNode); Tuple tuple; Datum preVal = null; Datum curVal; exec.init(); while ((tuple = exec.next()) != null) { curVal = tuple.asDatum(0); if (preVal != null) { assertTrue(preVal.lessThanEqual(curVal).asBool()); } preVal = curVal; } exec.close(); }