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 * UPDATE statement. 011 */ 012public final class DmlUpdate extends RelNode { 013 private final String targetTable; 014 private final List<RexNode> assignments; 015 private final RelNode source; 016 private final RexNode filter; 017 018 public DmlUpdate(String targetTable, List<RexNode> assignments, 019 RelNode source, RexNode filter, SourceAnchor anchor) { 020 super(RelNodeKind.DML_UPDATE, anchor); 021 this.targetTable = targetTable; 022 this.assignments = assignments != null ? Collections.unmodifiableList(assignments) : Collections.<RexNode>emptyList(); 023 this.source = source; 024 this.filter = filter; 025 } 026 027 public String getTargetTable() { return targetTable; } 028 public List<RexNode> getAssignments() { return assignments; } 029 public RelNode getSource() { return source; } 030 public RexNode getFilter() { return filter; } 031 032 @Override 033 public List<RelNode> getInputs() { 034 return source != null ? Collections.singletonList(source) : Collections.<RelNode>emptyList(); 035 } 036 037 @Override 038 public <R> R accept(RelNodeVisitor<R> visitor) { return visitor.visitDmlUpdate(this); } 039}