Module ddl

Module ddl 

Source
Expand description

PostgreSQL DDL (Data Definition Language) entity types

This module provides two complementary types for each DDL entity:

  • *Def types - Const-friendly definitions using only Copy types (&'static str, bool) for compile-time schema definitions
  • Runtime types - Full types with Cow<'static, str> for serde serialization/deserialization

§Design Pattern

┌─────────────────────────────────────────────────────────────────────────┐
│  Compile Time (const)           Runtime (serde)                         │
│  ─────────────────────           ────────────────                        │
│                                                                          │
│  const DEF: TableDef = ...;     let table: Table = DEF.into_table();     │
│  const COLS: &[ColumnDef] = ... let cols: Vec<Column> = ...              │
│                                                                          │
│  Uses: &'static str, bool       Uses: Cow<'static, str>, Vec, Option     │
│  All types are Copy             Supports serde, owned strings            │
└─────────────────────────────────────────────────────────────────────────┘

§PostgreSQL-Specific Features

PostgreSQL DDL types include additional features not present in SQLite:

  • Schemas - Namespace support (public, custom_schema, etc.)
  • Enums - User-defined enumerated types
  • Sequences - Auto-increment sequences (alternative to SERIAL)
  • Roles - Database roles/permissions
  • Policies - Row-level security policies
  • Identity Columns - GENERATED ALWAYS/BY DEFAULT AS IDENTITY
  • Generated Columns - GENERATED AS expression STORED
  • Index Options - Operator classes, nulls ordering, etc.

Re-exports§

pub use sql::TableSql;

Modules§

sql
SQL generation for PostgreSQL DDL types

Structs§

CheckConstraint
Runtime check constraint entity
CheckConstraintDef
Const-friendly check constraint definition
Column
Runtime column entity for serde serialization.
ColumnDef
Const-friendly column definition for compile-time schema definitions.
Enum
Runtime enum entity for serde serialization.
EnumDef
Const-friendly enum definition for compile-time schema definitions.
ForeignKey
Runtime foreign key constraint entity
ForeignKeyDef
Const-friendly foreign key definition
Generated
Generated column configuration (runtime)
GeneratedDef
Generated column configuration (const-friendly)
Identity
Identity column configuration (runtime)
IdentityDef
Identity column configuration (const-friendly)
Index
Runtime index entity for serde serialization
IndexColumn
Runtime index column entity for serde serialization
IndexColumnDef
Const-friendly index column definition
IndexDef
Const-friendly index definition
Opclass
Runtime operator class entity
OpclassDef
Const-friendly operator class definition
Policy
Runtime policy entity for serde serialization.
PolicyDef
Const-friendly policy definition for compile-time schema definitions.
PrimaryKey
Runtime primary key constraint entity
PrimaryKeyDef
Const-friendly primary key definition
Privilege
Runtime privilege entity for serde serialization.
PrivilegeDef
Const-friendly privilege definition for compile-time schema definitions.
Role
Runtime role entity for serde serialization.
RoleDef
Const-friendly role definition for compile-time schema definitions.
Schema
Runtime schema entity for serde serialization.
SchemaDef
Const-friendly schema definition for compile-time schema definitions.
Sequence
Runtime sequence entity for serde serialization.
SequenceDef
Const-friendly sequence definition for compile-time schema definitions.
Table
Runtime table entity for serde serialization.
TableDef
Const-friendly table definition for compile-time schema definitions.
UniqueConstraint
Runtime unique constraint entity
UniqueConstraintDef
Const-friendly unique constraint definition
View
Runtime view entity
ViewDef
Const-friendly view definition
ViewWithOption
Runtime view WITH options entity
ViewWithOptionDef
Const-friendly view WITH options definition

Enums§

GeneratedType
Generated column type
IdentityType
Identity column type (ALWAYS vs BY DEFAULT)
PostgresEntity
Unified PostgreSQL DDL entity enum for serialization
PrivilegeType
PostgreSQL privilege type
ReferentialAction
Foreign key referential action

Constants§

ENTITY_TYPE_CHECKS
Entity type discriminator for check constraints
ENTITY_TYPE_COLUMNS
Entity type discriminator for columns
ENTITY_TYPE_ENUMS
Entity type discriminator for enums
ENTITY_TYPE_FKS
Entity type discriminator for foreign keys
ENTITY_TYPE_INDEXES
Entity type discriminator for indexes
ENTITY_TYPE_PKS
Entity type discriminator for primary keys
ENTITY_TYPE_POLICIES
Entity type discriminator for policies
ENTITY_TYPE_PRIVILEGES
Entity type discriminator for privileges
ENTITY_TYPE_ROLES
Entity type discriminator for roles
ENTITY_TYPE_SCHEMAS
Entity type discriminator for schemas
ENTITY_TYPE_SEQUENCES
Entity type discriminator for sequences
ENTITY_TYPE_TABLES
Entity type discriminator for tables
ENTITY_TYPE_UNIQUES
Entity type discriminator for unique constraints
ENTITY_TYPE_VIEWS
Entity type discriminator for views