001package gudusoft.gsqlparser;
002
003import gudusoft.gsqlparser.nodes.TObjectName;
004
005import java.util.ArrayList;
006
007public interface IRelation {
008    /**
009     * 每个 relation 包含的 attributes
010     * 当它为 base table 时,这些 attributes 的来源有三种可能
011     * 1. 来自数据库的 metadata,第一次 resolve 时就可以获取,来自 sqlenv
012     * 2. 来自 create table ddl,第一次 resolve 时就可以获取,来自 sqlenv
013     * 3. 来自 sql script,第二次 resolve 时,来自relation的 referenceAttribute 属性。
014     *
015     * 第一、二中来源是可靠的来源,attributes应该是完整的,第三种推断自 sql script,attributes很可能是不完整的。
016     * @return
017     */
018    public ArrayList<TAttributeNode> getAttributes();
019    public String getRelationName();
020    public int size();
021
022
023
024  //  public ArrayList<TObjectName> getReferenceAttributes();
025
026}