001package gudusoft.gsqlparser.ir.logical.rex;
002
003import gudusoft.gsqlparser.ir.common.SourceAnchor;
004import gudusoft.gsqlparser.ir.logical.RexNode;
005import gudusoft.gsqlparser.ir.logical.RexNodeVisitor;
006
007/**
008 * Column reference expression.
009 */
010public final class RexColumnRef extends RexNode {
011    private final String tableName;
012    private final String columnName;
013
014    public RexColumnRef(String tableName, String columnName, SourceAnchor anchor) {
015        super(RexKind.COLUMN_REF, anchor);
016        this.tableName = tableName;
017        this.columnName = columnName;
018    }
019
020    public String getTableName() { return tableName; }
021    public String getColumnName() { return columnName; }
022
023    @Override
024    public <R> R accept(RexNodeVisitor<R> visitor) { return visitor.visitColumnRef(this); }
025
026    @Override
027    public String toString() { return tableName != null ? tableName + "." + columnName : columnName; }
028}