Example #1
0
        void GetTables()
        {
            using (var command = new NpgsqlCommand(GetTablesQuery, _connection))
                using (var reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var table = new DatabaseTable
                        {
                            Schema = reader.GetValueOrDefault <string>("nspname"),
                            Name   = reader.GetValueOrDefault <string>("relname")
                        };

                        if (_tableSelectionSet.Allows(table.Schema, table.Name))
                        {
                            _databaseModel.Tables.Add(table);
                            _tables[TableKey(table)] = table;
                        }

                        var comment = reader.GetValueOrDefault <string>("description");
                        if (comment != null)
                        {
                            table[NpgsqlAnnotationNames.Comment] = comment;
                        }
                    }
                }
        }
Example #2
0
        private void GetTables()
        {
            var command = _connection.CreateCommand();

            // for origin of the sys.extended_properties SELECT statement
            // below see https://github.com/aspnet/EntityFramework/issues/5126
            command.CommandText =
                @"SELECT
    schema_name(t.schema_id) AS [schema],
    t.name" + MemoryOptimizedTableColumn + @"
    FROM sys.tables AS t
    WHERE t.is_ms_shipped = 0
    AND NOT EXISTS (SELECT *
      FROM  sys.extended_properties
      WHERE major_id = t.object_id
      AND   minor_id = 0
      AND   class = 1
      AND   name = N'microsoft_database_tools_support') " +
                $"AND t.name <> '{HistoryRepository.DefaultTableName}'" + TemporalTableWhereClause; // Interpolation okay; strings
            using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    var table = new TableModel
                    {
                        Database   = _databaseModel,
                        SchemaName = reader.GetValueOrDefault <string>("schema"),
                        Name       = reader.GetValueOrDefault <string>("name")
                    };

                    if (!string.IsNullOrEmpty(MemoryOptimizedTableColumn))
                    {
                        table[SqlServerFullAnnotationNames.Instance.MemoryOptimized] = reader.GetValueOrDefault <bool?>("is_memory_optimized");
                    }

                    Logger.LogDebug(
                        RelationalDesignEventId.FoundTable,
                        () => SqlServerDesignStrings.FoundTable(table.SchemaName, table.Name));

                    if (_tableSelectionSet.Allows(table.SchemaName, table.Name))
                    {
                        _databaseModel.Tables.Add(table);
                        _tables[TableKey(table)] = table;
                    }
                    else
                    {
                        Logger.LogDebug(
                            RelationalDesignEventId.TableSkipped,
                            () => SqlServerDesignStrings.TableNotInSelectionSet(table.SchemaName, table.Name));
                    }
                }
            }
        }
        private void GetTables()
        {
            var command = _connection.CreateCommand();

            // for origin of the sys.extended_properties SELECT statement
            // below see https://github.com/aspnet/EntityFramework/issues/5126
            command.CommandText =
                @"SELECT
    schema_name(t.schema_id) AS [schema],
    t.name
    FROM sys.tables AS t
    WHERE t.is_ms_shipped = 0
    AND NOT EXISTS (SELECT *
      FROM  sys.extended_properties
      WHERE major_id = t.object_id
      AND   minor_id = 0
      AND   class = 1
      AND   name = N'microsoft_database_tools_support') " +
                $"AND t.name <> '{HistoryRepository.DefaultTableName}'" + TemporalTableWhereClause;
            using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    var table = new TableModel
                    {
                        Database   = _databaseModel,
                        SchemaName = reader.GetValueOrDefault <string>("schema"),
                        Name       = reader.GetValueOrDefault <string>("name")
                    };

                    Logger.LogTrace(SqlServerDesignStrings.FoundTable(table.SchemaName, table.Name));

                    if (_tableSelectionSet.Allows(table.SchemaName, table.Name))
                    {
                        _databaseModel.Tables.Add(table);
                        _tables[TableKey(table)] = table;
                    }
                    else
                    {
                        Logger.LogTrace(
                            SqlServerDesignStrings.TableNotInSelectionSet(table.SchemaName, table.Name));
                    }
                }
            }
        }
Example #4
0
        void GetTables()
        {
            using (var command = new NpgsqlCommand(GetTablesQuery, _connection))
                using (var reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var table = new TableModel
                        {
                            SchemaName = reader.GetString(0),
                            Name       = reader.GetString(1)
                        };

                        if (_tableSelectionSet.Allows(table.SchemaName, table.Name))
                        {
                            _databaseModel.Tables.Add(table);
                            _tables[TableKey(table)] = table;
                        }
                    }
                }
        }
Example #5
0
        private void GetTables()
        {
            var command = _connection.CreateCommand();

            command.CommandText = @"SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
                                    WHERE TABLE_TYPE = 'TABLE' AND (SUBSTRING(TABLE_NAME, 1,2) <> '__')";
            using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    var table = new TableModel
                    {
                        SchemaName = null,
                        Name       = reader.GetValueOrDefault <string>("TABLE_NAME")
                    };

                    if (_tableSelectionSet.Allows(table.Name))
                    {
                        _databaseModel.Tables.Add(table);
                        _tables[TableKey(table)] = table;
                    }
                }
            }
        }
Example #6
0
        private void GetTables()
        {
            using (var command = _connection.CreateCommand())
            {
                command.CommandText =
                    "SELECT name FROM sqlite_master" +
                    " WHERE type = 'table'" +
                    " AND name <> 'sqlite_sequence'" +
                    $" AND name <> '{HistoryRepository.DefaultTableName}'"; // Interpolation okay; strings

                using (var reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var name = reader.GetValueOrDefault <string>("name");

                        Logger.LogDebug(
                            RelationalDesignEventId.FoundTable,
                            () => SqliteDesignStrings.FoundTable(name));

                        if (_tableSelectionSet.Allows(name))
                        {
                            var table = new TableModel
                            {
                                Database = _databaseModel,
                                Name     = name
                            };

                            _databaseModel.Tables.Add(table);
                            _tables.Add(name, table);
                        }
                        else
                        {
                            Logger.LogDebug(
                                RelationalDesignEventId.TableSkipped,
                                () => SqliteDesignStrings.TableNotInSelectionSet(name));
                        }
                    }
                }
            }
        }
Example #7
0
        void GetTables()
        {
            using (var command = new FbCommand(GetTablesQuery, _connection))
                using (var reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var table = new DatabaseTable
                        {
                            Schema = null,
                            Name   = reader.GetString(0).Trim()
                        };

                        Logger.LogDebug($"GetTables => Add { reader.GetString(0).Trim() }.");

                        if (_tableSelectionSet.Allows(table.Schema, table.Name))
                        {
                            _databaseModel.Tables.Add(table);
                            _tables[TableKey(table)] = table;
                        }
                    }
                }
        }
Example #8
0
        private IEnumerable <DatabaseTable> GetTables(DbConnection connection, IEnumerable <string> tables)
        {
            var tableSelectionSet = new TableSelectionSet(tables);

            var command = connection.CreateCommand();

            command.CommandText = new StringBuilder()
                                  .AppendLine("SELECT \"name\"")
                                  .AppendLine("FROM \"sqlite_master\"")
                                  .Append("WHERE \"type\" = 'table' AND instr(\"name\", 'sqlite_') <> 1 AND \"name\" <> '")
                                  .Append(HistoryRepository.DefaultTableName)
                                  .AppendLine("';")
                                  .ToString();

            using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    var name = reader.GetString(0);
                    if (!tableSelectionSet.Allows(name))
                    {
                        continue;
                    }

                    _logger.TableFound(name);

                    var table = new DatabaseTable {
                        Name = name
                    };

                    foreach (var column in GetColumns(connection, name))
                    {
                        column.Table = table;
                        table.Columns.Add(column);
                    }

                    var primaryKey = GetPrimaryKey(connection, name, table.Columns);
                    if (primaryKey != null)
                    {
                        primaryKey.Table = table;
                        table.PrimaryKey = primaryKey;
                    }

                    foreach (var uniqueConstraints in GetUniqueConstraints(connection, name, table.Columns))
                    {
                        uniqueConstraints.Table = table;
                        table.UniqueConstraints.Add(uniqueConstraints);
                    }

                    foreach (var index in GetIndexes(connection, name, table.Columns))
                    {
                        index.Table = table;
                        table.Indexes.Add(index);
                    }

                    yield return(table);
                }
            }

            foreach (var tableSelection in tableSelectionSet.Tables.Where(t => !t.IsMatched))
            {
                _logger.MissingTableWarning(tableSelection.Text);
            }
        }