Table of Contents

Class PostgreSqlDatabaseFactory

Namespace
LfrlAnvil.PostgreSql
Assembly
LfrlAnvil.PostgreSql.dll

Represents a factory of SQL databases.

public sealed class PostgreSqlDatabaseFactory : SqlDatabaseFactory<PostgreSqlDatabase>, ISqlDatabaseFactory
Inheritance
PostgreSqlDatabaseFactory
Implements
Inherited Members

Remarks

PostgreSqlDialect implementation.

Constructors

PostgreSqlDatabaseFactory(PostgreSqlDatabaseFactoryOptions?)

Creates a new PostgreSqlDatabaseFactory instance.

public PostgreSqlDatabaseFactory(PostgreSqlDatabaseFactoryOptions? options = null)

Parameters

options PostgreSqlDatabaseFactoryOptions?

Optional PostgreSqlDatabaseFactoryOptions. Equal to Default by default.

Properties

Options

PostgreSqlDatabaseFactoryOptions instance associated with this factory that contains DB creation options.

public PostgreSqlDatabaseFactoryOptions Options { get; }

Property Value

PostgreSqlDatabaseFactoryOptions

Methods

CreateConnection(DbConnectionStringBuilder)

Creates a new unopened DbConnection instance.

[Pure]
protected override NpgsqlConnection CreateConnection(DbConnectionStringBuilder connectionString)

Parameters

connectionString DbConnectionStringBuilder

Connection string builder.

Returns

NpgsqlConnection

New DbConnection instance.

CreateConnectionStringBuilder(string)

Creates a new DbConnectionStringBuilder instance.

[Pure]
protected override NpgsqlConnectionStringBuilder CreateConnectionStringBuilder(string connectionString)

Parameters

connectionString string

Connection string.

Returns

NpgsqlConnectionStringBuilder

New DbConnectionStringBuilder instance.

CreateDatabase(SqlDatabaseBuilder, DbConnectionStringBuilder, DbConnection, DbConnectionEventHandler, SqlQueryReaderExecutor<SqlDatabaseVersionRecord>, Version)

Creates a new SqlDatabase instance.

protected override PostgreSqlDatabase CreateDatabase(SqlDatabaseBuilder builder, DbConnectionStringBuilder connectionString, DbConnection connection, DbConnectionEventHandler eventHandler, SqlQueryReaderExecutor<SqlDatabaseVersionRecord> versionHistoryRecordsQuery, Version version)

Parameters

builder SqlDatabaseBuilder

Source database builder.

connectionString DbConnectionStringBuilder

Connection string builder.

connection DbConnection

Opened connection to the database.

eventHandler DbConnectionEventHandler

Collection of SqlDatabaseConnectionChangeEvent callbacks.

versionHistoryRecordsQuery SqlQueryReaderExecutor<SqlDatabaseVersionRecord>

Query reader's executor capable of reading metadata of all versions applied to the database.

version Version

Current version of the database.

Returns

PostgreSqlDatabase

New SqlDatabase instance.

CreateDatabaseBuilder(string, DbConnection)

Creates a new SqlDatabaseBuilder instance.

protected override PostgreSqlDatabaseBuilder CreateDatabaseBuilder(string defaultSchemaName, DbConnection connection)

Parameters

defaultSchemaName string

Initial name of the Default schema. Version history table will belong to this schema.

connection DbConnection

Opened connection to the database.

Returns

PostgreSqlDatabaseBuilder

New SqlDatabaseBuilder instance.

FinalizeConnectionPreparations(DbConnectionStringBuilder, DbConnection, SqlNodeInterpreter, ref SqlDatabaseFactoryStatementExecutor)

Finalizes DB connection preparations. This method is invoked right before version history table initialization.

protected override void FinalizeConnectionPreparations(DbConnectionStringBuilder connectionString, DbConnection connection, SqlNodeInterpreter nodeInterpreter, ref SqlDatabaseFactoryStatementExecutor executor)

Parameters

connectionString DbConnectionStringBuilder

Connection string builder.

connection DbConnection

Opened connection to the database.

nodeInterpreter SqlNodeInterpreter

SqlNodeInterpreter instance.

executor SqlDatabaseFactoryStatementExecutor

Decorator for executing SQL statements on the database.

GetChangeTrackerAttachmentForVersionHistoryTableInit(SqlDatabaseChangeTracker, SqlSchemaObjectName, SqlNodeInterpreter, DbConnection, ref SqlDatabaseFactoryStatementExecutor)

Checks whether or not the version history table should be attached as a change from which an SQL statement should be created and executed.

protected override bool GetChangeTrackerAttachmentForVersionHistoryTableInit(SqlDatabaseChangeTracker changeTracker, SqlSchemaObjectName versionHistoryTableName, SqlNodeInterpreter nodeInterpreter, DbConnection connection, ref SqlDatabaseFactoryStatementExecutor executor)

Parameters

changeTracker SqlDatabaseChangeTracker

Database builder's change tracker.

versionHistoryTableName SqlSchemaObjectName

Name of the version history table.

nodeInterpreter SqlNodeInterpreter

SqlNodeInterpreter instance.

connection DbConnection

Opened connection to the database.

executor SqlDatabaseFactoryStatementExecutor

Decorator for executing SQL statements on the database.

Returns

bool

true when version history table should be created in the database, otherwise false.

Remarks

This method can also be used for registering other common database objects.

GetDefaultVersionHistoryName()

Creates a new SqlSchemaObjectName instance that represents default version history table name.

[Pure]
protected override SqlSchemaObjectName GetDefaultVersionHistoryName()

Returns

SqlSchemaObjectName

New SqlSchemaObjectName instance.

VersionHistoryTableBuilderInit(SqlTableBuilder)

Initializes the version history table builder.

protected override void VersionHistoryTableBuilderInit(SqlTableBuilder builder)

Parameters

builder SqlTableBuilder

Version history table builder.

Remarks

By default, this method adds the following columns:

  • VersionMajor (int)
  • VersionMinor (int)
  • VersionBuild (nullable int)
  • VersionRevision (nullable int)
  • Description (string)
  • CommitDateUtc (DateTime)
  • CommitDurationInTicks (long)