public override IList <DatabaseIndex> Indexes(string tableName)
        {
            var converter = new IndexConverter(_schemaReader.Indexes(tableName), _schemaReader.IndexColumns(tableName));
            var indices   = converter.Indexes();

            return(indices);
        }
        public IndexLoader(SchemaExtendedReader schemaReader)
        {
            _sr = schemaReader;
            DataTable indexes = _sr.Indexes(null);
            DataTable indexColumns = _sr.IndexColumns(null);
            //MySql and Postgresql only allow indexcolumns per table
            _noIndexColumns = (indexColumns.Rows.Count == 0 && indexes.Rows.Count > 0);
            _noIndexes = (indexes.Rows.Count == 0);

            _indexConverter = new IndexConverter(indexes, indexColumns);
        }
Exemple #3
0
        public void AddIndexes(DatabaseTable table)
        {
            var tableName = table.Name;

            if (!_noIndexes && !_noIndexColumns)
            {
                var indexes = _indexConverter.Indexes(tableName);
                table.Indexes.AddRange(indexes);
                return;
            }
            //what about indexes but no indexcolumns?
            if (_noIndexColumns)
            {
                _indexConverter.AddIndexColumns(table.Indexes, _sr.IndexColumns(tableName));
                return;
            }

            var converter = new IndexConverter(_sr.Indexes(tableName), _sr.IndexColumns(tableName));

            table.Indexes.AddRange(converter.Indexes(tableName));
        }
Exemple #4
0
        public IndexLoader(SchemaExtendedReader schemaReader)
        {
            _sr = schemaReader;
            DataTable indexes      = _sr.Indexes(null);
            DataTable indexColumns = _sr.IndexColumns(null);

            //MySql and Postgresql only allow indexcolumns per table
            _noIndexColumns = (indexColumns.Rows.Count == 0 && indexes.Rows.Count > 0);
            _noIndexes      = (indexes.Rows.Count == 0);


            _indexConverter = new IndexConverter(indexes, indexColumns);
        }