/// <summary> /// Adiciona um indice para a instancia. /// </summary> /// <param name="rs"></param> /// <param name="meta"></param> private void AddIndex(System.Data.DataRow rs, IDataBaseSchema meta) { string index = GetIndexName(rs); if (string.IsNullOrEmpty(index)) { return; } IIndexMetadata info = GetIndexMetadata(index); if (info == null) { info = GetIndexMetadata(rs); _indexes[info.Name.ToLowerInvariant()] = info; } foreach (System.Data.DataRow row in meta.GetIndexColumns(_catalog, _schema, _name, index).Rows) { info.AddColumn(GetColumnMetadata(GetColumnName(row))); } }
private IEnumerable <IIndexMetadata> BuildIndexList(List <IndexGroup> indexConstraintGroups) { var indexMetadataList = this.indexMetadataFactory.GetList(); if (indexConstraintGroups.Count > 0 && indexConstraintGroups[0].Indexes[0].Contains("Indexes")) { for (int i = 1; i < indexConstraintGroups[0].Indexes.Length; i++) { MatchCollection coll = this.indexRegex.Matches(indexConstraintGroups[0].Indexes[i]); foreach (Match m in coll) { IIndexMetadata indexMetadata = this.BuildIndexMetadata(m); string constraint = m.Groups["Constraint"].Value; indexMetadata.Status = m.Groups["Status"].Value; indexMetadata.Type = constraint == string.Empty ? TypeId.Index : TypeId.ConstrainedIndex; indexMetadataList.Add(indexMetadata); } } } return(indexMetadataList); }
private IEnumerable <IIndexMetadata> BuildConstraintList(List <IndexGroup> indexConstraintGroups) { var metadataList = this.indexMetadataFactory.GetList(); if (indexConstraintGroups.Count > 1 && indexConstraintGroups[1].Indexes[0].Contains("Constraints")) { for (int i = 1; i < indexConstraintGroups[1].Indexes.Length; i++) { MatchCollection coll = this.constriantRegex.Matches(indexConstraintGroups[1].Indexes[i]); foreach (Match m in coll) { IIndexMetadata indexMetadata = this.BuildIndexMetadata(m); indexMetadata.Type = TypeId.Constraint; indexMetadata.Constraint = m.Groups["Constraint"].Value; indexMetadata.Status = indexMetadata.Constraint; metadataList.Add(indexMetadata); } } } return(metadataList); }
private void AddIndex(DataRow rs, IDataBaseSchema meta) { string index = GetIndexName(rs); if (string.IsNullOrEmpty(index)) { return; } IIndexMetadata info = GetIndexMetadata(index); if (info == null) { info = GetIndexMetadata(rs); indexes[info.Name] = info; } foreach (DataRow row in meta.GetIndexColumns(catalog, schema, name, index).Rows) { info.AddColumn(GetColumnMetadata(GetColumnName(row))); } }