/
dev-npgsql
/
npgsql
Обзор
Документация
Войти
/
dev-npgsql
/
npgsql
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
v4.1.13
src/Npgsql/PostgresMinimalDatabaseInfo.cs
38 строк
1 KB
Shay Rojansky
Minor cleanup all around
03 сен 2019, 12:26
03 сен 2019, 12:26
e59da52
Код
Авторство
О чём код?
using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Threading.Tasks; using Npgsql.PostgresTypes; using Npgsql.Util; using NpgsqlTypes; namespace Npgsql { class PostgresMinimalDatabaseInfoFactory : INpgsqlDatabaseInfoFactory { public Task<NpgsqlDatabaseInfo?> Load(NpgsqlConnection conn, NpgsqlTimeout timeout, bool async) => Task.FromResult( new NpgsqlConnectionStringBuilder(conn.ConnectionString).ServerCompatibilityMode == ServerCompatibilityMode.NoTypeLoading ? (NpgsqlDatabaseInfo)new PostgresMinimalDatabaseInfo(conn) : null ); } class PostgresMinimalDatabaseInfo : PostgresDatabaseInfo { static readonly PostgresBaseType[] Types = typeof(NpgsqlDbType).GetFields() .Select(f => f.GetCustomAttribute<BuiltInPostgresType>()) .OfType<BuiltInPostgresType>() .Select(a => new PostgresBaseType("pg_catalog", a.Name, a.OID)) .ToArray(); protected override IEnumerable<PostgresType> GetTypes() => Types; internal PostgresMinimalDatabaseInfo(NpgsqlConnection conn) : base(conn) { HasIntegerDateTimes = !conn.PostgresParameters.TryGetValue("integer_datetimes", out var intDateTimes) || intDateTimes == "on"; } } }