示例#1
0
        /// <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)));
            }
        }