The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Alzabo::PostgreSQL - Alzabo and PostgreSQL

DESCRIPTION

This documentation is about what special support Alzabo has for PostgreSQL, as well as what is lacking.

Postgres support is based on the 7.3.x version of Postgres. Alzabo should work with the 7.1 and 7.2 series, and may even work with the 7.0 series.

Mixed-case Table or Column Names

By default, Postgres treats table and column names case-insensitively. Because of this, Alzabo always quotes these names when generating DDL SQL. If you are using tables or columns that contain upper-case characters, you should always call $schema->set_quote_identifiers(1) as soon as you load your schema object. Otherwise, any method which generates DML SQL will fail.

Reverse Engineering

  • Alzabo cannot determine from the existence of a sequence that the sequence is meant to be used for a particular column unless the sequence was created as a result of making a column's type SERIAL.

    This is because there is no link between the two in the Postgres' data dictionary tables and will probably never change.

Transactions

  • Transactions are fully supported with Postgres.

Outer joins

  • Left and right outer joins are supported.

  • Full outer joins are not supported.

Constraints

Column constraints can be specified as column attributes. Table constraints can be specified as table attributes.

Foreign key constraints are generated automatically based on the relationships defined by your schema.