public PostgreSqlDataSource(string name, NpgsqlConnectionStringBuilder connectionBuilder, PostgreSqlDataSourceSettings settings = null)
: base(settings)
{
if (connectionBuilder == null)
throw new ArgumentNullException(nameof(connectionBuilder), $"{nameof(connectionBuilder)} is null.");
m_ConnectionBuilder = connectionBuilder;
if (string.IsNullOrEmpty(name))
Name = m_ConnectionBuilder.Database;
else
Name = name;
m_DatabaseMetadata = new PostgreSqlMetadataCache(m_ConnectionBuilder);
m_ExtensionCache = new ConcurrentDictionary<Type, object>();
m_Cache = DefaultCache;
}