/*
* Copyright 2004-2011 H2 Group. Multiple-Licensed under the H2 License,
* Version 1.0, and under the Eclipse Public License, Version 1.0
* (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package com.alibaba.garuda.plan.logical.relational;
import com.alibaba.garuda.plan.FrontendException;
import com.alibaba.garuda.plan.Operator;
import com.alibaba.garuda.plan.PlanVisitor;
import com.alibaba.garuda.plan.logical.LogicalPlan;
import com.alibaba.garuda.plan.logical.expression.LogicalExpressionPlan;
/**
* @author Min Zhou (coderplay@gmail.com)
*/
public class LOFilter extends LogicalRelationalOperator {
private LogicalExpressionPlan filterPlan;
public LOFilter(LogicalPlan plan) {
super("LOFilter", plan);
}
public LOFilter(LogicalPlan plan, LogicalExpressionPlan filterPlan) {
super("LOFilter", plan);
this.filterPlan = filterPlan;
}
/**
* return condition
*
* @return
*/
public LogicalExpressionPlan getFilterPlan() {
return filterPlan;
}
public void setFilterPlan(LogicalExpressionPlan filterPlan) {
this.filterPlan = filterPlan;
}
@Override
public LogicalSchema getSchema() throws FrontendException {
return null;
}
@Override
public void accept(PlanVisitor v) throws FrontendException {
}
@Override
public boolean isEqual(Operator other) throws FrontendException {
if (other != null && other instanceof LOFilter) {
LOFilter of = (LOFilter) other;
return filterPlan.isEqual(of.filterPlan) && checkEquality(of);
} else {
return false;
}
}
}