public DbTableConstraintColumn AddColumn(DbColumn cInfo, int seq = -1, bool non = false, int card = -1) { DbTableConstraintColumn c = constraintColumns.ContainsKey(cInfo.objectName) ? constraintColumns[cInfo.objectName] : constraintColumns.Add(cInfo.objectName, new DbTableConstraintColumn(this, cInfo)); c.seqInIndex = seq; c.nonUnique = non; c.cardinality = card; cInfo.constraints.Add(c); return(c); }
void GetAccessibleTables(TablePath path) { DbTable t = path == null ? table : path.referencedTable; foreach (DbTableConstraint constraint in t.constraints.Values) { if (constraint.isForeignKey || constraint.type == "inferred") { if (!paths.ContainsKey(constraint.referencedTable.objectName)) { if (constraint.referencedTable != table) { TablePath p = new TablePath(constraint, path); paths.Add(constraint.referencedTable.objectName, p); GetAccessibleTables(p); } } } } }
public int AliasUsed(string alias) { DbAlias a = aliases.ContainsKey(alias) ? aliases[alias] : null; if (a == null) { a = new DbAlias(alias, this); aliases.Add(alias, a); } int pos = a.Used(); aliases.SetPosition(alias, pos); return(pos); }
public virtual void AnalyzeSummarize() { if (analyzeTableColumnAffinities) { foreach (DbTable t in tables.Values) { t.FindAffinities(); t.AnalyzeAffinities(); } } if (rankTables) { QDict <string, DbTable> rankList = new QDict <string, DbTable>(QListSort.Descending); QList <string> list = new QList <string>(QListSort.Descending); foreach (DbTable t in tables.Values) { rankList.Add(t.name, t); t.affinities.Add("rowCount", t.rowCount); if (t.references.Count > 0) { t.affinities.Add("references", t.references.Count); } } RankTablesByAffinity("references", 5, 7); RankTablesByAffinity("important", 5, 3); RankTablesByAffinity("descriptive", 5, 3); RankTablesByAffinity("label", 5, 3); //RankTablesByAffinity("quantity", 5, 2); RankTablesByAffinity("rowCount", 5, 2); foreach (DbTable t in tables.Values) { rankList.SetPosition(t.objectName, Convert.ToInt32(1000 * t.importance)); } Log("table rank"); foreach (string nam in rankList.Keys) { Log(" " + nam); } } }
public DbTableConstraint GetOrAddConstraint(string nam, string typ) { return(constraints.ContainsKey(nam) ? constraints[nam] : constraints.Add(nam, new DbTableConstraint(nam, typ, this))); }