001package gudusoft.gsqlparser.ir.logical.rel; 002 003import gudusoft.gsqlparser.ir.common.SourceAnchor; 004import gudusoft.gsqlparser.ir.logical.*; 005 006import java.util.Collections; 007import java.util.List; 008 009/** 010 * DELETE statement. 011 */ 012public final class DmlDelete extends RelNode { 013 private final String targetTable; 014 private final RexNode filter; 015 private final RelNode source; 016 017 public DmlDelete(String targetTable, RexNode filter, RelNode source, SourceAnchor anchor) { 018 super(RelNodeKind.DML_DELETE, anchor); 019 this.targetTable = targetTable; 020 this.filter = filter; 021 this.source = source; 022 } 023 024 public String getTargetTable() { return targetTable; } 025 public RexNode getFilter() { return filter; } 026 public RelNode getSource() { return source; } 027 028 @Override 029 public List<RelNode> getInputs() { 030 return source != null ? Collections.singletonList(source) : Collections.<RelNode>emptyList(); 031 } 032 033 @Override 034 public <R> R accept(RelNodeVisitor<R> visitor) { return visitor.visitDmlDelete(this); } 035}