Class AbstractPostgresDatabase

java.lang.Object
liquibase.database.AbstractJdbcDatabase
liquibase.database.core.AbstractPostgresDatabase
All Implemented Interfaces:
AutoCloseable, Database, PrioritizedService
Direct Known Subclasses:
PostgresDatabase

public abstract class AbstractPostgresDatabase extends AbstractJdbcDatabase
Common base for the PostgreSQL wire-protocol family (real PostgreSQL plus variants such as Redshift, CockroachDB, EnterpriseDB and YugabyteDB). It holds only behavior that is genuinely shared by every member of the family: identifier case-folding and quoting, the reserved-word set, the catalog-less schema model, system-object recognition, and the lowercased changelog table names.

This is phase 1 of INT-2139 (the Postgres-family inheritance refactor) and is deliberately behavior-neutral: PostgresDatabase extends this class and no variant is reparented yet, so the runtime type hierarchy is unchanged.

What intentionally stays in PostgresDatabase (real-Postgres-specific, and candidates for the explicit-capability work in the next story rather than for moving here): sequences, SERIAL / GENERATED ... AS IDENTITY auto-increment, tablespaces, initially deferrable columns, changelog-history support, CREATE ... IF NOT EXISTS, the product name / minimum-version identity check, the default driver and port, and the search-path reset on rollback. These are exactly the features the variants do not share, so they must become opt-in capability methods, not inherited defaults.