Expand description
PostgreSQL DDL (Data Definition Language) entity types
This module provides two complementary types for each DDL entity:
*Deftypes - Const-friendly definitions using onlyCopytypes (&'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§
- Check
Constraint - Runtime check constraint entity
- Check
Constraint Def - Const-friendly check constraint definition
- Column
- Runtime column entity for serde serialization.
- Column
Def - 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.
- Foreign
Key - Runtime foreign key constraint entity
- Foreign
KeyDef - Const-friendly foreign key definition
- Generated
- Generated column configuration (runtime)
- Generated
Def - Generated column configuration (const-friendly)
- Identity
- Identity column configuration (runtime)
- Identity
Def - Identity column configuration (const-friendly)
- Index
- Runtime index entity for serde serialization
- Index
Column - Runtime index column entity for serde serialization
- Index
Column Def - Const-friendly index column definition
- Index
Def - Const-friendly index definition
- Opclass
- Runtime operator class entity
- Opclass
Def - Const-friendly operator class definition
- Policy
- Runtime policy entity for serde serialization.
- Policy
Def - Const-friendly policy definition for compile-time schema definitions.
- Primary
Key - Runtime primary key constraint entity
- Primary
KeyDef - Const-friendly primary key definition
- Privilege
- Runtime privilege entity for serde serialization.
- Privilege
Def - 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.
- Schema
Def - Const-friendly schema definition for compile-time schema definitions.
- Sequence
- Runtime sequence entity for serde serialization.
- Sequence
Def - Const-friendly sequence definition for compile-time schema definitions.
- Table
- Runtime table entity for serde serialization.
- Table
Def - Const-friendly table definition for compile-time schema definitions.
- Unique
Constraint - Runtime unique constraint entity
- Unique
Constraint Def - Const-friendly unique constraint definition
- View
- Runtime view entity
- ViewDef
- Const-friendly view definition
- View
With Option - Runtime view WITH options entity
- View
With Option Def - Const-friendly view WITH options definition
Enums§
- Generated
Type - Generated column type
- Identity
Type - Identity column type (ALWAYS vs BY DEFAULT)
- Postgres
Entity - Unified PostgreSQL DDL entity enum for serialization
- Privilege
Type - PostgreSQL privilege type
- Referential
Action - 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