public PostgreSqlDataSource WithSettings(PostgreSqlDataSourceSettings settings)
{
var mergedSettings = new PostgreSqlDataSourceSettings()
{
DefaultCommandTimeout = settings?.DefaultCommandTimeout ?? DefaultCommandTimeout,
SuppressGlobalEvents = settings?.SuppressGlobalEvents ?? SuppressGlobalEvents,
StrictMode = settings?.StrictMode ?? StrictMode
};
var result = new PostgreSqlDataSource(Name, m_ConnectionBuilder, mergedSettings, m_DatabaseMetadata, m_Cache, m_ExtensionCache);
result.m_DatabaseMetadata = m_DatabaseMetadata;
result.AuditRules = AuditRules;
result.UserValue = UserValue;
result.ExecutionStarted += (sender, e) => OnExecutionStarted(e);
result.ExecutionFinished += (sender, e) => OnExecutionFinished(e);
result.ExecutionError += (sender, e) => OnExecutionError(e);
result.ExecutionCanceled += (sender, e) => OnExecutionCanceled(e);
return result;
}