public Expr getPredicand() { return getChild(); }
public IsNullPredicate(boolean not, Expr column) { super(OpType.IsNullPredicate); this.not = not; setChild(column); }
@Override public IsNullPredicate visitNull_predicate(Null_predicateContext ctx) { Expr predicand = visitRow_value_predicand(ctx.row_value_predicand()); return new IsNullPredicate(ctx.NOT() != null, predicand); }
@Override public EvalNode visitIsNullPredicate(Context ctx, Stack<Expr> stack, IsNullPredicate expr) throws TajoException { stack.push(expr); EvalNode child = visit(ctx, stack, expr.getPredicand()); stack.pop(); return new IsNullEval(expr.isNot(), child); }
@Override public Expr visitUnaryOperator(Object ctx, Stack<Expr> stack, UnaryOperator expr) throws TajoException { stack.push(expr); Expr child = visit(ctx, stack, expr.getChild()); stack.pop(); if (child.getType() == OpType.Literal) { return new NullLiteral(); } String childSql = queries.pop(); StringBuilder sb = new StringBuilder(); if (expr.getType() == OpType.IsNullPredicate) { IsNullPredicate isNullPredicate = (IsNullPredicate) expr; sb.append(childSql); sb.append(" IS "); if (isNullPredicate.isNot()) { sb.append("NOT NULL"); } else { sb.append("NULL"); } } if (!isHiveCatalog) { sb.append(" )"); } queries.push(sb.toString()); return expr; }
accumulatedFilters.add(new IsNullPredicate(true, columnReference)); } else { for (Expr expr : conjunctiveForms) { accumulatedFilters.add(new IsNullPredicate(true, columnReference));
@Override public EvalNode visitIsNullPredicate(Context ctx, Stack<Expr> stack, IsNullPredicate expr) throws TajoException { stack.push(expr); EvalNode child = visit(ctx, stack, expr.getPredicand()); stack.pop(); return new IsNullEval(expr.isNot(), child); }
@Override public IsNullPredicate visitNull_predicate(Null_predicateContext ctx) { Expr predicand = visitRow_value_predicand(ctx.row_value_predicand()); return new IsNullPredicate(ctx.NOT() != null, predicand); }
public Expr getPredicand() { return getChild(); }
public IsNullPredicate(boolean not, Expr column) { super(OpType.IsNullPredicate); this.not = not; setChild(column); }
public int hashCode() { return Objects.hashCode(not, getChild()); }
public int hashCode() { return Objects.hashCode(not, getChild()); }