mod check_constraint;
mod column;
mod enum_type;
mod foreign_key;
mod index;
mod policy;
mod primary_key;
mod privilege;
mod role;
mod schema;
mod sequence;
pub mod sql;
mod unique_constraint;
mod view;
pub use check_constraint::CheckConstraintDef;
pub use column::{ColumnDef, GeneratedDef, GeneratedType, IdentityDef, IdentityType};
pub use enum_type::EnumDef;
pub use foreign_key::{ForeignKeyDef, ReferentialAction};
pub use index::{IndexColumn, IndexColumnDef, IndexDef, OpclassDef};
pub use policy::PolicyDef;
pub use primary_key::PrimaryKeyDef;
pub use privilege::{PrivilegeDef, PrivilegeType};
pub use role::RoleDef;
pub use schema::SchemaDef;
pub use sequence::SequenceDef;
pub use unique_constraint::UniqueConstraintDef;
pub use view::{ViewDef, ViewWithOptionDef};
pub use check_constraint::CheckConstraint;
pub use column::{Column, Generated, Identity};
pub use enum_type::Enum;
pub use foreign_key::ForeignKey;
pub use index::{Index, Opclass};
pub use policy::Policy;
pub use primary_key::PrimaryKey;
pub use privilege::Privilege;
pub use role::Role;
pub use schema::Schema;
pub use sequence::Sequence;
pub use unique_constraint::UniqueConstraint;
pub use view::{View, ViewWithOption};
pub use sql::TableSql;
#[cfg(feature = "serde")]
pub use crate::serde_helpers::{
cow_from_string, cow_option_from_string, cow_option_vec_from_strings, cow_vec_from_strings,
};
pub const ENTITY_TYPE_SCHEMAS: &str = "schemas";
pub const ENTITY_TYPE_ENUMS: &str = "enums";
pub const ENTITY_TYPE_SEQUENCES: &str = "sequences";
pub const ENTITY_TYPE_ROLES: &str = "roles";
pub const ENTITY_TYPE_POLICIES: &str = "policies";
pub const ENTITY_TYPE_TABLES: &str = "tables";
pub const ENTITY_TYPE_COLUMNS: &str = "columns";
pub const ENTITY_TYPE_INDEXES: &str = "indexes";
pub const ENTITY_TYPE_FKS: &str = "fks";
pub const ENTITY_TYPE_PKS: &str = "pks";
pub const ENTITY_TYPE_UNIQUES: &str = "uniques";
pub const ENTITY_TYPE_CHECKS: &str = "checks";
pub const ENTITY_TYPE_VIEWS: &str = "views";
pub const ENTITY_TYPE_PRIVILEGES: &str = "privileges";
mod table;
pub use table::{Table, TableDef};
#[derive(Clone, Debug, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(tag = "entityType"))]
pub enum PostgresEntity {
#[cfg_attr(feature = "serde", serde(rename = "schemas"))]
Schema(Schema),
#[cfg_attr(feature = "serde", serde(rename = "enums"))]
Enum(Enum),
#[cfg_attr(feature = "serde", serde(rename = "sequences"))]
Sequence(Sequence),
#[cfg_attr(feature = "serde", serde(rename = "roles"))]
Role(Role),
#[cfg_attr(feature = "serde", serde(rename = "policies"))]
Policy(Policy),
#[cfg_attr(feature = "serde", serde(rename = "privileges"))]
Privilege(Privilege),
#[cfg_attr(feature = "serde", serde(rename = "tables"))]
Table(Table),
#[cfg_attr(feature = "serde", serde(rename = "columns"))]
Column(Column),
#[cfg_attr(feature = "serde", serde(rename = "indexes"))]
Index(Index),
#[cfg_attr(feature = "serde", serde(rename = "fks"))]
ForeignKey(ForeignKey),
#[cfg_attr(feature = "serde", serde(rename = "pks"))]
PrimaryKey(PrimaryKey),
#[cfg_attr(feature = "serde", serde(rename = "uniques"))]
UniqueConstraint(UniqueConstraint),
#[cfg_attr(feature = "serde", serde(rename = "checks"))]
CheckConstraint(CheckConstraint),
#[cfg_attr(feature = "serde", serde(rename = "views"))]
View(View),
}