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}